Greg Padgett has uploaded a new change for review. Change subject: webadmin, backend: control of hosted engine maintenance mode ......................................................................
webadmin, backend: control of hosted engine maintenance mode Allow control of hosted engine local/global maintenance. Global maintenance is performed via right-clicking on the host, while local maintenance is tied into the existing host vds maintenance operation. Change-Id: I0f76f7ad63bcf6d7871c362b46cfa6e928eb9c74 Bug-Url: https://bugzilla.redhat.com/1047649 Signed-off-by: Greg Padgett <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/SetHaMaintenanceParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/HaMaintenanceMode.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetHaMaintenanceModeVDSCommandParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java A backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.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/tab/MainTabVirtualMachineView.java 15 files changed, 237 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/23266/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java index bb15e13..0f1c229 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ActivateVdsCommand.java @@ -9,6 +9,7 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdsActionParameters; +import org.ovirt.engine.core.common.businessentities.HaMaintenanceMode; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.network.Network; @@ -16,6 +17,7 @@ import org.ovirt.engine.core.common.locks.LockingGroup; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.common.vdscommands.ActivateVdsVDSCommandParameters; +import org.ovirt.engine.core.common.vdscommands.SetHaMaintenanceModeVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.SetVdsStatusVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; @@ -67,6 +69,12 @@ return null; } }); + + if (getVds().getHighlyAvailableIsConfigured()) { + SetHaMaintenanceModeVDSCommandParameters param + = new SetHaMaintenanceModeVDSCommandParameters(getVds(), HaMaintenanceMode.LOCAL, false); + setSucceeded(runVdsCommand(VDSCommandType.SetHaMaintenanceMode, param).getSucceeded()); + } } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java index f6a25ab..cd593e5b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java @@ -16,6 +16,7 @@ import org.ovirt.engine.core.common.action.MaintenanceVdsParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; +import org.ovirt.engine.core.common.businessentities.HaMaintenanceMode; import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; @@ -32,6 +33,7 @@ import org.ovirt.engine.core.common.job.Step; import org.ovirt.engine.core.common.job.StepEnum; import org.ovirt.engine.core.common.vdscommands.DisconnectStoragePoolVDSCommandParameters; +import org.ovirt.engine.core.common.vdscommands.SetHaMaintenanceModeVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.SetVdsStatusVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.compat.Guid; @@ -59,6 +61,14 @@ // nothing to do setSucceeded(true); } else { + if (getVds().getStatisticsData().getHighlyAvailableIsConfigured()) { + SetHaMaintenanceModeVDSCommandParameters params + = new SetHaMaintenanceModeVDSCommandParameters(getVds(), HaMaintenanceMode.LOCAL, true); + if (!runVdsCommand(VDSCommandType.SetHaMaintenanceMode, params).getSucceeded()) { + setSucceeded(false); + return; + } + } orderListOfRunningVmsOnVds(getVdsId()); setSucceeded(migrateAllVms(getExecutionContext())); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/SetHaMaintenanceParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/SetHaMaintenanceParameters.java new file mode 100644 index 0000000..cf92fc0 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/SetHaMaintenanceParameters.java @@ -0,0 +1,27 @@ +package org.ovirt.engine.core.common.action; + +import org.ovirt.engine.core.common.businessentities.HaMaintenanceMode; +import org.ovirt.engine.core.compat.Guid; + +public class SetHaMaintenanceParameters extends VdsActionParameters { + private static final long serialVersionUID = -3296572537630656681L; + private HaMaintenanceMode mode; + private boolean enabled; + + public SetHaMaintenanceParameters(Guid vdsId, HaMaintenanceMode mode, boolean enabled) { + super(vdsId); + this.mode = mode; + this.enabled = enabled; + } + + public SetHaMaintenanceParameters() { + } + + public HaMaintenanceMode getMode() { + return this.mode; + } + + public boolean getIsEnabled() { + return this.enabled; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java index 5ef0cad..25287c3 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java @@ -314,7 +314,10 @@ AddInternalJob(1850, false, QuotaDependency.NONE), AddInternalStep(1851, false, QuotaDependency.NONE), - UpdateMomPolicy(1900, ActionGroup.MANIPUTLATE_HOST, false, QuotaDependency.NONE); + UpdateMomPolicy(1900, ActionGroup.MANIPUTLATE_HOST, false, QuotaDependency.NONE), + + // TODO GP maybe only global maint? + SetHaMaintenance(2000, ActionGroup.MANIPUTLATE_HOST, false, QuotaDependency.NONE); private int intValue; private ActionGroup actionGroup; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/HaMaintenanceMode.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/HaMaintenanceMode.java new file mode 100644 index 0000000..26eb917 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/HaMaintenanceMode.java @@ -0,0 +1,30 @@ +package org.ovirt.engine.core.common.businessentities; + +import java.util.HashMap; + +public enum HaMaintenanceMode implements Identifiable { + GLOBAL(0), + LOCAL(1); + + private static final HashMap<Integer, HaMaintenanceMode> mappings = new HashMap<Integer, HaMaintenanceMode>(); + private int intValue; + + static { + for (HaMaintenanceMode mode : values()) { + mappings.put(mode.getValue(), mode); + } + } + + private HaMaintenanceMode(int value) { + intValue = value; + } + + @Override + public int getValue() { + return intValue; + } + + public static HaMaintenanceMode forValue(int value) { + return mappings.get(value); + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetHaMaintenanceModeVDSCommandParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetHaMaintenanceModeVDSCommandParameters.java new file mode 100644 index 0000000..d4889be --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetHaMaintenanceModeVDSCommandParameters.java @@ -0,0 +1,37 @@ +package org.ovirt.engine.core.common.vdscommands; + +import org.ovirt.engine.core.common.businessentities.HaMaintenanceMode; +import org.ovirt.engine.core.common.businessentities.VDS; + +/** + * Parameters used to change Hosted Engine maintenance mode + */ +public class SetHaMaintenanceModeVDSCommandParameters extends VdsIdVDSCommandParametersBase { + private HaMaintenanceMode mode; + private boolean enabled; + + public SetHaMaintenanceModeVDSCommandParameters(VDS vds, HaMaintenanceMode mode, boolean enabled) { + super(vds.getId()); + this.mode = mode; + this.enabled = enabled; + } + + public SetHaMaintenanceModeVDSCommandParameters() { + } + + public HaMaintenanceMode getMode() { + return mode; + } + + public void setMode(HaMaintenanceMode mode) { + this.mode = mode; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java index 27b7ab0..0b05fb3 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java @@ -116,6 +116,7 @@ ExtendImageSize("org.ovirt.engine.core.vdsbroker.irsbroker"), ExtendVmDiskSize("org.ovirt.engine.core.vdsbroker.vdsbroker"), SetMOMPolicyParameters("org.ovirt.engine.core.vdsbroker.vdsbroker"), + SetHaMaintenanceMode("org.ovirt.engine.core.vdsbroker.vdsbroker"), // Gluster VDS commands CreateGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"), SetGlusterVolumeOption("org.ovirt.engine.core.vdsbroker.gluster"), diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java index 8fa530d..8cf4c10 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java @@ -46,6 +46,8 @@ StatusOnlyReturnForXmlRpc setMOMPolicyParameters(Map<String, Object> key_value_store); + StatusOnlyReturnForXmlRpc setHaMaintenanceMode(int mode, boolean enabled); + StatusOnlyReturnForXmlRpc desktopLogin(String vmId, String domain, String user, String password); StatusOnlyReturnForXmlRpc desktopLogoff(String vmId, String force); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java new file mode 100644 index 0000000..26ace4f --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetHaMaintenanceModeVDSCommand.java @@ -0,0 +1,24 @@ +package org.ovirt.engine.core.vdsbroker.vdsbroker; + +import org.ovirt.engine.core.common.vdscommands.SetHaMaintenanceModeVDSCommandParameters; +import org.ovirt.engine.core.compat.Version; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; + +/** + * Send variables that set Hosted Engine maintenance mode to VDSM + */ +public class SetHaMaintenanceModeVDSCommand extends VdsBrokerCommand<SetHaMaintenanceModeVDSCommandParameters> { + + public SetHaMaintenanceModeVDSCommand(SetHaMaintenanceModeVDSCommandParameters parameters) { + super(parameters, DbFacade.getInstance().getVdsDao().get(parameters.getVdsId())); + } + + @Override + protected void executeVdsBrokerCommand() { + // Hosted Engine maintenance flows were unified in version 3.4 + if (getVds().getVdsGroupCompatibilityVersion().compareTo(Version.v3_4) >= 0) { + status = getBroker().setHaMaintenanceMode(getParameters().getMode().getValue(), getParameters().isEnabled()); + proceedProxyReturnValue(); + } + } +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java index 0cd2d0f..887a154 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java @@ -34,6 +34,8 @@ public Map<String, Object> setMOMPolicyParameters(Map<String, Object> key_value); + public Map<String, Object> setHaMaintenanceMode(int mode, boolean enabled); + public Map<String, Object> getAllVmStats(); public Map<String, Object> migrate(Map<String, String> migrationInfo); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java index bc4ad53..bb6aa6d 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java @@ -1360,6 +1360,17 @@ } @Override + public StatusOnlyReturnForXmlRpc setHaMaintenanceMode(int mode, boolean enabled) { + try { + Map<String, Object> xmlRpcReturnValue = vdsServer.setHaMaintenanceMode(mode, enabled); + StatusOnlyReturnForXmlRpc wrapper = new StatusOnlyReturnForXmlRpc(xmlRpcReturnValue); + return wrapper; + } catch (UndeclaredThrowableException ute) { + throw new XmlRpcRunTimeException(ute); + } + } + + @Override public GlusterTasksListReturnForXmlRpc glusterTasksList() { try { Map<String, Object> xmlRpcReturnValue = vdsServer.glusterTasksList(); diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml index 258ac04..3b334ae 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml @@ -48,6 +48,7 @@ <include name="common/businessentities/OpenStackImageProviderProperties.java" /> <include name="common/businessentities/VmBalloonInfo.java" /> <include name="common/businessentities/ArchitectureType.java" /> + <include name="common/businessentities/HaMaintenanceMode.java" /> <!-- Network business entities --> <include name="common/businessentities/network/VdsNetworkInterface.java" /> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java index 71f9604..afb00b3 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java @@ -21,6 +21,7 @@ import org.ovirt.engine.core.common.action.MoveVmParameters; import org.ovirt.engine.core.common.action.RemoveVmParameters; import org.ovirt.engine.core.common.action.RunVmParams; +import org.ovirt.engine.core.common.action.SetHaMaintenanceParameters; import org.ovirt.engine.core.common.action.ShutdownVmParameters; import org.ovirt.engine.core.common.action.StopVmParameters; import org.ovirt.engine.core.common.action.StopVmTypeEnum; @@ -33,6 +34,7 @@ import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.HaMaintenanceMode; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.Tags; @@ -292,6 +294,30 @@ privateAssignTagsCommand = value; } + private UICommand privateEnableGlobalHaMaintenanceCommand; + + public UICommand getEnableGlobalHaMaintenanceCommand() + { + return privateEnableGlobalHaMaintenanceCommand; + } + + private void setEnableGlobalHaMaintenanceCommand(UICommand value) + { + privateEnableGlobalHaMaintenanceCommand = value; + } + + private UICommand privateDisableGlobalHaMaintenanceCommand; + + public UICommand getDisableGlobalHaMaintenanceCommand() + { + return privateDisableGlobalHaMaintenanceCommand; + } + + private void setDisableGlobalHaMaintenanceCommand(UICommand value) + { + privateDisableGlobalHaMaintenanceCommand = value; + } + UICommand editConsoleCommand; public void setEditConsoleCommand(UICommand editConsoleCommand) { @@ -399,6 +425,8 @@ setRetrieveIsoImagesCommand(new UICommand("RetrieveIsoImages", this)); //$NON-NLS-1$ setChangeCdCommand(new UICommand("ChangeCD", this)); //$NON-NLS-1$ setAssignTagsCommand(new UICommand("AssignTags", this)); //$NON-NLS-1$ + setEnableGlobalHaMaintenanceCommand(new UICommand("EnableGlobalHaMaintenance", this)); //$NON-NLS-1$ + setDisableGlobalHaMaintenanceCommand(new UICommand("DisableGlobalHaMaintenance", this)); //$NON-NLS-1$ setIsoImages(new ObservableCollection<ChangeCDModel>()); ChangeCDModel tempVar = new ChangeCDModel(); @@ -1808,6 +1836,20 @@ }, model); } + private void setGlobalHaMaintenance(boolean enabled) + { + VM vm = (VM) getSelectedItem(); + if (vm == null) { + return; + } + if (!vm.isHostedEngine()) { + return; + } + + SetHaMaintenanceParameters params = new SetHaMaintenanceParameters(vm.getId(), HaMaintenanceMode.GLOBAL, enabled); + Frontend.getInstance().runAction(VdcActionType.SetHaMaintenance, params, null, this); + } + private void preSave() { final UnitVmModel model = (UnitVmModel) getWindow(); @@ -2258,6 +2300,11 @@ && VdcActionUtils.canExecute(items, VM.class, VdcActionType.ChangeDisk)); getAssignTagsCommand().setIsExecutionAllowed(items.size() > 0); + getEnableGlobalHaMaintenanceCommand().setIsExecutionAllowed(items.size() == 1 + && isHaMaintenanceAllowed()); + getDisableGlobalHaMaintenanceCommand().setIsExecutionAllowed(items.size() == 1 + && isHaMaintenanceAllowed()); + getGuideCommand().setIsExecutionAllowed(getGuideContext() != null || (getSelectedItem() != null && getSelectedItems() != null && getSelectedItems().size() == 1)); @@ -2283,6 +2330,10 @@ } return false; + } + + private boolean isHaMaintenanceAllowed() { + return getSelectedItem() != null && ((VM) getSelectedItem()).isHostedEngine(); } /** @@ -2382,6 +2433,14 @@ { changeCD(); } + else if (command == getEnableGlobalHaMaintenanceCommand()) + { + setGlobalHaMaintenance(true); + } + else if (command == getDisableGlobalHaMaintenanceCommand()) + { + setGlobalHaMaintenance(false); + } else if (command == getAssignTagsCommand()) { assignTags(); 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 196437f..9d80abd 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 @@ -1316,6 +1316,9 @@ @DefaultStringValue("Refresh Capabilities") String refreshHostCapabilities(); + @DefaultStringValue("Host HA Maintenance") + String hostHaMaintenance(); + // host- general @DefaultStringValue("OS Version") String osVersionHostGeneral(); @@ -1599,6 +1602,12 @@ @DefaultStringValue("Assign Tags") String assignTagsVm(); + @DefaultStringValue("Enable Global HA Maintenance") + String enableGlobalHaMaintenanceVm(); + + @DefaultStringValue("Disable Global HA Maintenance") + String disableGlobalHaMaintenanceVm(); + @DefaultStringValue("Show Report") String showReportVm(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java index e0da652..0179210 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java @@ -287,6 +287,18 @@ return getMainModel().getAssignTagsCommand(); } }); + getTable().addActionButton(new WebAdminButtonDefinition<VM>(constants.enableGlobalHaMaintenanceVm(), CommandLocation.OnlyFromContext) { + @Override + protected UICommand resolveCommand() { + return getMainModel().getEnableGlobalHaMaintenanceCommand(); + } + }); + getTable().addActionButton(new WebAdminButtonDefinition<VM>(constants.disableGlobalHaMaintenanceVm(), CommandLocation.OnlyFromContext) { + @Override + protected UICommand resolveCommand() { + return getMainModel().getDisableGlobalHaMaintenanceCommand(); + } + }); if (ReportInit.getInstance().isReportsEnabled()) { List<ActionButtonDefinition<VM>> resourceSubActions = -- To view, visit http://gerrit.ovirt.org/23266 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0f76f7ad63bcf6d7871c362b46cfa6e928eb9c74 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Greg Padgett <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
