Martin Peřina has uploaded a new change for review. Change subject: core: Move VDS to Maintenance only if StopSPM is successful ......................................................................
core: Move VDS to Maintenance only if StopSPM is successful Fixes MaintenanceNumberOfVdssCommand so only VDSs for which StopSPM was executed successfully, will continues with Move to Maintenance process. Change-Id: I5c58f9a9629d2e7a496f02c4dececeb842d44543 Bug-Url: https://bugzilla.redhat.com/1023145 Signed-off-by: Martin Perina <mper...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java 1 file changed, 16 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/21231/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java index 035f8a0..40c570b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java @@ -4,6 +4,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -31,6 +32,7 @@ import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.common.vdscommands.SetVdsStatusVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; +import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.vdsbroker.vdsbroker.CancelMigrationVDSParameters; @@ -55,16 +57,13 @@ } private void MoveVdssToGoingToMaintenanceMode() { - List<VDS> spms = new ArrayList<VDS>(); - for (VDS vds : vdssToMaintenance.values()) { - if (vds.getSpmStatus() != VdsSpmStatus.SPM) { - setVdsStatusToPrepareForMaintaice(vds); - } else { - spms.add(vds); + Iterator<Guid> it = vdssToMaintenance.keySet().iterator(); + while (it.hasNext()) { + VDSReturnValue result = setVdsStatusToPrepareForMaintenance(vdssToMaintenance.get(it.next())); + if (!result.getSucceeded()) { + // remove VDS from map because of an error + it.remove(); } - } - for (VDS vds : spms) { - setVdsStatusToPrepareForMaintaice(vds); } cancelIncommingMigrations(); freeLock(); @@ -81,16 +80,21 @@ } } - private void setVdsStatusToPrepareForMaintaice(VDS vds) { + private VDSReturnValue setVdsStatusToPrepareForMaintenance(VDS vds) { + VDSReturnValue result; if (vds.getStatus() != VDSStatus.PreparingForMaintenance && vds.getStatus() != VDSStatus.NonResponsive && vds.getStatus() != VDSStatus.Down) { - runVdsCommand(VDSCommandType.SetVdsStatus, + result = runVdsCommand(VDSCommandType.SetVdsStatus, new SetVdsStatusVDSCommandParameters(vds.getId(), VDSStatus.PreparingForMaintenance)); + } else { + result = new VDSReturnValue(); + result.setSucceeded(true); } + return result; } private void MigrateAllVdss() { - for (Guid vdsId : getParameters().getVdsIdList()) { + for (Guid vdsId : vdssToMaintenance.keySet()) { // ParametersCurrentUser = CurrentUser MaintenanceVdsParameters tempVar = new MaintenanceVdsParameters(vdsId, getParameters().getIsInternal()); tempVar.setSessionId(getParameters().getSessionId()); -- To view, visit http://gerrit.ovirt.org/21231 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5c58f9a9629d2e7a496f02c4dececeb842d44543 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Peřina <mper...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches