Daniel Erez has uploaded a new change for review. Change subject: Revert "engine:Validate maximum number of hosts in DC.(#771699)" ......................................................................
Revert "engine:Validate maximum number of hosts in DC.(#771699)" This reverts commit bdd78019337a8757f3a0fe5aa2ea6abd12b105f8 Additional fixes are required for this patch, will be re-pushed later. Change-Id: I05c334738864796c33c01fe3b6940088d3fdb11f Signed-off-by: Daniel Erez <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVDSClusterCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java M backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties 5 files changed, 26 insertions(+), 47 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/16/8316/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java index c110804..03e3c10 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsSpmIdCommand.java @@ -6,10 +6,6 @@ import org.ovirt.engine.core.common.action.VdsActionParameters; import org.ovirt.engine.core.common.businessentities.vds_spm_id_map; -import org.ovirt.engine.core.common.config.Config; -import org.ovirt.engine.core.common.config.ConfigValues; -import org.ovirt.engine.core.common.errors.VdcBllErrors; -import org.ovirt.engine.core.common.errors.VdcFault; import org.ovirt.engine.core.common.locks.LockingGroup; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; @@ -17,9 +13,8 @@ import org.ovirt.engine.core.utils.linq.LinqUtils; @InternalCommandAttribute -@LockIdNameAttribute(isWait = true) +@LockIdNameAttribute(isWait=true) public class AddVdsSpmIdCommand<T extends VdsActionParameters> extends VdsCommand<T> { - private List<vds_spm_id_map> vds_spm_id_mapList; /** * Constructor for command creation when compensation is applied on startup @@ -36,29 +31,17 @@ @Override protected boolean canDoAction() { - // check if vds already has vds spm id and storage pool exists - if (Guid.Empty.equals(getVds().getstorage_pool_id())) { - return false; - } - vds_spm_id_mapList = DbFacade.getInstance().getVdsSpmIdMapDao().getAll( - getVds().getstorage_pool_id()); - if (vds_spm_id_mapList.size() >= Config.<Integer> GetValue(ConfigValues.MaxNumberOfHostsInStoragePool)) { - VdcFault fault = new VdcFault(); - fault.setError(VdcBllErrors.ReachedMaxNumberOfHostsInDC); - fault.setMessage(Backend.getInstance() - .getVdsErrorsTranslator() - .TranslateErrorTextSingle(fault.getError().toString())); - getReturnValue().setFault(fault); - return false; - } - return true; + return !Guid.Empty.equals(getVds().getstorage_pool_id()) + && DbFacade.getInstance().getVdsSpmIdMapDao().get(getVdsId()) == null; } @Override protected void executeCommand() { // according to shaharf the first id is 1 int selectedId = 1; - List<Integer> map = LinqUtils.foreach(vds_spm_id_mapList, new Function<vds_spm_id_map, Integer>() { + List<vds_spm_id_map> list = DbFacade.getInstance().getVdsSpmIdMapDao().getAll( + getVds().getstorage_pool_id()); + List<Integer> map = LinqUtils.foreach(list, new Function<vds_spm_id_map, Integer>() { @Override public Integer eval(vds_spm_id_map vds_spm_id_map) { return vds_spm_id_map.getvds_spm_id(); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVDSClusterCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVDSClusterCommand.java index 81d7c54..028d65d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVDSClusterCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVDSClusterCommand.java @@ -111,19 +111,6 @@ setSucceeded(true); return; } - - if (targetStoragePool != null) { - VdcReturnValueBase addVdsSpmIdReturn = - Backend.getInstance().runInternalAction(VdcActionType.AddVdsSpmId, - getParameters(), - new CommandContext(getCompensationContext())); - if (!addVdsSpmIdReturn.getSucceeded()) { - setSucceeded(false); - getReturnValue().setFault(addVdsSpmIdReturn.getFault()); - return; - } - } - // save the new cluster id TransactionSupport.executeInNewTransaction(new TransactionMethod<Void>() { @Override @@ -165,6 +152,17 @@ } } + if (targetStoragePool != null) { + VdcReturnValueBase addVdsSpmIdReturn = + Backend.getInstance().runInternalAction(VdcActionType.AddVdsSpmId, + getParameters(), + new CommandContext(getCompensationContext())); + if (!addVdsSpmIdReturn.getSucceeded()) { + setSucceeded(false); + getReturnValue().setFault(addVdsSpmIdReturn.getFault()); + return; + } + } setSucceeded(true); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java index 3d53178..7c2e689 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java @@ -60,15 +60,6 @@ && getVdsGroup().getstorage_pool_id() != null) { for (VdsStatic vds : getVdsStaticDAO().getAllForVdsGroup(oldGroup.getId())) { VdsActionParameters parameters = new VdsActionParameters(vds.getId()); - if (getVdsGroup().getstorage_pool_id() != null) { - VdcReturnValueBase addVdsSpmIdReturn = - getBackend().runInternalAction(VdcActionType.AddVdsSpmId, parameters); - if (!addVdsSpmIdReturn.getSucceeded()) { - setSucceeded(false); - getReturnValue().setFault(addVdsSpmIdReturn.getFault()); - return; - } - } if (oldGroup.getstorage_pool_id() != null) { VdcReturnValueBase removeVdsSpmIdReturn = getBackend().runInternalAction(VdcActionType.RemoveVdsSpmId, @@ -79,6 +70,15 @@ return; } } + if (getVdsGroup().getstorage_pool_id() != null) { + VdcReturnValueBase addVdsSpmIdReturn = + getBackend().runInternalAction(VdcActionType.AddVdsSpmId, parameters); + if (!addVdsSpmIdReturn.getSucceeded()) { + setSucceeded(false); + getReturnValue().setFault(addVdsSpmIdReturn.getFault()); + return; + } + } } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java index fb4fe2a..d5a3492 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java @@ -306,7 +306,6 @@ ImportInfoError(801), ImportUnknownType(802), ExportError(803), - ReachedMaxNumberOfHostsInDC(804), ResourceNamespaceNotEmpty(850), ResourceTimeout(851), ResourceDoesNotExist(852), diff --git a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties index 92036ad..fb309e7 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -237,7 +237,6 @@ CannotRetrieveSpmStatus=Cannot retrieve SPM status, master domain probably unavailable FileStorageDomainStaleNFSHandle=Stale NFS handle on underlying NFS server InvalidJob=Job is invalid -ReachedMaxNumberOfHostsInDC=The maximum number of Hosts allowed in the Data Center has been reached InvalidPhysDev=Invalid physical device PartitionedPhysDev=Partitioned physical device InvalidRecovery=Recovery is invalid -- To view, visit http://gerrit.ovirt.org/8316 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I05c334738864796c33c01fe3b6940088d3fdb11f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
