Martin Peřina has uploaded a new change for review. Change subject: webadmin: Add option to skip fencing of host if SD is active ......................................................................
webadmin: Add option to skip fencing of host if SD is active Adds option to cluster configuration to skip fencing of host if it's connected to at least one storage domain. Change-Id: Iaecc1662324ce3d3072c9e850fcf8026ccfab0b2 Bug-Url: https://bugzilla.redhat.com/1090799 Signed-off-by: Martin Perina <mper...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml M packaging/branding/ovirt.brand/ovirt-patternfly-compat.css 8 files changed, 106 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/95/30195/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index e0ae04a..184e5ac 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -1868,4 +1868,7 @@ @DefaultStringValue("Required Random Number Generator sources:") String requiredRngSources(); + + @DefaultStringValue("Skip fencing of a host with active SD:") + String skipFencingIfSDActive(); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index 8c6b6cf..c626768 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -3671,6 +3671,18 @@ return (Boolean) getConfigValuePreConverted(ConfigurationValues.SerialNumberPolicySupported, version); } + public boolean isSkipFencingIfSDActiveSupported(String version) { + boolean result = false; + if (version != null) { + Boolean b = (Boolean) getConfigValuePreConverted( + ConfigurationValues.SkipFencingIfSDActiveSupported, + version + ); + result = (b != null) && b; + } + return result; + } + public boolean isBootMenuSupported(String version) { return (Boolean) getConfigValuePreConverted(ConfigurationValues.BootMenuSupported, version); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java index dee3028..03f0903 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java @@ -747,6 +747,11 @@ if (model.getSpiceProxyEnabled().getEntity()) { cluster.setSpiceProxy(model.getSpiceProxy().getEntity()); } + + if (model.getSkipFencingIfSDActiveEnabled().getEntity()) { + cluster.setSkipFencingIfSDActive(model.getSkipFencingIfSDActiveEnabled().getEntity()); + } + cluster.setSerialNumberPolicy(model.getSerialNumberPolicy().getSelectedSerialNumberPolicy()); cluster.setCustomSerialNumber(model.getSerialNumberPolicy().getCustomSerialNumber().getEntity()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java index 34d0b1e..846a2c2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java @@ -772,6 +772,16 @@ } } + private EntityModel<Boolean> skipFencingIfSDActiveEnabled; + + public EntityModel<Boolean> getSkipFencingIfSDActiveEnabled() { + return skipFencingIfSDActiveEnabled; + } + + public void setSkipFencingIfSDActiveEnabled(EntityModel<Boolean> skipFencingIfSDActiveEnabled) { + this.skipFencingIfSDActiveEnabled = skipFencingIfSDActiveEnabled; + } + public ClusterModel() { super(); @@ -803,6 +813,9 @@ setSpiceProxy(new EntityModel<String>()); getSpiceProxy().setIsChangable(false); + setSkipFencingIfSDActiveEnabled(new EntityModel<Boolean>()); + getSkipFencingIfSDActiveEnabled().setEntity(false); + getSkipFencingIfSDActiveEnabled().getEntityChangedEvent().addListener(this); setEnableOvirtService(new EntityModel()); setEnableGlusterService(new EntityModel()); @@ -1215,6 +1228,7 @@ getComment().setEntity(getEntity().getComment()); initSpiceProxy(); + getSkipFencingIfSDActiveEnabled().setEntity(getEntity().isSkipFencingIfSDActive()); setMemoryOverCommit(getEntity().getmax_vds_memory_over_commit()); @@ -1403,6 +1417,8 @@ setRngSourcesCheckboxes(version); + updateFenceSettings(version); + boolean isSmallerThanVersion3_4 = version.compareTo(Version.v3_4) < 0; getEnableKsm().setIsChangable(!isSmallerThanVersion3_4); getEnableKsm().setChangeProhibitionReason(ConstantsManager.getInstance().getConstants().ksmNotAvailable()); @@ -1461,6 +1477,16 @@ } } + private void updateFenceSettings(Version ver) { + boolean supported = AsyncDataProvider.getInstance().isSkipFencingIfSDActiveSupported(ver.getValue()); + getSkipFencingIfSDActiveEnabled().setIsChangable(supported); + if (supported) { + getSkipFencingIfSDActiveEnabled().setEntity(getEntity().isSkipFencingIfSDActive()); + } else { + getSkipFencingIfSDActiveEnabled().setEntity(false); + } + } + private void populateCPUList(ClusterModel clusterModel, List<ServerCpu> cpus, boolean canChangeArchitecture) { ServerCpu oldSelectedCpu = clusterModel.getCPU().getSelectedItem(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index 1f3d289..ba9f3d1 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -800,6 +800,9 @@ @DefaultStringValue("Define SPICE proxy for Cluster") String clusterSpiceProxyEnable(); + @DefaultStringValue("Skip fencing of host if SD active") + String skipFencingIfSDActive(); + @DefaultStringValue("Name") String bookmarkPopupNameLabel(); @@ -3604,6 +3607,9 @@ @DefaultStringValue("Console") String consoleTabLabel(); + @DefaultStringValue("Fence Settings") + String fenceSettingsTabLabel(); + @DefaultStringValue("Name") String nameAffinityGroup(); @@ -3743,4 +3749,7 @@ @DefaultStringValue("Save As Pdf") String exportToPdf(); + + @DefaultStringValue("This will skip fencing operations on a Host that has active Storage Domains") + String skipFencingIfSDActiveInfo(); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java index d5a2c99..256882e 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java @@ -347,6 +347,18 @@ @WithElementId EntityModelCheckBoxOnlyEditor spiceProxyOverrideEnabled; + @UiField + @Ignore + DialogTab fenceSettingsTab; + + @UiField(provided = true) + @Ignore + EntityModelWidgetWithInfo skipFencingIfSDActiveCheckboxWithInfoIcon; + + @Path(value = "skipFencingIfSDActiveEnabled.entity") + @WithElementId + EntityModelCheckBoxOnlyEditor skipFencingIfSDActiveCheckBox; + private final Driver driver = GWT.create(Driver.class); private final ApplicationMessages messages; @@ -450,6 +462,8 @@ spiceProxyEditor.setLabel(constants.overriddenSpiceProxyAddress()); consoleTab.setLabel(constants.consoleTabLabel()); + + fenceSettingsTab.setLabel(constants.fenceSettingsTabLabel()); } private void initRadioButtonEditors() { @@ -546,6 +560,18 @@ label.setWidth("250px"); //$NON-NLS-1$ spiceProxyOverrideEnabled = new EntityModelCheckBoxOnlyEditor(); spiceProxyEnabledCheckboxWithInfoIcon = new EntityModelWidgetWithInfo<String>(label, spiceProxyOverrideEnabled); + + StringEntityModelLabel skipFencingIfSDActiveLabel = new StringEntityModelLabel(); + skipFencingIfSDActiveLabel.setText(constants.skipFencingIfSDActive()); + skipFencingIfSDActiveLabel.setWidth("250px"); //$NON-NLS-1$ + skipFencingIfSDActiveCheckBox = new EntityModelCheckBoxOnlyEditor(); + skipFencingIfSDActiveCheckboxWithInfoIcon = new EntityModelWidgetWithInfo<String>( + skipFencingIfSDActiveLabel, + skipFencingIfSDActiveCheckBox + ); + skipFencingIfSDActiveCheckboxWithInfoIcon.setExplanation( + templates.italicText(constants.skipFencingIfSDActiveInfo()) + ); } @Override @@ -658,6 +684,17 @@ } } }); + object.getVersion().getPropertyChangedEvent().addListener(new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + if (object.getVersion().getSelectedItem() != null) { + String clusterVersion = object.getVersion().getSelectedItem().getValue(); + fenceSettingsTab.setVisible( + AsyncDataProvider.getInstance().isSkipFencingIfSDActiveSupported(clusterVersion) + ); + } + } + }); } private void optimizationForServerFormatter(ClusterModel object) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml index e0fc5dd..ff5e703 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml @@ -268,6 +268,15 @@ </t:content> </t:DialogTab> </t:tab> + <t:tab> + <t:DialogTab ui:field="fenceSettingsTab"> + <t:content> + <g:FlowPanel addStyleNames="cvp_fenceSettingsContent_pfly_fix"> + <w:EntityModelWidgetWithInfo ui:field="skipFencingIfSDActiveCheckboxWithInfoIcon" addStyleNames="cpv_skipFencingIfSDActiveCheckbox_pfly_fix" /> + </g:FlowPanel> + </t:content> + </t:DialogTab> + </t:tab> </t:DialogTabPanel> </d:content> </d:SimpleDialogPanel> diff --git a/packaging/branding/ovirt.brand/ovirt-patternfly-compat.css b/packaging/branding/ovirt.brand/ovirt-patternfly-compat.css index 8f66c9c..9ef409c 100644 --- a/packaging/branding/ovirt.brand/ovirt-patternfly-compat.css +++ b/packaging/branding/ovirt.brand/ovirt-patternfly-compat.css @@ -218,13 +218,17 @@ top: -32px; } } -.cvp_consoleContent_pfly_fix, .cvp_clusterPolicyContent_pfly_fix { +.cvp_consoleContent_pfly_fix, .cvp_clusterPolicyContent_pfly_fix, .cvp_fenceSettingsContent_pfly_fix { padding-top: 5px; } .cpv_spiceProxyEnabledCheckbox_pfly_fix span.gwt-CheckBox { position: relative; top: -5px; } +.cpv_skipFencingIfSDActiveCheckbox_pfly_fix span.gwt-CheckBox { + position: relative; + top: -5px; +} .hpv_pmVariantsEditor_pfly_fix { padding-bottom: 10px; padding-top: 5px; -- To view, visit http://gerrit.ovirt.org/30195 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iaecc1662324ce3d3072c9e850fcf8026ccfab0b2 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