@Override public void success(ClusterConnectionStatus clusterStatus) { if (clusterStatus == ClusterConnectionStatus.PartiallyConnected || clusterStatus == ClusterConnectionStatus.FullyConnected){ changeStatus(PrimaryStorageStatus.Connected); } else if (self.getStatus() == PrimaryStorageStatus.Disconnected && clusterStatus == ClusterConnectionStatus.Disconnected){ hookToKVMHostConnectedEventToChangeStatusToConnected(); } completion.success(); }
@Override public void success() { if (self.getStatus() == PrimaryStorageStatus.Disconnected) { doConnect(new ConnectParam(), new NopeCompletion()); } reply.setConnected(true); bus.reply(msg, reply); }
protected boolean changeStatus(PrimaryStorageStatus status) { if (status == self.getStatus()) { return false; } PrimaryStorageStatus oldStatus = self.getStatus(); self.setStatus(status); self = dbf.updateAndRefresh(self); PrimaryStorageStatusChangedData d = new PrimaryStorageStatusChangedData(); d.setInventory(PrimaryStorageInventory.valueOf(self)); d.setPrimaryStorageUuid(self.getUuid()); d.setOldStatus(oldStatus.toString()); d.setNewStatus(status.toString()); evtf.fire(PrimaryStorageCanonicalEvent.PRIMARY_STORAGE_STATUS_CHANGED_PATH, d); logger.debug(String.format("the primary storage[uuid:%s, name:%s] changed status from %s to %s", self.getUuid(), self.getName(), oldStatus, status)); return true; }
@Override protected void handle(APIReconnectPrimaryStorageMsg msg) { final APIReconnectPrimaryStorageEvent evt = new APIReconnectPrimaryStorageEvent(msg.getId()); // fire disconnected canonical event only if the current status is connected boolean fireEvent = self.getStatus() == PrimaryStorageStatus.Connected; self.setStatus(PrimaryStorageStatus.Connecting); dbf.update(self); connect(false, new Completion(msg) { @Override public void success() { self = dbf.reload(self); self.setStatus(PrimaryStorageStatus.Connected); self = dbf.updateAndRefresh(self); evt.setInventory(getSelfInventory()); bus.publish(evt); } @Override public void fail(ErrorCode errorCode) { self = dbf.reload(self); self.setStatus(PrimaryStorageStatus.Disconnected); self = dbf.updateAndRefresh(self); if (fireEvent) { fireDisconnectedCanonicalEvent(errorCode); } evt.setError(errorCode); bus.publish(evt); } }); }
@Override protected void handle(APIReconnectPrimaryStorageMsg msg) { final APIReconnectPrimaryStorageEvent evt = new APIReconnectPrimaryStorageEvent(msg.getId()); // fire disconnected canonical event only if the current status is connected boolean fireEvent = self.getStatus() == PrimaryStorageStatus.Connected; self.setStatus(PrimaryStorageStatus.Connecting); dbf.update(self); connect(false, new Completion(msg) { @Override public void success() { self = dbf.reload(self); self.setStatus(PrimaryStorageStatus.Connected); self = dbf.updateAndRefresh(self); evt.setInventory(getSelfInventory()); bus.publish(evt); } @Override public void fail(ErrorCode errorCode) { self = dbf.reload(self); self.setStatus(PrimaryStorageStatus.Disconnected); self = dbf.updateAndRefresh(self); if (fireEvent) { fireDisconnectedCanonicalEvent(errorCode); } evt.setError(errorCode); bus.publish(evt); } }); }
if (self.getStatus() == PrimaryStorageStatus.Connected) { return true;
protected PrimaryStorageInventory(PrimaryStorageVO vo) { setZoneUuid(vo.getZoneUuid()); setCreateDate(vo.getCreateDate()); setDescription(vo.getDescription()); setLastOpDate(vo.getLastOpDate()); setName(vo.getName()); setState(vo.getState().toString()); setType(vo.getType()); setUrl(vo.getUrl()); setUuid(vo.getUuid()); setMountPath(vo.getMountPath()); setStatus(vo.getStatus().toString()); attachedClusterUuids = new ArrayList<String>(vo.getAttachedClusterRefs().size()); for (PrimaryStorageClusterRefVO ref : vo.getAttachedClusterRefs()) { attachedClusterUuids.add(ref.getClusterUuid()); } if (vo.getCapacity() != null) { setTotalCapacity(vo.getCapacity().getTotalCapacity()); setAvailableCapacity(vo.getCapacity().getAvailableCapacity()); setTotalPhysicalCapacity(vo.getCapacity().getTotalPhysicalCapacity()); setAvailablePhysicalCapacity(vo.getCapacity().getAvailablePhysicalCapacity()); setSystemUsedCapacity(vo.getCapacity().getSystemUsedCapacity()); } }