Roy Golan has uploaded a new change for review. Change subject: core: Suuport aborting migration on qemu error ......................................................................
core: Suuport aborting migration on qemu error following libvirt support[1] and vdsm[2] to abort an on going migration on any error using a flag, adding this to the engine from version >= 3.3 [1] https://bugzilla.redhat.com/972675 [2] https://bugzilla.redhat.com/961154 Change-Id: I048c96f049d24b9793af669d513d1e9f2e1f24ec Bug-Url: https://bugzilla.redhat.com/886416 Signed-off-by: Roy Golan <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MigrateVDSCommandParameters.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/MigrateBrokerVDSCommand.java M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql M packaging/etc/engine-config/engine-config.properties 6 files changed, 27 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/12/19312/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java index 6dcab75..26af814 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java @@ -1513,6 +1513,10 @@ @DefaultValueAttribute("60") AutoStartVmsRunnerIntervalInSeconds(538), + @TypeConverterAttribute(Boolean.class) + @DefaultValueAttribute("true") + AbortMigrationOnError(538), + Invalid(65535); private int intValue; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MigrateVDSCommandParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MigrateVDSCommandParameters.java index 060f9d9..aeb1faf 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MigrateVDSCommandParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MigrateVDSCommandParameters.java @@ -2,6 +2,7 @@ import org.ovirt.engine.core.common.businessentities.MigrationMethod; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.compat.Version; public class MigrateVDSCommandParameters extends VdsAndVmIDVDSParametersBase { private String _srcHost; @@ -10,6 +11,7 @@ private MigrationMethod _migrationMethod; private Boolean tunnelMigration; private String dstQemu; + private Version clusterVersion; public MigrateVDSCommandParameters(Guid vdsId, Guid vmId, String srcHost, Guid dstVdsId, String dstHost, MigrationMethod migrationMethod, Boolean tunnelMigration, String dstQemu) { @@ -60,4 +62,12 @@ getMigrationMethod(), getTunnelMigration()); } + + public void setClusterVersion(Version clusterVersion) { + this.clusterVersion = clusterVersion; + } + + public Version getClusterVersion() { + return clusterVersion; + } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java index e0f2fb1..4b0594e 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java @@ -19,6 +19,7 @@ @Override protected void executeVdsIdCommand() { MigrateVDSCommandParameters parameters = getParameters(); + if (_vdsManager != null) { VMStatus retval; MigrateBrokerVDSCommand<MigrateVDSCommandParameters> command = @@ -27,6 +28,7 @@ VDSReturnValue vdsReturnValue = command.getVDSReturnValue(); final VM vm = DbFacade.getInstance().getVmDao().get(parameters.getVmId()); + parameters.setClusterVersion(vm.getVdsGroupCompatibilityVersion()); if (vdsReturnValue.getSucceeded()) { retval = VMStatus.MigratingFrom; diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/MigrateBrokerVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/MigrateBrokerVDSCommand.java index ef5f313..4e5fe1c 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/MigrateBrokerVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/MigrateBrokerVDSCommand.java @@ -4,6 +4,9 @@ import java.util.Map; import org.apache.commons.lang.StringUtils; +import org.ovirt.engine.core.common.FeatureSupported; +import org.ovirt.engine.core.common.config.Config; +import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.vdscommands.MigrateVDSCommandParameters; public class MigrateBrokerVDSCommand<P extends MigrateVDSCommandParameters> extends VdsBrokerCommand<P> { @@ -26,6 +29,9 @@ if (StringUtils.isNotBlank(parameters.getDstQemu())) { migrationInfo.put(VdsProperties.DST_QEMU, parameters.getDstQemu()); } + if (Config.<Boolean> GetValue(ConfigValues.AbortMigrationOnError, parameters.getClusterVersion().getValue())) { + migrationInfo.put("abortOnError", Boolean.TRUE.toString()); + } } @Override diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql index a02d727..7135957 100644 --- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql +++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql @@ -29,6 +29,9 @@ ------------------------------------------------------------------------------------ -- Add configuration values section ------------------------------------------------------------------------------------ +select fn_db_add_config_value('AbortMigrationOnError','false','3.0'); +select fn_db_add_config_value('AbortMigrationOnError','false','3.1'); +select fn_db_add_config_value('AbortMigrationOnError','false','3.2'); select fn_db_add_config_value('BootstrapMinimalVdsmVersion','4.9','general'); select fn_db_add_config_value('CpuPinMigrationEnabled','true','general'); select fn_db_add_config_value('CpuPinningEnabled','false','3.0'); diff --git a/packaging/etc/engine-config/engine-config.properties b/packaging/etc/engine-config/engine-config.properties index 9fb2088..ab4e2d2 100644 --- a/packaging/etc/engine-config/engine-config.properties +++ b/packaging/etc/engine-config/engine-config.properties @@ -2,7 +2,8 @@ # engine-config tool properties file. # Please do not edit without proper guidance. # - +AbortMigrationOnError.type=Boolean +AbortMigrationOnError.description="Optionally abort an ongoing migration on any error" AsyncTaskPollingRate.description="Async Task Polling Rate (in seconds)" AsyncTaskPollingRate.type=Integer AsyncTaskZombieTaskLifeInMinutes.description="Zombie tasks life-time in minutes" -- To view, visit http://gerrit.ovirt.org/19312 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I048c96f049d24b9793af669d513d1e9f2e1f24ec Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Roy Golan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
