plysan has uploaded a new change for review.

Change subject: engine: check active vds before activate storage domain
......................................................................

engine: check active vds before activate storage domain

Change-Id: Ia3e45b53d15b757237af8c76457f213c00a73909
Signed-off-by: plysan <ply...@gmail.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
3 files changed, 16 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/17940/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
index 9214a84..23e043d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ActivateStorageDomainCommand.java
@@ -58,7 +58,8 @@
                                                   
VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_POOL_STATUS_ILLEGAL)
                 && checkStorageDomain()
                 && storageDomainStatusIsValid()
-                && (getStorageDomain().getStorageDomainType() == 
StorageDomainType.Master || checkMasterDomainIsUp());
+                && (getStorageDomain().getStorageDomainType() == 
StorageDomainType.Master || checkMasterDomainIsUp())
+                && checkActiveVdsInStoragePool();
         return returnValue;
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
index 746d63c..6691071 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java
@@ -21,6 +21,8 @@
 import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMapId;
 import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.StorageType;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
@@ -205,6 +207,17 @@
         return returnValue;
     }
 
+    protected boolean checkActiveVdsInStoragePool() {
+        List<VDS> vdss = 
getVdsDAO().getAllForStoragePool(getParameters().getStoragePoolId());
+        for (VDS vds : vdss) {
+            if (vds.getStatus() == VDSStatus.Up) {
+                return true;
+            }
+        }
+        
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_NO_ACTIVE_HOST_IN_STORAGE_POOL);
+        return false;
+    }
+
     protected void setStorageDomainStatus(StorageDomainStatus status, 
CompensationContext context) {
         if (getStorageDomain() != null && 
getStorageDomain().getStoragePoolId() != null) {
             StoragePoolIsoMap map = 
getStorageDomain().getStoragePoolIsoMapData();
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
index afd6e01..871d78a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
@@ -472,6 +472,7 @@
     ACTION_TYPE_FAILED_STORAGE_DOMAIN_FORMAT_ILLEGAL(ErrorType.CONFLICT),
     ACTION_TYPE_FAILED_STORAGE_DOMAIN_FORMAT_ILLEGAL_HOST(ErrorType.CONFLICT),
     ACTION_TYPE_FAILED_MASTER_STORAGE_DOMAIN_NOT_ACTIVE(ErrorType.CONFLICT),
+    ACTION_TYPE_FAILED_NO_ACTIVE_HOST_IN_STORAGE_POOL(ErrorType.CONFLICT),
     STORAGE_DOMAIN_NOT_ATTACHED_TO_STORAGE_POOL(ErrorType.CONFLICT),
     ERROR_CANNOT_DETACH_STORAGE_DOMAIN_WITH_IMAGES(ErrorType.CONFLICT),
     ERROR_CANNOT_ATTACH_MORE_THAN_ONE_ISO_DOMAIN(ErrorType.CONFLICT),


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia3e45b53d15b757237af8c76457f213c00a73909
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: plysan <ply...@gmail.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to