Liron Ar has uploaded a new change for review.

Change subject: core: allow to perform hotplug/unplug/attach when vm is 
suspended.
......................................................................

core: allow to perform hotplug/unplug/attach when vm is suspended.

When vm is suspended there's no reason to not allow performing hot
plug/unplug and attach.

Change-Id: I6d950a1e7945e43ec5ee5ffa0f79c5f9536473a6
Bug-Url: https://bugzilla.redhat.com/918498
Signed-off-by: Liron Aravot <lara...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractDiskVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java
3 files changed, 7 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/12986/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractDiskVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractDiskVmCommand.java
index 0e48e19..4708e3d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractDiskVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractDiskVmCommand.java
@@ -143,8 +143,9 @@
         return volumeFormat == VolumeFormat.RAW;
     }
 
-    protected boolean isVmUpOrDown() {
-        if (getVm().getStatus() != VMStatus.Up && getVm().getStatus() != 
VMStatus.Down) {
+    protected boolean isVmInUpPausedDownStatus() {
+        if (getVm().getStatus() != VMStatus.Up && getVm().getStatus() != 
VMStatus.Down
+                && getVm().getStatus() != VMStatus.Paused) {
             
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_VM_STATUS_ILLEGAL);
             return false;
         }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java
index 624f020..869248e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AttachDiskToVmCommand.java
@@ -70,7 +70,7 @@
             return false;
         }
 
-        retValue = retValue && isVmExist() && isVmUpOrDown() && 
isDiskCanBeAddedToVm(disk)
+        retValue = retValue && isVmExist() && isVmInUpPausedDownStatus() && 
isDiskCanBeAddedToVm(disk)
                 && isDiskPassPciAndIdeLimit(disk);
 
         if (retValue && getVmDeviceDao().exists(new VmDeviceId(disk.getId(), 
getVmId()))) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java
index 9919893..fc99e1f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HotPlugDiskToVmCommand.java
@@ -40,13 +40,13 @@
     @Override
     protected boolean canDoAction() {
         disk = getDiskDao().get(getParameters().getDiskId());
-        return isVmExist() && isVmUpOrDown() && isDiskExist(disk) && 
checkCanPerformPlugUnPlugDisk()
+        return isVmExist() && isVmInUpPausedDownStatus() && isDiskExist(disk) 
&& checkCanPerformPlugUnPlugDisk()
                 && 
validate(getSnapshotsValidator().vmNotDuringSnapshot(getVmId()));
     }
 
     private boolean checkCanPerformPlugUnPlugDisk() {
         boolean returnValue = true;
-        if (getVm().getStatus() == VMStatus.Up) {
+        if (getVm().getStatus() == VMStatus.Up || getVm().getStatus() == 
VMStatus.Paused) {
             setVdsId(getVm().getRunOnVds().getValue());
             returnValue =
                     isHotPlugSupported() && isOsSupportingHotPlug()
@@ -73,7 +73,7 @@
 
     @Override
     protected void executeVmCommand() {
-        if (getVm().getStatus() == VMStatus.Up) {
+        if (getVm().getStatus() == VMStatus.Up || getVm().getStatus() == 
VMStatus.Paused) {
             performPlugCommand(getPlugAction(), disk, oldVmDevice);
         }
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6d950a1e7945e43ec5ee5ffa0f79c5f9536473a6
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Liron Ar <lara...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to