Package com.vmware.bdd.entity

Examples of com.vmware.bdd.entity.NodeEntity


         logger.info("configured " + targetNodes.size() + " nodes' IO share level to "
               + ioShares.toString());
      } else {
         // update node table
         for (String name : failedNodes.keySet()) {
            NodeEntity node = clusterEntityMgr.findNodeByName(name);
            node.setActionFailed(true);
            node.setErrMessage(failedNodes.get(name));
            clusterEntityMgr.update(node);
         }
         throw ClusterManagerException.PRIORITIZE_CLUSTER_FAILED(clusterName,
               failedNodes.size(), targetNodes.size());
      }
View Full Code Here


   protected boolean execute() {
      logger.info("Start to waiting for VM " + vmId + " post power on status");
      IClusterEntityManager clusterEntityMgr =
            lockClusterEntityMgr.getClusterEntityMgr();
      String serverVersion = clusterEntityMgr.getServerVersion();
      NodeEntity nodeEntity = clusterEntityMgr.getNodeWithNicsByMobId(vmId);
      if (nodeEntity == null) {
         logger.info("VM " + vmId + " is deleted.");
         return true;
      }
      boolean needBootstrap = nodeEntity.needUpgrade(serverVersion);
      StartVmPostPowerOn query =
            new StartVmPostPowerOn(nodeEntity.fetchAllPortGroups(),
                  Constants.VM_POWER_ON_WAITING_SEC, clusterEntityMgr);
      query.setVmId(vmId);
      try {
         query.call();
      } catch (Exception e) {
         logger.error("Failed to query ip address of vm: " + vmId, e);
      }
      String clusterName = CommonUtil.getClusterName(nodeEntity.getVmName());
      lockClusterEntityMgr.refreshNodeByMobId(clusterName, vmId, false);

      nodeEntity = clusterEntityMgr.getNodeWithNicsByMobId(vmId);
      if (nodeEntity.isVmReady() && needBootstrap) {
         try {
            bootstrapNode(nodeEntity, clusterName);
         } catch (Exception e) {
            logger.error("Bootstrapping node " + nodeEntity.getVmName()
                  + " failed", e);
            nodeEntity.setStatus(NodeStatus.BOOTSTRAP_FAILED);
            nodeEntity.setActionFailed(true);
            nodeEntity
                  .setErrMessage("Bootstrapping node "
                        + nodeEntity.getVmName()
                        + " failed. Please ssh to this node and run 'sudo chef-client' to get error details.");
            lockClusterEntityMgr.getClusterEntityMgr().update(nodeEntity);
         }
      }
View Full Code Here

      for (BaseNode deletedNode : deletedNodes) {
         if (!deletedNodeNames.contains(deletedNode.getVmName())) {
            // do not touch already replaced VMs
            continue;
         }
         NodeEntity node = getClusterEntityMgr().getNodeByVmName(deletedNode.getVmName());
         if (node != null) {
            if (deletedNode.isSuccess()) {
               getClusterEntityMgr().delete(node);
            } else {
               node.setActionFailed(true);
               node.setErrMessage(deletedNode.getErrMessage());
            }
         }
      }
   }
View Full Code Here

      if (nodeGroupEntity.getNodes() == null) {
         nodeGroupEntity.setNodes(new LinkedList<NodeEntity>());
      }

      boolean insert = false;
      NodeEntity nodeEntity =
            getClusterEntityMgr()
                  .findByName(nodeGroupEntity, vNode.getVmName());
      // if node already exists, replace the value with new one from vNode.
      if (nodeEntity == null) {
         nodeEntity = new NodeEntity();
         nodeGroupEntity.getNodes().add(nodeEntity);
         insert = true;
      }
      nodeEntity.setVmName(vNode.getVmName());
      setNodeStatus(nodeEntity, vNode);
      if (vNode.getVmMobId() == null && nodeEntity.getMoId() != null) {
         vNode.setVmMobId(nodeEntity.getMoId());
      }

      // set node version
      nodeEntity.setVersion(cluster.getVersion());

      //set vc resource pool entity
      nodeEntity.setVcRp(rpDao.findByClusterAndRp(vNode.getTargetVcCluster(),
            vNode.getTargetRp()));

      // set ipconfigs field even IPs are not yet retrieved, otherwise if
      // Tomcat crashes, we will lost the ipconfigs template
      for (NicSpec nicSpec : vNode.getNics().values()) {
         NetworkEntity networkEntity =
               networkMgr.getNetworkEntityByName(nicSpec.getNetworkName());
         NicEntity nicEntity = nodeEntity.findNic(networkEntity);
         if (nicEntity == null) {
            nicEntity = new NicEntity();
            nodeEntity.getNics().add(nicEntity);
         }
         nicEntity.setIpv4Address(nicSpec.getIpv4Address());
         nicEntity.setIpv6Address(nicSpec.getIpv6Address());
         nicEntity.setMacAddress(nicSpec.getMacAddress());
         nicEntity.setNetTrafficDefs(nicSpec.getNetTrafficDefinitionSet());
         nicEntity.setNetworkEntity(networkEntity);
         nicEntity.setNodeEntity(nodeEntity);
         if (vNode.getVmMobId() != null) {
            VcVmUtil.populateNicInfo(nicEntity, vNode.getVmMobId(),
                  networkEntity.getPortGroup());
         }
      }

      if (vNode.isFinished()) {
         nodeEntity.setActionFailed(!vNode.isSuccess());
         nodeEntity.setErrMessage(vNode.getErrMessage());
      }

      if (vNode.getVmMobId() != null) {
         nodeEntity.setMoId(vNode.getVmMobId());
         nodeEntity.setRack(vNode.getTargetRack());
         nodeEntity.setHostName(vNode.getTargetHost());
         nodeEntity.setGuestHostName(vNode.getGuestHostName());
         nodeEntity.setCpuNum(vNode.getCpu());
         nodeEntity.setMemorySize((long) vNode.getMem());

         // set disk entities, include system/swap/data disk
         Set<DiskEntity> diskEntities = nodeEntity.getDisks();

         // system disk
         DiskEntity systemDisk = nodeEntity.findSystemDisk();
         if (systemDisk == null)
            systemDisk = new DiskEntity(nodeEntity.getVmName() + ".vmdk");
         systemDisk.setDiskType(DiskType.SYSTEM_DISK.getType());
         systemDisk.setExternalAddress(DiskEntity
               .getSystemDiskExternalAddress());
         systemDisk.setNodeEntity(nodeEntity);
         systemDisk.setDatastoreName(vNode.getTargetDs());
         VcVmUtil.populateDiskInfo(systemDisk, vNode.getVmMobId());
         diskEntities.add(systemDisk);

         // swap and data disk
         for (Disk disk : vNode.getVmSchema().diskSchema.getDisks()) {
            DiskEntity newDisk = nodeEntity.findDisk(disk.name);
            if (newDisk == null) {
               newDisk = new DiskEntity(disk.name);
               diskEntities.add(newDisk);
            }
            newDisk.setSizeInMB(disk.initialSizeMB);
            newDisk.setAllocType(disk.allocationType.toString());
            newDisk.setDatastoreName(disk.datastore);
            newDisk.setDiskType(disk.type);
            newDisk.setExternalAddress(disk.externalAddress);
            newDisk.setNodeEntity(nodeEntity);

            // get vm object and find the vmdk path
            VcVmUtil.populateDiskInfo(newDisk, vNode.getVmMobId());
         }
      }
      nodeEntity.setNodeGroup(nodeGroupEntity);

      if (insert) {
         getClusterEntityMgr().insert(nodeEntity);
      } else {
         getClusterEntityMgr().update(nodeEntity);
View Full Code Here

   @Override
   public List<DiskSpec> getReplacementDisks(String clusterName,
         String groupName, String nodeName, List<DiskSpec> badDisks) {
      ClusterCreate spec = configMgr.getClusterConfig(clusterName);

      NodeEntity nodeEntity =
            clusterEntityMgr.findByName(clusterName, groupName, nodeName);
      VcHost targetHost = VcResourceUtils.findHost(nodeEntity.getHostName());

      List<VcDatastore> validDatastores =
            filterDatastores(targetHost, spec, groupName);

      // initialize env for placement algorithm
View Full Code Here

   @Override
   @SuppressWarnings("unchecked")
   public VcVirtualMachine createReplacementVm(String clusterName,
         String groupName, String nodeName, List<DiskSpec> replacementDisks) {
      ClusterCreate spec = configMgr.getClusterConfig(clusterName);
      NodeEntity node =
            clusterEntityMgr.findByName(spec.getName(), groupName, nodeName);

      // replace bad disks with fixing disk, combining as a new disk set
      List<DiskSpec> fullDiskSet = new ArrayList<DiskSpec>();
      for (DiskEntity disk : clusterEntityMgr.getDisks(nodeName)) {
         fullDiskSet.add(disk.toDiskSpec());
      }
      fullDiskSet.removeAll(replacementDisks);
      fullDiskSet.addAll(replacementDisks);

      CreateVmSP cloneVmSp =
            getReplacementVmSp(spec, groupName, node, fullDiskSet);

      CompensateCreateVmSP deleteVmSp = new CompensateCreateVmSP(cloneVmSp);

      Pair<Callable<Void>, Callable<Void>>[] storeProcedures = new Pair[1];
      storeProcedures[0] =
            new Pair<Callable<Void>, Callable<Void>>(cloneVmSp, deleteVmSp);

      // execute store procedures to create VMs
      logger.info("ClusterHealService, start to create replacement vm for node "
            + nodeName);
      Pair<ExecutionResult, ExecutionResult>[] result;
      try {
         result =
               Scheduler
                     .executeStoredProcedures(
                           com.vmware.aurora.composition.concurrent.Priority.BACKGROUND,
                           storeProcedures, 1, null);

         if (result == null) {
            logger.error("vm creation failed for node " + nodeName);
            return null;
         }

         Pair<ExecutionResult, ExecutionResult> pair = result[0];
         CreateVmSP sp = (CreateVmSP) storeProcedures[0].first;
         if (pair.first.finished && pair.first.throwable == null
               && pair.second.finished == false) {
            VcVirtualMachine vm = sp.getVM();
            AuAssert.check(vm != null);
            return vm;
         } else if (pair.first.throwable != null) {
            logger.error(
                  "Failed to create replacement virtual machine for node " + node.getVmName(),
                  pair.first.throwable);

            throw ClusterHealServiceException.FAILED_CREATE_REPLACEMENT_VM(node
                  .getVmName());
         }
      } catch (InterruptedException e) {
         logger.error("error in fixing vm " + nodeName, e);
         throw BddException.INTERNAL(e, e.getMessage());
View Full Code Here

      return null;
   }

   public void updateData(String clusterName, String groupName,
         String nodeName, String newVmId) {
      NodeEntity node = clusterEntityMgr.findNodeByName(nodeName);

      logger.info("start update vm id and host info for node " + nodeName);
      VcVirtualMachine vm = VcCache.getIgnoreMissing(newVmId);

      node.setMoId(vm.getId());
      node.setHostName(vm.getHost().getName());
      clusterEntityMgr.update(node);

      logger.info("sync up status for node " + nodeName);
      clusterEntityMgr.syncUpNode(clusterName, nodeName);
View Full Code Here

      return true;
   }

   @Override
   public void verifyNodeStatus(String vmId, String nodeName) {
      NodeEntity nodeEntity = clusterEntityMgr.findNodeByName(nodeName);
      JobUtils.verifyNodeStatus(nodeEntity, NodeStatus.VM_READY, false);
   }
View Full Code Here

      JobUtils.verifyNodeStatus(nodeEntity, NodeStatus.VM_READY, false);
   }

   @Override
   public void startVm(String nodeName, String vmId, String clusterName) {
      NodeEntity nodeEntity = clusterEntityMgr.findNodeByName(nodeName);
      StartVmPostPowerOn query =
            new StartVmPostPowerOn(nodeEntity.fetchAllPortGroups(),
                  Constants.VM_POWER_ON_WAITING_SEC, clusterEntityMgr);

      VcVirtualMachine vcVm = VcCache.getIgnoreMissing(vmId);

      if (vcVm == null) {
View Full Code Here

   }

   @Override
   public VcVirtualMachine checkNodeStatus(String clusterName,
         String groupName, String nodeName) {
      NodeEntity node = clusterEntityMgr.findNodeByName(nodeName);

      VcResourcePool rp = VcVmUtil.getTargetRp(clusterName, groupName, node);

      String recoverVmName = node.getVmName() + RECOVERY_VM_NAME_POSTFIX;
      if (node.getMoId() != null) {
         VcVirtualMachine vm = VcCache.getIgnoreMissing(node.getMoId());
         // the vm id is null if the vm is removed
         if (vm == null) {
            throw ClusterHealServiceException.ERROR_STATUS(nodeName,
                  "Serengeti and VC are inconsistent as vm " + nodeName
                        + " is recorded in Seregeti, but not found in VC.");
View Full Code Here

TOP

Related Classes of com.vmware.bdd.entity.NodeEntity

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.