Arik Hadas has uploaded a new change for review. Change subject: core: helper methods to create locking pair ......................................................................
core: helper methods to create locking pair It is becoming more and more common to use the new infrastructure that allows us to attach customized error message to a lock, that will be shown in case other locks cannot be acquired because of that lock. This patch adds helper methods in LockMessagesMatchUtils class for creating the locking pair which contains locking group and the customized error message. Change-Id: Id0c854cfc3b6cb1b7f7f4907452e116af5fbf6bf Signed-off-by: Arik Hadas <aha...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LockMessagesMatchUtil.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java 3 files changed, 53 insertions(+), 31 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/13098/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java index 0bcc175..c694d02 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java @@ -47,10 +47,10 @@ locks.putAll(parentLocks); } locks.put(getVmTemplateId().toString(), - new Pair<String, String>(LockingGroup.TEMPLATE.name(), getTemplateSharedLockMessage())); + LockMessagesMatchUtil.makeLockingPair(LockingGroup.TEMPLATE, getTemplateSharedLockMessage())); for (DiskImage image: getImagesToCheckDestinationStorageDomains()) { locks.put(image.getId().toString(), - new Pair<String, String>(LockingGroup.DISK.name(), getDiskSharedLockMessage())); + LockMessagesMatchUtil.makeLockingPair(LockingGroup.DISK, getDiskSharedLockMessage())); } return locks; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LockMessagesMatchUtil.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LockMessagesMatchUtil.java index 3354e8c..e72be6b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LockMessagesMatchUtil.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/LockMessagesMatchUtil.java @@ -6,31 +6,53 @@ public class LockMessagesMatchUtil { - public static final Pair<String, String> POOL = new Pair<String, String>(LockingGroup.POOL.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> VDS = new Pair<String, String>(LockingGroup.VDS.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> VDS_FENCE = new Pair<String, String>(LockingGroup.VDS_FENCE.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> VM = new Pair<String, String>(LockingGroup.VM.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> TEMPLATE = new Pair<String, String>(LockingGroup.TEMPLATE.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> DISK = new Pair<String, String>(LockingGroup.DISK.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> VM_DISK_BOOT = new Pair<String, String>(LockingGroup.VM_DISK_BOOT.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> VM_NAME = new Pair<String, String>(LockingGroup.VM_NAME.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> STORAGE = new Pair<String, String>(LockingGroup.STORAGE.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> REGISTER_VDS = new Pair<String, String>(LockingGroup.REGISTER_VDS.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> VM_SNAPSHOTS = new Pair<String, String>(LockingGroup.VM_SNAPSHOTS.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> GLUSTER = new Pair<String, String>(LockingGroup.GLUSTER.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); - public static final Pair<String, String> USER_VM_POOL = new Pair<String, String>(LockingGroup.USER_VM_POOL.name(), - VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED.name()); + public static final Pair<String, String> POOL = makeLockingPair(LockingGroup.POOL); + public static final Pair<String, String> VDS = makeLockingPair(LockingGroup.VDS); + public static final Pair<String, String> VDS_FENCE = makeLockingPair(LockingGroup.VDS_FENCE); + public static final Pair<String, String> VM = makeLockingPair(LockingGroup.VM); + public static final Pair<String, String> TEMPLATE = makeLockingPair(LockingGroup.TEMPLATE); + public static final Pair<String, String> DISK = makeLockingPair(LockingGroup.DISK); + public static final Pair<String, String> VM_DISK_BOOT = makeLockingPair(LockingGroup.VM_DISK_BOOT); + public static final Pair<String, String> VM_NAME = makeLockingPair(LockingGroup.VM_NAME); + public static final Pair<String, String> STORAGE = makeLockingPair(LockingGroup.STORAGE); + public static final Pair<String, String> REGISTER_VDS = makeLockingPair(LockingGroup.REGISTER_VDS); + public static final Pair<String, String> VM_SNAPSHOTS = makeLockingPair(LockingGroup.VM_SNAPSHOTS); + public static final Pair<String, String> GLUSTER = makeLockingPair(LockingGroup.GLUSTER); + public static final Pair<String, String> USER_VM_POOL = makeLockingPair(LockingGroup.USER_VM_POOL); + /** + * Helper factory method that creates a pair of locking group and error message + * that would be displayed when lock cannot be acquired + * + * @param group locking group + * @param message message to be shown when the lock cannot be acquired + * @return {@link Pair} of the given locking group and error message as Strings + */ + public static Pair<String, String> makeLockingPair(LockingGroup group, VdcBllMessages message) { + return makeLockingPair(group, message.name()); + } + + /** + * Helper factory method that creates a pair of locking group and error message + * that would be displayed when lock cannot be acquired + * + * @param group locking group + * @param message message to be shown when the lock cannot be acquired + * @return {@link Pair} of the given locking group and error message as Strings + */ + public static Pair<String, String> makeLockingPair(LockingGroup group, String message) { + return new Pair<String, String>(group.name(), message); + } + + /** + * Factory method that returns a pair of the given locking group and the default + * error message to display when the lock cannot be acquired + * + * @param group locking group + * @return {@link Pair} of the given locking group and default cannot-acquire-lock can-do message + * @see {@link LockMessagesMatchUtil#makeLockingPair(LockingGroup, VdcBllMessages)} + */ + private static Pair<String, String> makeLockingPair(LockingGroup group) { + return makeLockingPair(group, VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED); + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java index 36ca3ff..f024bd3 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java @@ -346,7 +346,7 @@ @Override protected Map<String, Pair<String, String>> getExclusiveLocks() { return Collections.singletonMap(getParameters().getEntityId().toString(), - new Pair<String, String>(LockingGroup.DISK.name(), getDiskIsBeingRemovedLockMessage())); + LockMessagesMatchUtil.makeLockingPair(LockingGroup.DISK, getDiskIsBeingRemovedLockMessage())); } private String getDiskIsBeingRemovedLockMessage() { @@ -371,13 +371,13 @@ result = new HashMap<String, Pair<String, String>>(); for (VM vm : listVms) { result.put(vm.getId().toString(), - new Pair<String, String>(LockingGroup.VM.name(), getDiskIsBeingRemovedLockMessage())); + LockMessagesMatchUtil.makeLockingPair(LockingGroup.VM, getDiskIsBeingRemovedLockMessage())); } } } else if (getDisk().getVmEntityType() == VmEntityType.TEMPLATE) { setVmTemplateIdParameter(); result = Collections.singletonMap(getVmTemplateId().toString(), - new Pair<String, String>(LockingGroup.TEMPLATE.name(), getDiskIsBeingRemovedLockMessage())); + LockMessagesMatchUtil.makeLockingPair(LockingGroup.TEMPLATE, getDiskIsBeingRemovedLockMessage())); } return result; } -- To view, visit http://gerrit.ovirt.org/13098 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id0c854cfc3b6cb1b7f7f4907452e116af5fbf6bf Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <aha...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches