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

Reply via email to