Arik Hadas has uploaded a new change for review.

Change subject: core: refactoring in UpdateVmVersionCommand
......................................................................

core: refactoring in UpdateVmVersionCommand

- extract parameters initialization to separate method
- rename removeVmFromPoolParas to removeVmFromPoolParams
- prevent possible NPE on getExclusiveLocks

Change-Id: Id9626104a21060dcef1a60beb1b83873037f779b
Signed-off-by: Arik Hadas <aha...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmVersionCommand.java
1 file changed, 27 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/68/34068/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmVersionCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmVersionCommand.java
index 3be2045..6dab663 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmVersionCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmVersionCommand.java
@@ -91,7 +91,7 @@
             return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_TEMPLATE_DOES_NOT_EXIST);
         }
 
-        if (getVm().getVmtGuid().equals(getVmTemplate().getId())) {
+        if (getVmTemplateId().equals(getVm().getVmtGuid())) {
             return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_ALREADY_IN_LATEST_VERSION);
         }
 
@@ -115,11 +115,10 @@
 
         if (getVm().getVmPoolId() != null) {
             getParameters().setVmPoolId(getVm().getVmPoolId());
-            RemoveVmFromPoolParameters removeVmFromPoolParas = new 
RemoveVmFromPoolParameters(getVmId(), false);
-            
removeVmFromPoolParas.setTransactionScopeOption(TransactionScopeOption.RequiresNew);
+
             VdcReturnValueBase result = runInternalActionWithTasksContext(
                     VdcActionType.RemoveVmFromPool,
-                    removeVmFromPoolParas,
+                    buildRemoveVmFromPoolParameters(),
                     getLock());
             if (!result.getSucceeded()) {
                 log.errorFormat("Could not detach vm {0} ({1}) from vm-pool 
{2}.",
@@ -130,11 +129,10 @@
             }
         }
 
-        RemoveVmParameters removeParams = new RemoveVmParameters(getVmId(), 
false);
-        removeParams.setParentCommand(getActionType());
-        removeParams.setParentParameters(getParameters());
-        removeParams.setEntityInfo(getParameters().getEntityInfo());
-        VdcReturnValueBase result = 
runInternalActionWithTasksContext(VdcActionType.RemoveVm, removeParams, 
getLock());
+        VdcReturnValueBase result = runInternalActionWithTasksContext(
+                VdcActionType.RemoveVm,
+                buildRemoveVmParameters(),
+                getLock());
 
         if (result.getSucceeded()) {
             if (result.getHasAsyncTasks()) {
@@ -144,6 +142,20 @@
             }
             setSucceeded(true);
         }
+    }
+
+    private RemoveVmFromPoolParameters buildRemoveVmFromPoolParameters() {
+        RemoveVmFromPoolParameters parameters = new 
RemoveVmFromPoolParameters(getVmId(), false);
+        
parameters.setTransactionScopeOption(TransactionScopeOption.RequiresNew);
+        return parameters;
+    }
+
+    private RemoveVmParameters buildRemoveVmParameters() {
+        RemoveVmParameters parameters = new RemoveVmParameters(getVmId(), 
false);
+        parameters.setParentCommand(getActionType());
+        parameters.setParentParameters(getParameters());
+        parameters.setEntityInfo(getParameters().getEntityInfo());
+        return parameters;
     }
 
     private void addUpdatedVm() {
@@ -230,8 +242,12 @@
 
     @Override
     protected Map<String, Pair<String, String>> getExclusiveLocks() {
-        return Collections.singletonMap(getVmId().toString(),
-                LockMessagesMatchUtil.makeLockingPair(LockingGroup.VM, 
VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED));
+        if (getVmId() != null) {
+            return Collections.singletonMap(getVmId().toString(),
+                    LockMessagesMatchUtil.makeLockingPair(LockingGroup.VM, 
VdcBllMessages.ACTION_TYPE_FAILED_OBJECT_LOCKED));
+        }
+
+        return null;
     }
 
     @Override


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id9626104a21060dcef1a60beb1b83873037f779b
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