private void setupCanonicalEvents(){ evtf.on(PrimaryStorageCanonicalEvent.PRIMARY_STORAGE_HOST_STATUS_CHANGED_PATH, new EventCallback() { @Override protected void run(Map tokens, Object data) { PrimaryStorageCanonicalEvent.PrimaryStorageHostStatusChangeData d = (PrimaryStorageCanonicalEvent.PrimaryStorageHostStatusChangeData)data; if (d.getNewStatus() == PrimaryStorageHostStatus.Disconnected && d.getOldStatus() != PrimaryStorageHostStatus.Disconnected && noStorageAccessible(d.getHostUuid())){ ChangeHostConnectionStateMsg msg = new ChangeHostConnectionStateMsg(); msg.setHostUuid(d.getHostUuid()); msg.setConnectionStateEvent(HostStatusEvent.disconnected.toString()); bus.makeTargetServiceIdByResourceUuid(msg, HostConstant.SERVICE_ID, d.getHostUuid()); bus.send(msg); new HostBase.HostDisconnectedCanonicalEvent(d.getHostUuid(), operr("primary storage[uuid:%s] becomes disconnected, the host has no connected primary storage attached", d.getPrimaryStorageUuid())).fire(); } } }); }
private void setupCanonicalEvents(){ evtf.on(PrimaryStorageCanonicalEvent.PRIMARY_STORAGE_HOST_STATUS_CHANGED_PATH, new EventCallback() { @Override protected void run(Map tokens, Object data) { PrimaryStorageCanonicalEvent.PrimaryStorageHostStatusChangeData d = (PrimaryStorageCanonicalEvent.PrimaryStorageHostStatusChangeData)data; PrimaryStorageStatus nfsStatus = Q.New(PrimaryStorageVO.class) .eq(PrimaryStorageVO_.uuid, d.getPrimaryStorageUuid()) .eq(PrimaryStorageVO_.type, NfsPrimaryStorageConstant.NFS_PRIMARY_STORAGE_TYPE) .select(PrimaryStorageVO_.status) .findValue(); boolean recoverConnection = d.getNewStatus() == PrimaryStorageHostStatus.Connected && d.getOldStatus() != PrimaryStorageHostStatus.Connected; if (nfsStatus == null || !recoverConnection) { return; } logger.debug(String.format("NFS[uuid:%s] recover connection to host[uuid:%s]", d.getPrimaryStorageUuid(), d.getHostUuid())); if (nfsStatus != PrimaryStorageStatus.Connected) { // use sync call here to make sure the NFS primary storage connected before continue to the next step ChangePrimaryStorageStatusMsg cmsg = new ChangePrimaryStorageStatusMsg(); cmsg.setPrimaryStorageUuid(d.getPrimaryStorageUuid()); cmsg.setStatus(PrimaryStorageStatus.Connected.toString()); bus.makeTargetServiceIdByResourceUuid(cmsg, PrimaryStorageConstant.SERVICE_ID, d.getPrimaryStorageUuid()); bus.call(cmsg); logger.debug(String.format("connect nfs[uuid:%s] completed", d.getPrimaryStorageUuid())); } recalculateCapacity(d.getPrimaryStorageUuid()); } }); }
private void syncVolumeSize() { evtf.on(PrimaryStorageCanonicalEvent.PRIMARY_STORAGE_STATUS_CHANGED_PATH, new EventCallback() { @Override public void run(Map tokens, Object data) {
private void syncImageActualSize() { evtf.on(BackupStorageCanonicalEvents.BACKUP_STORAGE_STATUS_CHANGED, new EventCallback() { @Transactional(readOnly = true) private List<ImageInventory> getImagesForSync(String bsUuid) {
@Override public void run(FlowTrigger trigger, Map data) { evtf.on(ManagementNodeCanonicalEvent.NODE_LIFECYCLE_PATH, nodeLifeCycleCallback); trigger.next(); } }).then(new NoRollbackFlow() {
private void installTriggers() { setup(); DebugUtils.Assert(!eventCallbacks.isEmpty(), String.format("%s[%s] doesn't call onEvent() in the setup() to install any triggers", NAME, getClass())); for (Map.Entry<String, EventCallback> e : eventCallbacks.entrySet()) { evtf.on(e.getKey(), e.getValue()); } canceller = () -> eventCallbacks.values().forEach((it) -> evtf.off(it)); }
@Override public void run(final SyncTaskChain chain) { logger.debug(String.format("locked vm[uuid:%s] for %s", self.getUuid(), msg.getReason())); evtf.on(LockResourceMessage.UNLOCK_CANONICAL_EVENT_PATH, new AutoOffEventCallback() { @Override public boolean run(Map tokens, Object data) { if (msg.getUnlockKey().equals(data)) { logger.debug(String.format("unlocked vm[uuid:%s] that was locked by %s", self.getUuid(), msg.getReason())); chain.next(); return true; } return false; } }); LockVmInstanceReply reply = new LockVmInstanceReply(); bus.reply(msg, reply); }
evtf.on(PrimaryStorageCanonicalEvent.PRIMARY_STORAGE_STATUS_CHANGED_PATH, new EventCallback() { List<String> supportPsTypes = asList("NFS", "LocalStorage");
void init() { evtf.on(s(GlobalConfigCanonicalEvents.UPDATE_EVENT_PATH).formatByMap(map( e("category", category), e("name", name) )), new EventCallback() { @Override public void run(Map tokens, Object data) { String nodeUuid = (String) tokens.get("nodeUuid"); if (Platform.getManagementServerId().equals(nodeUuid)) { return; } UpdateEvent evt = (UpdateEvent)data; update(evt.getNewValue(), false); logger.info(String.format("GlobalConfig[category: %s, name: %s] was updated in other management node[uuid:%s]," + "in line with that change, updated ours. %s --> %s", category, name, nodeUuid, evt.getOldValue(), value)); } }); }
evtf.on(LockResourceMessage.UNLOCK_CANONICAL_EVENT_PATH, new EventCallback() { @Override public void run(Map tokens, Object data) {