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

Reply via email to