Martin Peřina has uploaded a new change for review. Change subject: core: Add option to skip fencing of host if SD is active ......................................................................
core: Add option to skip fencing of host if SD is active Adds option to cluster to skip fencing of host if it's connected to at least one storage domain. Change-Id: I7dfcd571b8329174f8d3acccf7136d0b5f83cacc Bug-Url: https://bugzilla.redhat.com/1090799 Signed-off-by: Martin Perina <mper...@redhat.com> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/resources/fixtures.xml A packaging/dbscripts/upgrade/03_06_0020_skip_fencing_when_sd_is_alive.sql M packaging/dbscripts/vds_groups_sp.sql 5 files changed, 38 insertions(+), 7 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/94/30194/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java index 3767d40..d210884 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java @@ -102,12 +102,15 @@ private Set<VmRngDevice.Source> requiredRngSources; + private boolean skipFencingIfSDActive; + public VDSGroup() { migrateOnError = MigrateOnErrorOptions.YES; name = ""; virtService = true; optimizationType = OptimizationType.NONE; requiredRngSources = new HashSet<VmRngDevice.Source>(); + skipFencingIfSDActive = false; } @Override @@ -375,6 +378,14 @@ return requiredRngSources; } + public boolean isSkipFencingIfSDActive() { + return skipFencingIfSDActive; + } + + public void setSkipFencingIfSDActive(boolean skipFencingIfSDActive) { + this.skipFencingIfSDActive = skipFencingIfSDActive; + } + @Override public int hashCode() { final int prime = 31; @@ -406,6 +417,7 @@ result = prime * result + (serialNumberPolicy == null ? 0 : serialNumberPolicy.hashCode()); result = prime * result + (customSerialNumber == null ? 0 : customSerialNumber.hashCode()); result = prime * result + (groupHostsAndVms == null ? 0 : groupHostsAndVms.hashCode()); + result = prime * result + (skipFencingIfSDActive ? 1231 : 1237); return result; } @@ -459,7 +471,8 @@ && serialNumberPolicy == other.serialNumberPolicy && ObjectUtils.objectsEqual(customSerialNumber, other.customSerialNumber) && ObjectUtils.objectsEqual(groupHostsAndVms, other.groupHostsAndVms) - && ObjectUtils.objectsEqual(requiredRngSources, other.requiredRngSources); + && ObjectUtils.objectsEqual(requiredRngSources, other.requiredRngSources) + && skipFencingIfSDActive == other.skipFencingIfSDActive; } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java index 35f80f3..83f102a 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java @@ -228,7 +228,8 @@ .addValue("enable_ksm", group.isEnableKsm()) .addValue("spice_proxy", group.getSpiceProxy()) .addValue("serial_number_policy", group.getSerialNumberPolicy() == null ? null : group.getSerialNumberPolicy().getValue()) - .addValue("custom_serial_number", group.getCustomSerialNumber()); + .addValue("custom_serial_number", group.getCustomSerialNumber()) + .addValue("skip_fencing_if_sd_active", group.isSkipFencingIfSDActive()); return parameterSource; } @@ -289,6 +290,7 @@ entity.setSpiceProxy(rs.getString("spice_proxy")); entity.setSerialNumberPolicy(SerialNumberPolicy.forValue((Integer) rs.getObject("serial_number_policy"))); entity.setCustomSerialNumber(rs.getString("custom_serial_number")); + entity.setSkipFencingIfSDActive(rs.getBoolean("skip_fencing_if_sd_active")); return entity; } diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 3e504d8..e27b3a2 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -679,6 +679,7 @@ <column>serial_number_policy</column> <column>custom_serial_number</column> <column>required_rng_sources</column> + <column>skip_fencing_if_sd_active</column> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d1</value> <value>rhel6.iscsi</value> @@ -704,6 +705,7 @@ <null /> <null /> <value>RANDOM</value> + <value>false</value> </row> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d2</value> @@ -730,6 +732,7 @@ <value>0</value> <null /> <value></value> + <value>true</value> </row> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d3</value> @@ -756,6 +759,7 @@ <value>1</value> <null /> <value>HWRNG</value> + <value>false</value> </row> <row> <value>0e57070e-2469-4b38-84a2-f111aaabd49d</value> @@ -782,6 +786,7 @@ <value>2</value> <value>my custom serial number</value> <value>HWRNG,RANDOM</value> + <value>true</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7c</value> @@ -808,6 +813,7 @@ <null /> <null /> <value>HWRNG,RANDOM</value> + <value>false</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7d</value> @@ -834,6 +840,7 @@ <null /> <null /> <value>HWRNG,RANDOM</value> + <value>false</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7e</value> @@ -860,6 +867,7 @@ <null /> <null /> <value>RANDOM</value> + <value>true</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7f</value> @@ -886,6 +894,7 @@ <null /> <null /> <value>RANDOM</value> + <value>false</value> </row> <row> <value>ae956031-6be2-43d6-bb8f-5191c9253314</value> @@ -912,6 +921,7 @@ <null /> <null /> <value>RANDOM</value> + <value>true</value> </row> </table> diff --git a/packaging/dbscripts/upgrade/03_06_0020_skip_fencing_when_sd_is_alive.sql b/packaging/dbscripts/upgrade/03_06_0020_skip_fencing_when_sd_is_alive.sql new file mode 100644 index 0000000..5165f3f --- /dev/null +++ b/packaging/dbscripts/upgrade/03_06_0020_skip_fencing_when_sd_is_alive.sql @@ -0,0 +1 @@ +SELECT fn_db_add_column('vds_groups', 'skip_fencing_if_sd_active', 'boolean DEFAULT false'); diff --git a/packaging/dbscripts/vds_groups_sp.sql b/packaging/dbscripts/vds_groups_sp.sql index 3e5169f..8831824 100644 --- a/packaging/dbscripts/vds_groups_sp.sql +++ b/packaging/dbscripts/vds_groups_sp.sql @@ -36,16 +36,18 @@ v_enable_ksm BOOLEAN, v_serial_number_policy SMALLINT, v_custom_serial_number VARCHAR(255), - v_required_rng_sources varchar(255)) + v_required_rng_sources varchar(255), + v_skip_fencing_if_sd_active BOOLEAN +) RETURNS VOID AS $procedure$ BEGIN INSERT INTO vds_groups(vds_group_id,description, name, free_text_comment, cpu_name, storage_pool_id, max_vds_memory_over_commit, count_threads_as_cores, compatibility_version, transparent_hugepages, migrate_on_error, virt_service, gluster_service, tunnel_migration, emulated_machine, detect_emulated_machine, trusted_service, ha_reservation, optional_reason, cluster_policy_id, - cluster_policy_custom_properties, enable_balloon, architecture, optimization_type, spice_proxy, enable_ksm, serial_number_policy, custom_serial_number, required_rng_sources) + cluster_policy_custom_properties, enable_balloon, architecture, optimization_type, spice_proxy, enable_ksm, serial_number_policy, custom_serial_number, required_rng_sources, skip_fencing_if_sd_active) VALUES(v_vds_group_id,v_description, v_name, v_free_text_comment, v_cpu_name, v_storage_pool_id, v_max_vds_memory_over_commit, v_count_threads_as_cores, v_compatibility_version, v_transparent_hugepages, v_migrate_on_error, v_virt_service, v_gluster_service, v_tunnel_migration, v_emulated_machine, v_detect_emulated_machine, v_trusted_service, v_ha_reservation, v_optional_reason, v_cluster_policy_id, v_cluster_policy_custom_properties, v_enable_balloon, - v_architecture, v_optimization_type, v_spice_proxy, v_enable_ksm, v_serial_number_policy, v_custom_serial_number, v_required_rng_sources); + v_architecture, v_optimization_type, v_spice_proxy, v_enable_ksm, v_serial_number_policy, v_custom_serial_number, v_required_rng_sources, v_skip_fencing_if_sd_active); END; $procedure$ LANGUAGE plpgsql; @@ -81,7 +83,9 @@ v_enable_ksm BOOLEAN, v_serial_number_policy SMALLINT, v_custom_serial_number VARCHAR(255), - v_required_rng_sources varchar(255)) + v_required_rng_sources varchar(255), + v_skip_fencing_if_sd_active BOOLEAN +) RETURNS VOID --The [vds_groups] table doesn't have a timestamp column. Optimistic concurrency logic cannot be generated @@ -99,7 +103,8 @@ cluster_policy_custom_properties = v_cluster_policy_custom_properties, enable_balloon = v_enable_balloon, architecture = v_architecture, optimization_type = v_optimization_type, spice_proxy = v_spice_proxy, enable_ksm = v_enable_ksm, serial_number_policy = v_serial_number_policy, custom_serial_number = v_custom_serial_number, - required_rng_sources = v_required_rng_sources + required_rng_sources = v_required_rng_sources, + skip_fencing_if_sd_active = v_skip_fencing_if_sd_active WHERE vds_group_id = v_vds_group_id; END; $procedure$ LANGUAGE plpgsql; -- To view, visit http://gerrit.ovirt.org/30194 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7dfcd571b8329174f8d3acccf7136d0b5f83cacc 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