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