Arik Hadas has uploaded a new change for review. Change subject: core: filter duplicate requests to migrate the same vm ......................................................................
core: filter duplicate requests to migrate the same vm Because of a bug in the UI, we might get several requests together to migrate the same VM. It produces an error message to the user saying the VM is already been migrated although it is actually being migrated because of his request. The solution is to override the hashCode and equals method in the parameters of migration so duplicate requests will be filtered by MultipleActionRunner. Change-Id: Idda26210b9cf4f2746e27a3291bab20b10aaf103 Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmToServerParameters.java 2 files changed, 50 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/55/36155/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmParameters.java index 13f97cc..a981664 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmParameters.java @@ -2,6 +2,8 @@ import java.util.ArrayList; import java.util.Date; + +import org.ovirt.engine.core.common.utils.ObjectUtils; import org.ovirt.engine.core.compat.Guid; /** @@ -40,6 +42,30 @@ setParentCommand(internalMigrateVmParameters.getParentCommand()); } + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + (forceMigrationForNonMigratableVm ? 1231 : 1237); + result = prime * result + ((targetVdsGroupId == null) ? 0 : targetVdsGroupId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (!(obj instanceof MigrateVmParameters)) { + return false; + } + + MigrateVmParameters other = (MigrateVmParameters) obj; + return forceMigrationForNonMigratableVm == other.forceMigrationForNonMigratableVm + && ObjectUtils.objectsEqual(targetVdsGroupId, other.targetVdsGroupId); + } + public boolean isForceMigrationForNonMigratableVm() { return forceMigrationForNonMigratableVm; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmToServerParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmToServerParameters.java index b2a9382..ac7dcff 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmToServerParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MigrateVmToServerParameters.java @@ -1,10 +1,14 @@ package org.ovirt.engine.core.common.action; +import org.ovirt.engine.core.common.utils.ObjectUtils; import org.ovirt.engine.core.compat.Guid; public class MigrateVmToServerParameters extends MigrateVmParameters { private static final long serialVersionUID = 2378358850714143232L; private Guid vdsId; + + public MigrateVmToServerParameters() { + } public MigrateVmToServerParameters(boolean forceMigration, Guid vmId, Guid serverId, Guid targetVdsGroupId) { super(forceMigration, vmId, targetVdsGroupId); @@ -19,6 +23,25 @@ return vdsId; } - public MigrateVmToServerParameters() { + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((vdsId == null) ? 0 : vdsId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (!(obj instanceof MigrateVmToServerParameters)) { + return false; + } + + MigrateVmToServerParameters other = (MigrateVmToServerParameters) obj; + return ObjectUtils.objectsEqual(vdsId, other.vdsId); } } -- To view, visit http://gerrit.ovirt.org/36155 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idda26210b9cf4f2746e27a3291bab20b10aaf103 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
