Arik Hadas has uploaded a new change for review.

Change subject: core: move VmCommand#removeVmInSpm method
......................................................................

core: move VmCommand#removeVmInSpm method

Move VmCommand#removeVmInSpm method to RemoveVmFromImportExportCommand
class as it is the only place where this method is called from.

The code which is related to disk images removal is extracted from the
execute method of RemoveVmFromImportExportCommand to separate method.

In addition, minor refactoring is made in the canDoAction method of
RemoveVmFromImportExportCommand.

Change-Id: Id3945268925fb5f1541fa29c9ef24e97fc243228
Signed-off-by: Arik Hadas <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
2 files changed, 26 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/09/16709/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java
index cea23d0..95b2f4c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmFromImportExportCommand.java
@@ -22,6 +22,8 @@
 import 
org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.vdscommands.RemoveVMVDSCommandParameters;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
@@ -40,45 +42,45 @@
 
     @Override
     protected boolean canDoAction() {
-        addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE);
-        addCanDoActionMessage(VdcBllMessages.VAR__TYPE__VM);
         StorageDomain storage = 
DbFacade.getInstance().getStorageDomainDao().getForStoragePool(
                 getParameters().getStorageDomainId(), 
getParameters().getStoragePoolId());
         if (storage == null) {
-            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST);
-            return false;
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST);
         }
 
         if (storage.getStatus() == null || storage.getStatus() != 
StorageDomainStatus.Active) {
-            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL);
-            return false;
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_STATUS_ILLEGAL);
         }
 
         if (storage.getStorageDomainType() != StorageDomainType.ImportExport) {
-            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
-            return false;
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_TYPE_ILLEGAL);
         }
 
         // getVm() is the vm from the export domain
         if (getVm() == null) {
-            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_VM_NOT_FOUND_ON_EXPORT_DOMAIN);
-            return false;
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_NOT_FOUND_ON_EXPORT_DOMAIN);
         }
 
         // not using getVm() since its overridden to get vm from export domain
         VM vm = getVmDAO().get(getVmId());
         if (vm != null && vm.getStatus() == VMStatus.ImageLocked) {
             if 
(AsyncTaskManager.getInstance().hasTasksForEntityIdAndAction(vm.getId(), 
VdcActionType.ExportVm)) {
-                
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_VM_DURING_EXPORT);
-                return false;
+                return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_DURING_EXPORT);
             }
         }
+
         return true;
     }
 
     @Override
     protected void executeVmCommand() {
-        removeVmInSpm(getParameters().getStoragePoolId(), getVmId(), 
getParameters().getStorageDomainId());
+        removeVmInSpm();
+        removeDiskImages();
+
+        setSucceeded(true);
+    }
+
+    private void removeDiskImages() {
         List<DiskImage> images =
                 ImagesHandler.filterImageDisks(getVm().getDiskMap().values(), 
true, false);
         for (DiskImage image : images) {
@@ -86,8 +88,18 @@
             image.setStoragePoolId(getParameters().getStoragePoolId());
         }
         removeVmImages(images);
+    }
 
-        setSucceeded(true);
+    private boolean removeVmInSpm() {
+        return runVdsCommand(VDSCommandType.RemoveVM, 
buildRemoveVmParameters())
+                .getSucceeded();
+    }
+
+    private RemoveVMVDSCommandParameters buildRemoveVmParameters() {
+        return new RemoveVMVDSCommandParameters(
+                getParameters().getStoragePoolId(),
+                getVmId(),
+                getParameters().getStorageDomainId());
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
index fe79806..3c683ed 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
@@ -29,7 +29,6 @@
 import org.ovirt.engine.core.common.utils.SimpleDependecyInjector;
 import org.ovirt.engine.core.common.utils.VmDeviceType;
 import 
org.ovirt.engine.core.common.vdscommands.DeleteImageGroupVDSCommandParameters;
-import org.ovirt.engine.core.common.vdscommands.RemoveVMVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.compat.Guid;
@@ -159,11 +158,6 @@
             
messages.add(VdcBllMessages.ACTION_TYPE_FAILED_EXCEEDED_MAX_IDE_SLOTS.name());
         }
         return result;
-    }
-
-    protected boolean removeVmInSpm(Guid storagePoolId, Guid vmID, Guid 
storageDomainId) {
-        return runVdsCommand(VDSCommandType.RemoveVM,
-                new RemoveVMVDSCommandParameters(storagePoolId, vmID, 
storageDomainId)).getSucceeded();
     }
 
     protected void removeVmStatic() {


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

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

Reply via email to