Gilad Chaplik has uploaded a new change for review.

Change subject: core: removing canRunVm helper compat method
......................................................................

core: removing canRunVm helper compat method

During the refactoring of runVmCommand.CanDoAction, a static helper
method was needed to keep supporting VmPoolCommandBase, which had a
static reference to validation code.
Once the refactor is completed, moving all validation logic into that class,
instead of helper method.

Change-Id: Ia5063a8ae840ee27736722015480748ece048337
Signed-off-by: Gilad Chaplik <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
2 files changed, 64 insertions(+), 82 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/96/13696/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
index 95bba08..a8d467f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmPoolCommandBase.java
@@ -31,6 +31,7 @@
 
 public abstract class VmPoolCommandBase<T extends VmPoolParametersBase> 
extends CommandBase<T> {
     private static final RunVmValidator runVmValidator = new RunVmValidator();
+    private static final SnapshotsValidator snapshotValidator = new 
SnapshotsValidator();
     private VmPool mVmPool;
 
     protected VmPool getVmPool() {
@@ -171,7 +172,7 @@
         }
 
         // check vm images:
-        SnapshotsValidator snapshotsValidator = new SnapshotsValidator();
+        SnapshotsValidator snapshotsValidator = snapshotValidator;
         ValidationResult vmDuringSnapshotResult = 
snapshotsValidator.vmNotDuringSnapshot(vmId);
         if (!vmDuringSnapshotResult.isValid()) {
             return failVmFree(messages, 
vmDuringSnapshotResult.getMessage().name());
@@ -265,16 +266,68 @@
                         true,
                         new VdsFreeMemoryChecker(new NonWaitingDelayer()));
 
-        return getRunVmValidator().canRunVm(vm,
-                messages,
-                getDiskDao().getAllForVm(vm.getId(), true),
-                runVmParams.getBootSequence(),
-                false,
-                fetchStoragePool(vm.getStoragePoolId()),
-                runVmParams.getDiskPath(),
-                runVmParams.getFloppyPath(),
-                runVmParams.getRunAsStateless(),
-                vdsSelector);
+        List<Disk> vmDisks = getDiskDao().getAllForVm(vm.getId(), true);
+        if (!getRunVmValidator().validateVmProperties(vm, messages)) {
+            return false;
+        }
+        ValidationResult result = getRunVmValidator().validateBootSequence(vm, 
runVmParams.getBootSequence(), vmDisks);
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        result = new VmValidator(vm).vmNotLocked();
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        result = getSnapshotValidator().vmNotDuringSnapshot(vm.getId());
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        if (getRunVmValidator().validateImagesForRunVm(vm, vmDisks, false, 
messages)) {
+            return false;
+        }
+        result = new 
StoragePoolValidator(fetchStoragePool(vm.getStoragePoolId())).isUp();
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        result =
+                getRunVmValidator().validateIsoPath(vm.isAutoStartup(),
+                        vm.getStoragePoolId(),
+                        runVmParams.getDiskPath(),
+                        runVmParams.getFloppyPath());
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        result = getRunVmValidator().vmDuringInitialization(vm);
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        if (!getRunVmValidator().validateVdsStatus(vm, messages)) {
+            return false;
+        }
+        result = getRunVmValidator().validateStatelessVm(vm, vmDisks, 
runVmParams.getRunAsStateless());
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        if (!vdsSelector.canFindVdsToRunOn(messages, false)) {
+            return false;
+        }
+        result = getRunVmValidator().validateVmStatusUsingMatrix(vm);
+        if (!result.isValid()) {
+            messages.add(result.getMessage().toString());
+            return false;
+        }
+        return true;
+    }
+
+    private static SnapshotsValidator getSnapshotValidator() {
+        return snapshotValidator;
     }
 
     private static DiskDao getDiskDao() {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
index f792cd0..3837e54 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/RunVmValidator.java
@@ -11,11 +11,9 @@
 import org.ovirt.engine.core.bll.ImagesHandler;
 import org.ovirt.engine.core.bll.IsoDomainListSyncronizer;
 import org.ovirt.engine.core.bll.ValidationResult;
-import org.ovirt.engine.core.bll.VdsSelector;
 import org.ovirt.engine.core.bll.VmHandler;
 import org.ovirt.engine.core.bll.interfaces.BackendInternal;
 import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator;
-import org.ovirt.engine.core.bll.storage.StoragePoolValidator;
 import org.ovirt.engine.core.common.VdcActionUtils;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.BootSequence;
@@ -28,7 +26,6 @@
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
-import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.queries.GetImagesListParameters;
@@ -284,72 +281,4 @@
     protected VmPropertiesUtils getVmPropertiesUtils() {
         return VmPropertiesUtils.getInstance();
     }
-
-    // Compatibility method for static VmPoolCommandBase.canRunPoolVm
-    // who uses the same validation as runVmCommand
-    public boolean canRunVm(VM vm,
-            List<String> messages,
-            List<Disk> vmDisks,
-            BootSequence bootSequence,
-            boolean isInternalExecution,
-            storage_pool storagePool,
-            String diskPath,
-            String floppyPath,
-            Boolean runAsStateless, VdsSelector vdsSelector) {
-        if (!validateVmProperties(vm, messages)) {
-            return false;
-        }
-        ValidationResult result = validateBootSequence(vm, bootSequence, 
vmDisks);
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-        result = new VmValidator(vm).vmNotLocked();
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-        result = getSnapshotValidator().vmNotDuringSnapshot(vm.getId());
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-        if (validateImagesForRunVm(vm, vmDisks, isInternalExecution, 
messages)) {
-            return false;
-        }
-        result = new StoragePoolValidator(storagePool).isUp();
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-        result = validateIsoPath(vm.isAutoStartup(), vm.getStoragePoolId(), 
diskPath, floppyPath);
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-        result = vmDuringInitialization(vm);
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-        if (!validateVdsStatus(vm, messages)) {
-            return false;
-        }
-        result = validateStatelessVm(vm, vmDisks, runAsStateless);
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-        if (!vdsSelector.canFindVdsToRunOn(messages, false)) {
-            return false;
-        }
-        result = validateVmStatusUsingMatrix(vm);
-        if (!result.isValid()) {
-            messages.add(result.getMessage().toString());
-            return false;
-        }
-
-        return true;
-    }
-
 }


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

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

Reply via email to