Ravi Nori has uploaded a new change for review. Change subject: engine : Add callback enabled commands to CommandExecutor callback map ......................................................................
engine : Add callback enabled commands to CommandExecutor callback map Add ability to add oridinary commands to command executor's call back map. The commands need to have callback enabled Change-Id: I9765a947d3772fbc47a1adaa91cd54da9ba202bb Bug-Url: https://bugzilla.redhat.com/1083769 Signed-off-by: Ravi Nori <rn...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandExecutor.java 2 files changed, 14 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/28724/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java index 09de084..a6ee4ac 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java @@ -63,6 +63,9 @@ commandsCache.put(cmdEntity); if (cmdEntity.isCallBackEnabled()) { buildCmdHierarchy(cmdEntity); + if (!cmdEntity.isCallBackNotified()) { + cmdExecutor.addToCallBackMap(cmdEntity); + } } } @@ -180,7 +183,7 @@ } private void buildCmdHierarchy(CommandEntity cmdEntity) { - if (!Guid.isNullOrEmpty(cmdEntity.getRootCommandId())) { + if (!Guid.isNullOrEmpty(cmdEntity.getRootCommandId()) && !cmdEntity.getId().equals(cmdEntity.getRootCommandId())) { childHierarchy.putIfAbsent(cmdEntity.getRootCommandId(), new ArrayList<Guid>()); if (!childHierarchy.get(cmdEntity.getRootCommandId()).contains(cmdEntity.getId())) { childHierarchy.get(cmdEntity.getRootCommandId()).add(cmdEntity.getId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandExecutor.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandExecutor.java index 7520a81..576006d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandExecutor.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandExecutor.java @@ -77,11 +77,9 @@ if (!cmdExecutorInitialized) { synchronized(LOCK) { if (!cmdExecutorInitialized) { - CommandBase<?> cmd; for (CommandEntity cmdEntity : coco.getCommandsWithCallBackEnabled()) { if (!cmdEntity.isCallBackNotified()) { - cmd = coco.retrieveCommand(cmdEntity.getId()); - cmdCallBackMap.put(cmdEntity.getId(), cmd.getCallBack()); + addToCallBackMap(cmdEntity); } } cmdExecutorInitialized = true; @@ -90,6 +88,15 @@ } } + public void addToCallBackMap(CommandEntity cmdEntity) { + if (!cmdCallBackMap.containsKey(cmdEntity.getId())) { + CommandBase<?> cmd = coco.retrieveCommand(cmdEntity.getId()); + if (cmd != null && cmd.getCallBack() != null) { + cmdCallBackMap.put(cmdEntity.getId(), cmd.getCallBack()); + } + } + } + public Future<VdcReturnValueBase> executeAsyncCommand(final VdcActionType actionType, final VdcActionParametersBase parameters) { final CommandBase<?> command = CommandsFactory.createCommand(actionType, parameters); -- To view, visit http://gerrit.ovirt.org/28724 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9765a947d3772fbc47a1adaa91cd54da9ba202bb Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <rn...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches