Daniel Erez has uploaded a new change for review.

Change subject: core: extract SnapshotsEngineLock to BaseImagesCommand
......................................................................

core: extract SnapshotsEngineLock to BaseImagesCommand

Extracted SnapshotsEngineLock from  RemoveImageCommand
into BaseImagesCommand for reusability in other derivative commands.

Change-Id: Idc4b46a2c53a0ec6ac13c1dba73089ae4512bea7
Signed-off-by: Daniel Erez <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
2 files changed, 23 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/26325/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
index 3c235f4..faad1fb 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.lang.NotImplementedException;
 import org.ovirt.engine.core.bll.context.CompensationContext;
@@ -13,8 +14,12 @@
 import org.ovirt.engine.core.common.businessentities.DiskImageDynamic;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
 import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType;
+import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.image_storage_domain_map;
 import org.ovirt.engine.core.common.errors.VdcBLLException;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.common.locks.LockingGroup;
+import org.ovirt.engine.core.common.utils.Pair;
 import 
org.ovirt.engine.core.common.vdscommands.GetImageInfoVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
@@ -24,6 +29,7 @@
 import org.ovirt.engine.core.dao.DiskImageDynamicDAO;
 import org.ovirt.engine.core.dao.ImageDao;
 import org.ovirt.engine.core.dao.SnapshotDao;
+import org.ovirt.engine.core.utils.lock.EngineLock;
 
 /**
  * Base class for all image handling commands
@@ -143,6 +149,12 @@
 
     protected void setImageGroupId(Guid value) {
         _imageGroupId = value;
+    }
+
+    private EngineLock snapshotsEngineLock;
+
+    protected EngineLock getSnapshotsEngineLock() {
+        return snapshotsEngineLock;
     }
 
     /**
@@ -386,4 +398,13 @@
                 .save(image_storage_domain_map);
         return image_storage_domain_map;
     }
+
+    protected void lockVmSnapshotsWithWait(VM vm) {
+        snapshotsEngineLock = new EngineLock();
+        Map<String, Pair<String, String>> snapshotsExlusiveLockMap =
+                Collections.singletonMap(vm.getId().toString(),
+                        
LockMessagesMatchUtil.makeLockingPair(LockingGroup.VM_SNAPSHOTS, 
VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED));
+        snapshotsEngineLock.setExclusiveLocks(snapshotsExlusiveLockMap);
+        getLockManager().acquireLockWait(snapshotsEngineLock);
+    }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
index 26683af..6bc67d2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveImageCommand.java
@@ -5,7 +5,6 @@
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 
 import org.ovirt.engine.core.bll.utils.ClusterUtils;
 import org.ovirt.engine.core.common.VdcObjectType;
@@ -21,9 +20,6 @@
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.errors.VdcBLLException;
 import org.ovirt.engine.core.common.errors.VdcBllErrors;
-import org.ovirt.engine.core.common.errors.VdcBllMessages;
-import org.ovirt.engine.core.common.locks.LockingGroup;
-import org.ovirt.engine.core.common.utils.Pair;
 import 
org.ovirt.engine.core.common.vdscommands.DeleteImageGroupVDSCommandParameters;
 import 
org.ovirt.engine.core.common.vdscommands.GetImagesListVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
@@ -31,7 +27,6 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.TransactionScopeOption;
 import org.ovirt.engine.core.dao.VmDeviceDAO;
-import org.ovirt.engine.core.utils.lock.EngineLock;
 import org.ovirt.engine.core.utils.ovf.OvfManager;
 import org.ovirt.engine.core.utils.ovf.OvfReaderException;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
@@ -43,7 +38,6 @@
 @InternalCommandAttribute
 @NonTransactiveCommandAttribute(forceCompensation=true)
 public class RemoveImageCommand<T extends RemoveImageParameters> extends 
BaseImagesCommand<T> {
-    private EngineLock snapshotsEngineLock;
 
     public RemoveImageCommand(T parameters) {
         super(parameters);
@@ -190,19 +184,10 @@
                         }
                     });
         } finally {
-            if (snapshotsEngineLock != null) {
-                getLockManager().releaseLock(snapshotsEngineLock);
+            if (getSnapshotsEngineLock() != null) {
+                getLockManager().releaseLock(getSnapshotsEngineLock());
             }
         }
-    }
-
-    private void lockVmSnapshotsWithWait(VM vm) {
-        snapshotsEngineLock = new EngineLock();
-        Map<String, Pair<String, String>> snapshotsExlusiveLockMap =
-                Collections.singletonMap(vm.getId().toString(),
-                        
LockMessagesMatchUtil.makeLockingPair(LockingGroup.VM_SNAPSHOTS, 
VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED));
-        snapshotsEngineLock.setExclusiveLocks(snapshotsExlusiveLockMap);
-        getLockManager().acquireLockWait(snapshotsEngineLock);
     }
 
     /**


-- 
To view, visit http://gerrit.ovirt.org/26325
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idc4b46a2c53a0ec6ac13c1dba73089ae4512bea7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Daniel Erez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to