Liron Ar has uploaded a new change for review.

Change subject: core: allow deactivate storage domain in different statuses
......................................................................

core: allow deactivate storage domain in different statuses

Currently the user can deactivate storage domain which is active only,
which might prevent it to try to move it to maintenance in different
cases. It makes sense to allow the user to try to deactivate the domain
also when it's inactive or unknown, in the worst case - the operation
would fail.

Change-Id: Icc131262c70f687a3ba73b40999d00ded9acfe97
Signed-off-by: Liron Aravot <lara...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcActionUtils.java
M 
backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/VdcActionUtilsTest.java
3 files changed, 6 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/22348/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
index 08004be..1798c32 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java
@@ -83,8 +83,7 @@
         }
 
         // when the execution is internal, proceed also if the domain is in 
unknown status.
-        if (!((getParameters().getIsInternal() && 
checkStorageDomainStatus(StorageDomainStatus.Active,
-                StorageDomainStatus.Unknown)) || 
checkStorageDomainStatus(StorageDomainStatus.Active))) {
+        if (checkStorageDomainStatus(StorageDomainStatus.Active, 
StorageDomainStatus.InActive, StorageDomainStatus.Unknown)) {
             return false;
         }
 
@@ -166,7 +165,9 @@
                 getStoragePoolIsoMapDAO().get
                         (new 
StoragePoolIsoMapId(getParameters().getStorageDomainId(),
                                 getParameters().getStoragePoolId()));
-        map.setStatus(StorageDomainStatus.Unknown);
+        if (map.getStatus() == StorageDomainStatus.Active) {
+            map.setStatus(StorageDomainStatus.Unknown);
+        }
         changeStorageDomainStatusInTransaction(map, 
StorageDomainStatus.Locked);
         proceedStorageDomainTreatmentByDomainType(false);
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcActionUtils.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcActionUtils.java
index ca0c942..b68976a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcActionUtils.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcActionUtils.java
@@ -271,9 +271,6 @@
                 StorageDomainStatus.Active,
                 EnumSet.of(VdcActionType.DetachStorageDomainFromPool, 
VdcActionType.ActivateStorageDomain));
         storageDomainMatrix.put(
-                StorageDomainStatus.InActive,
-                EnumSet.of(VdcActionType.DeactivateStorageDomain));
-        storageDomainMatrix.put(
                 StorageDomainStatus.Locked,
                 EnumSet.of(VdcActionType.DetachStorageDomainFromPool,
                         VdcActionType.DeactivateStorageDomain, 
VdcActionType.ActivateStorageDomain));
@@ -287,7 +284,7 @@
                         VdcActionType.DeactivateStorageDomain, 
VdcActionType.ActivateStorageDomain));
         storageDomainMatrix.put(
                 StorageDomainStatus.Unknown,
-                EnumSet.of(VdcActionType.DetachStorageDomainFromPool, 
VdcActionType.DeactivateStorageDomain));
+                EnumSet.of(VdcActionType.DetachStorageDomainFromPool));
         storageDomainMatrix.put(
                 StorageDomainStatus.Maintenance,
                 EnumSet.of(VdcActionType.DeactivateStorageDomain));
diff --git 
a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/VdcActionUtilsTest.java
 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/VdcActionUtilsTest.java
index 929152d..64c334a 100644
--- 
a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/VdcActionUtilsTest.java
+++ 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/VdcActionUtilsTest.java
@@ -52,7 +52,7 @@
                 { upVds, VdcActionType.RefreshHostCapabilities, true },
                 { downVds, VdcActionType.RefreshHostCapabilities, false },
                 { upStorageDomain, VdcActionType.DeactivateStorageDomain, true 
},
-                { downStorageDomain, VdcActionType.DeactivateStorageDomain, 
false },
+                { downStorageDomain, VdcActionType.DeactivateStorageDomain, 
true },
                 { new StoragePool(), VdcActionType.UpdateStoragePool, true }
         });
     }


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

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