@Override public Void call() throws Exception { if (status == self.getStatus()) { completion.done(); return null; } changeStatus(status); logger.debug(String.format("backup storage[uuid:%s, name:%s] change status from %s to %s", self.getUuid(), self.getName(), self.getStatus(), status)); completion.done(); return null; } });
@Override public void success() { if (self.getStatus() == BackupStorageStatus.Disconnected) { logger.debug(String.format("Ping backup storage[uuid%s] success, but it is disconnected, reconnect it", self.getUuid())); reconnect(); } bus.reply(msg, reply); }
@Override public void run(final SyncTaskChain chain) { boolean fireDisconnecteEvent = self.getStatus() == BackupStorageStatus.Connected; final ConnectBackupStorageReply reply = new ConnectBackupStorageReply(); changeStatus(BackupStorageStatus.Connecting); connectHook(msg.isNewAdd(), new Completion(msg, chain) { @Override public void success() { self = dbf.reload(self); changeStatus(BackupStorageStatus.Connected); tracker.track(self.getUuid()); bus.reply(msg, reply); chain.next(); } @Override public void fail(ErrorCode errorCode) { if (!msg.isNewAdd()) { tracker.track(self.getUuid()); changeStatus(BackupStorageStatus.Disconnected); } if (fireDisconnecteEvent) { fireDisconnectedCanonicalEvent(errorCode); } reply.setError(errorCode); bus.reply(msg, reply); chain.next(); } }); }
protected boolean changeStatus(BackupStorageStatus status) { if (status == self.getStatus()) { return false; } BackupStorageStatus oldStatus = self.getStatus(); self.setStatus(status); dbf.update(self); BackupStorageStatusChangedData d = new BackupStorageStatusChangedData(); d.setBackupStorageUuid(self.getUuid()); d.setNewStatus(status.toString()); d.setOldStatus(oldStatus.toString()); d.setInventory(BackupStorageInventory.valueOf(self)); evtf.fire(BackupStorageCanonicalEvents.BACKUP_STORAGE_STATUS_CHANGED, d); logger.debug(String.format("change backup storage[uuid:%s] status to %s", self.getUuid(), status)); return true; } }
protected BackupStorageInventory(BackupStorageVO vo) { this.setCreateDate(vo.getCreateDate()); this.setDescription(vo.getDescription()); this.setLastOpDate(vo.getLastOpDate()); this.setName(vo.getName()); this.setState(vo.getState().toString()); this.setStatus(vo.getStatus().toString()); this.setTotalCapacity(vo.getTotalCapacity()); this.setAvailableCapacity(vo.getAvailableCapacity()); this.setType(vo.getType()); this.setUrl(vo.getUrl()); this.setUuid(vo.getUuid()); this.attachedZoneUuids = new ArrayList<String>(vo.getAttachedZoneRefs().size()); for (BackupStorageZoneRefVO ref : vo.getAttachedZoneRefs()) { if (!this.attachedZoneUuids.contains(ref.getZoneUuid())) { this.attachedZoneUuids.add(ref.getZoneUuid()); } } }
protected BackupStorageVO(BackupStorageVO vo) { this.setUuid(vo.getUuid()); this.setAttachedZoneRefs(vo.getAttachedZoneRefs()); this.setCreateDate(vo.getCreateDate()); this.setDescription(vo.getDescription()); this.setLastOpDate(vo.getLastOpDate()); this.setName(vo.getName()); this.setState(vo.getState()); this.setStatus(vo.getStatus()); this.setTotalCapacity(vo.getTotalCapacity()); this.setType(vo.getType()); this.setUrl(vo.getUrl()); this.setAvailableCapacity(vo.getAvailableCapacity()); }