ofri masad has uploaded a new change for review. Change subject: webadmin: support Memory Balloon ......................................................................
webadmin: support Memory Balloon Add UI support for memory balloon device Adding Memory Balloon support in webadmin Change-Id: I3ce357b592a825e0ab96290848aa4f4cb3e20ace Signed-off-by: Ofri Masad <[email protected]> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java 11 files changed, 53 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/17201/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 d399c9a..d4b4b42 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 @@ -1425,4 +1425,7 @@ @DefaultStringValue("SSH PublicKey") String hostPublicKeyLable(); + + @DefaultStringValue("Memory Balloon Device Enabled") + String memoryBalloonDeviceEnabled(); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java index dbcfc18..b8dcb28 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java @@ -465,6 +465,10 @@ public EntityModelTextBoxEditor minAllocatedMemoryEditor; @UiField(provided = true) + @Path(value = "memoryBalloonDeviceEnabled.entity") + EntityModelCheckBoxEditor isMemoryBalloonDeviceEnabled; + + @UiField(provided = true) @Path(value = "provisioningThin_IsSelected.entity") @WithElementId("provisioningThin") public EntityModelRadioButtonEditor provisioningThinEditor; @@ -587,6 +591,7 @@ allowConsoleReconnectEditor = new EntityModelCheckBoxEditor(Align.RIGHT, new ModeSwitchingVisibilityRenderer()); isSoundcardEnabledEditor = new EntityModelCheckBoxEditor(Align.RIGHT, new ModeSwitchingVisibilityRenderer()); copyTemplatePermissionsEditor = new EntityModelCheckBoxEditor(Align.RIGHT, new ModeSwitchingVisibilityRenderer()); + isMemoryBalloonDeviceEnabled = new EntityModelCheckBoxEditor(Align.RIGHT); priorityEditor = new EntityModelCellTable<ListModel>( (Resources) GWT.create(ButtonCellTableResources.class)); @@ -891,6 +896,7 @@ isConsoleDeviceEnabledEditor.setLabel(constants.consoleDeviceEnabled()); copyTemplatePermissionsEditor.setLabel(constants.copyTemplatePermissions()); isSmartcardEnabledEditor.setLabel(constants.smartcardVmPopup()); + isMemoryBalloonDeviceEnabled.setLabel(constants.memoryBalloonDeviceEnabled()); // Pools Tab poolTab.setLabel(constants.poolVmPopup()); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml index 7ac2323..49589af 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml @@ -432,6 +432,7 @@ <g:FlowPanel addStyleNames="{style.sectionPanel}"> <g:Label addStyleNames="{style.sectionLabel}" text="{constants.memAllocVmPopup}" /> <e:EntityModelTextBoxEditor ui:field="minAllocatedMemoryEditor" /> + <e:EntityModelCheckBoxEditor addStyleNames="{style.checkbox}" ui:field="isMemoryBalloonDeviceEnabled"/> </g:FlowPanel> <g:FlowPanel ui:field="storageAllocationPanel" addStyleNames="{style.sectionPanel}"> <g:HorizontalPanel> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java index 9b88129..50e914f 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java @@ -195,6 +195,15 @@ getModel().getVncKeyboardLayout().setSelectedItem(vm.getVncKeyboardLayout()); + Frontend.RunQuery(VdcQueryType.IsBalloonEnabled, new IdQueryParameters(getVm().getId()), new AsyncQuery(this, + new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + getModel().getMemoryBalloonDeviceEnabled().setEntity(((VdcQueryReturnValue)returnValue).getReturnValue()); + } + } + )); + if (vm.isInitialized()) { getModel().getTimeZone() @@ -240,6 +249,7 @@ updateQuotaByCluster(vm.getQuotaId(), vm.getQuotaName()); updateCpuPinningVisibility(); initNetworkInterfaces(); + updateMemoryBalloon(); } private void initNetworkInterfaces() { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java index 6860aa2..f04d2e2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java @@ -171,6 +171,7 @@ public void postDataCenterWithClusterSelectedItemChanged() { updateQuotaByCluster(null, null); + updateMemoryBalloon(); } @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java index c7ccbf6..39555b9 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java @@ -185,6 +185,7 @@ updateCpuPinningVisibility(); updateTemplate(); initNetworkInterfaces(networkBehavior, null); + updateMemoryBalloon(); } private void updateNetworkInterfacesByTemplate(VmTemplate template) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java index bba2966..d720cc2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java @@ -196,6 +196,7 @@ VmTemplate template = (VmTemplate) getModel().getTemplate().getSelectedItem(); updateQuotaByCluster(template.getQuotaId(), template.getQuotaName()); } + updateMemoryBalloon(); } @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java index 3fbe8c4..a7beac4 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java @@ -110,6 +110,7 @@ updateDefaultHost(); updateNumOfSockets(); updateQuotaByCluster(template.getQuotaId(), template.getQuotaName()); + updateMemoryBalloon(); } @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java index 686a463..44bec2f 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java @@ -679,6 +679,16 @@ this.copyPermissions = copyPermissions; } + private EntityModel memoryBalloonDeviceEnabled; + + public EntityModel getMemoryBalloonDeviceEnabled() { + return memoryBalloonDeviceEnabled; + } + + public void setMemoryBalloonDeviceEnabled(EntityModel memoryBalloonDeviceEnabled) { + this.memoryBalloonDeviceEnabled = memoryBalloonDeviceEnabled; + } + private NotChangableForVmInPoolListModel privateDisplayProtocol; public ListModel getDisplayProtocol() @@ -1114,6 +1124,11 @@ setCdImage(new NotChangableForVmInPoolListModel()); getCdImage().setIsChangable(false); + setMemoryBalloonDeviceEnabled(new EntityModel()); + getMemoryBalloonDeviceEnabled().setEntity(true); + getMemoryBalloonDeviceEnabled().setIsAvailable(false); + + setCdAttached(new NotChangableForVmInPoolEntityModel()); getCdAttached().getEntityChangedEvent().addListener(new IEventListener() { @Override 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 ef8038c..aa5d62d 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 @@ -1971,6 +1971,8 @@ getcurrentVm().setKernelParams((String) model.getKernel_parameters().getEntity()); getcurrentVm().setCustomProperties(model.getCustomPropertySheet().getEntity()); + getcurrentVm().setBalloonEnabled((Boolean) model.getMemoryBalloonDeviceEnabled().getEntity() + && model.getSelectedCluster().getcompatibility_version().compareTo(new Version(3, 1)) >= 0); EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); getcurrentVm().setDefaultDisplayType((DisplayType) displayProtocolSelectedItem.getEntity()); @@ -2092,6 +2094,8 @@ VmManagementParametersBase params = new VmManagementParametersBase(getcurrentVm()); params.setDiskInfoDestinationMap(model.getDisksAllocationModel().getImageToDestinationDomainMap()); params.setConsoleEnabled((Boolean) model.getIsConsoleDeviceEnabled().getEntity()); + params.setBalloonEnabled((Boolean) model.getMemoryBalloonDeviceEnabled().getEntity() + && model.getSelectedCluster().getcompatibility_version().compareTo(new Version(3, 1)) >= 0); ArrayList<VdcActionParametersBase> parameters = new ArrayList<VdcActionParametersBase>(); parameters.add(params); @@ -2162,6 +2166,8 @@ setVmWatchdogToParams(model, updateVmParams); updateVmParams.setSoundDeviceEnabled((Boolean) model.getIsSoundcardEnabled().getEntity()); updateVmParams.setConsoleEnabled((Boolean) model.getIsConsoleDeviceEnabled().getEntity()); + updateVmParams.setBalloonEnabled((Boolean) model.getMemoryBalloonDeviceEnabled().getEntity() + && model.getSelectedCluster().getcompatibility_version().compareTo(new Version(3, 1)) >= 0); Frontend.RunAction(VdcActionType.UpdateVm, updateVmParams, new NetworkUpdateFrontendAsyncCallback(model, defaultNetworkCreatingManager, getcurrentVm().getId()), this); } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java index dae4cf1..070c3f2 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java @@ -652,6 +652,14 @@ } } + protected void updateMemoryBalloon() { + if (getModel().getSelectedCluster() != null) { + VDSGroup cluster = getModel().getSelectedCluster(); + boolean hasMemoryBalloon = cluster.getcompatibility_version().compareTo(new Version(3, 1)) >= 0; + getModel().getMemoryBalloonDeviceEnabled().setIsAvailable(hasMemoryBalloon); + } + } + protected void setupTemplate(VM vm, ListModel model) { AsyncDataProvider.getTemplateById(new AsyncQuery(getModel(), new INewAsyncCallback() { -- To view, visit http://gerrit.ovirt.org/17201 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3ce357b592a825e0ab96290848aa4f4cb3e20ace Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: ofri masad <[email protected]> Gerrit-Reviewer: Gilad Chaplik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
