protected ClusterInventory changeState(ClusterStateEvent event) { ClusterState currentState = self.getState(); ClusterState next = AbstractCluster.getNextState(self.getState(), event); extpEmitter.beforeChange(self, event); self.setState(next); self = dbf.updateAndRefresh(self); ClusterInventory inv = ClusterInventory.valueOf(self); extpEmitter.afterChange(self, event, currentState); logger.debug("Cluster " + self.getName() + " uuid: " + self.getUuid() + " changed state from " + currentState + " to " + self.getState()); return inv; }
@Deferred private void handle(APICreateClusterMsg msg) { String clusterType = msg.getType(); if (clusterType == null) { clusterType = BaseClusterFactory.type.toString(); } APICreateClusterEvent evt = new APICreateClusterEvent(msg.getId()); ClusterFactory factory = this.getClusterFactory(ClusterType.valueOf(clusterType)); ClusterVO vo = new ClusterVO(); if (msg.getResourceUuid() != null) { vo.setUuid(msg.getResourceUuid()); } else { vo.setUuid(Platform.getUuid()); } vo.setDescription(msg.getDescription()); vo.setHypervisorType(msg.getHypervisorType()); vo.setManagementNodeId(Platform.getManagementServerId()); vo.setZoneUuid(msg.getZoneUuid()); vo.setState(ClusterState.Enabled); vo.setName(msg.getClusterName()); vo = factory.createCluster(vo, msg); tagMgr.createTagsFromAPICreateMessage(msg, vo.getUuid(), ClusterVO.class.getSimpleName()); ClusterInventory inv = ClusterInventory.valueOf(vo); evt.setInventory(inv); logger.debug(String.format("Created new cluster: %s", printer.print(inv))); bus.publish(evt); }