Gilad Chaplik has uploaded a new change for review. Change subject: frontend: Add CPU profile to VM flows ......................................................................
frontend: Add CPU profile to VM flows Change-Id: I8a55e2ae268b932537d41b8e626795292fed8134 Signed-off-by: Gilad Chaplik <gchap...@redhat.com> --- 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/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CpuProfileUnitToVmBaseBuilder.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java 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/ImportVmModel.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/VmModelBehaviorBase.java M frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmListModelTest.java M frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmTest.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java 23 files changed, 182 insertions(+), 12 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/30/31630/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 a12ec39..1a62f00 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 @@ -1911,4 +1911,7 @@ @DefaultStringValue("Remove") String removeProfile(); + @DefaultStringValue("CPU Profile") + String cpuProfileLabel(); + } 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 99bbd19..97ca745 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 @@ -8,7 +8,9 @@ import java.util.List; import com.google.gwt.event.shared.EventBus; + import static com.google.gwt.dom.client.Style.Unit; + import org.ovirt.engine.core.common.businessentities.BootSequence; import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; @@ -24,6 +26,7 @@ import org.ovirt.engine.core.common.businessentities.VmPoolType; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmType; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.compat.StringFormat; import org.ovirt.engine.core.compat.StringHelper; @@ -604,6 +607,11 @@ @UiField @Ignore public FlowPanel startRunningOnPanel; + + @UiField(provided = true) + @Path(value = "cpuProfiles.selectedItem") + @WithElementId("cpuProfiles") + public ListModelListBoxEditor<CpuProfile> cpuProfilesEditor; @UiField(provided = true) InfoIcon cpuPinningInfo; @@ -1232,6 +1240,13 @@ } }, new ModeSwitchingVisibilityRenderer()); + cpuProfilesEditor = new ListModelListBoxEditor(new NullSafeRenderer<CpuProfile>() { + @Override + protected String renderNullSafe(CpuProfile object) { + return object.getName(); + } + }); + cpuSharesAmountSelectionEditor = new ListModelListBoxOnlyEditor<UnitVmModel.CpuSharesAmount>(new EnumRenderer(), new ModeSwitchingVisibilityRenderer()); } @@ -1329,6 +1344,7 @@ watchdogModelEditor.setLabel(constants.watchdogModel()); // Resource Allocation Tab + cpuProfilesEditor.setLabel(constants.cpuProfileLabel()); provisioningEditor.setLabel(constants.templateProvisVmPopup()); provisioningThinEditor.setLabel(constants.thinVmPopup()); provisioningCloneEditor.setLabel(constants.cloneVmPopup()); @@ -1857,6 +1873,7 @@ // ==Resource Allocation Tab== nextTabIndex = resourceAllocationTab.setTabIndexes(nextTabIndex); + cpuProfilesEditor.setTabIndex(nextTabIndex++); minAllocatedMemoryEditor.setTabIndex(nextTabIndex++); provisioningEditor.setTabIndex(nextTabIndex++); provisioningThinEditor.setTabIndex(nextTabIndex++); 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 ead8f12..b9bff79 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 @@ -647,6 +647,7 @@ <g:FlowPanel addStyleNames="{style.sectionPanelTight}" ui:field="cpuAllocationPanel" > <g:Label text="{constants.cpuAllocVmPopup}" addStyleNames="{style.sectionLabel}" /> <g:FlowPanel addStyleNames="{style.labelToCouple}"> + <e:ListModelListBoxEditor ui:field="cpuProfilesEditor" /> <g:Label ui:field="cpuSharesEditor" text="{constants.cpuShares}" addStyleNames="{style.labelToCoupleLabel}"/> <g:FlowPanel addStyleNames="{style.labelToCoupleCouple}"> <e:ListModelListBoxOnlyEditor ui:field="cpuSharesAmountSelectionEditor" addStyleNames="{style.labelToCoupleCoupleLeft}" contentWidgetStyleName="{style.cpuSahresValueListBox}" /> diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java index 48501a6..ff91c094 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.java @@ -2,6 +2,7 @@ import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.VmTemplate; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.CommonApplicationTemplates; @@ -24,6 +25,7 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.editor.client.Editor.Path; import com.google.gwt.resources.client.CssResource; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; @@ -102,6 +104,11 @@ @Path(value = "copyPermissions.entity") @WithElementId("copyVmPermissions") EntityModelCheckBoxEditor copyVmPermissions; + + @UiField(provided = true) + @Path(value = "cpuProfiles.selectedItem") + @WithElementId("cpuProfiles") + public ListModelListBoxEditor<CpuProfile> cpuProfilesEditor; @UiField @Ignore @@ -189,6 +196,13 @@ ); } }); + + cpuProfilesEditor = new ListModelListBoxEditor<CpuProfile>(new NullSafeRenderer<CpuProfile>() { + @Override + protected String renderNullSafe(CpuProfile object) { + return object.getName(); + } + }); } private String typeAheadNameDescriptionTemplateNullSafe(String name, String description) { @@ -216,6 +230,7 @@ isSubTemplateEditor.setLabel(constants.createAsSubTemplate()); baseTemplateEditor.setLabel(constants.rootTemplate()); templateVersionNameEditor.setLabel(constants.templateVersionName()); + cpuProfilesEditor.setLabel(constants.cpuProfileLabel()); } @Override @@ -269,6 +284,7 @@ descriptionEditor.setTabIndex(nextTabIndex++); commentEditor.setTabIndex(nextTabIndex++); clusterEditor.setTabIndex(nextTabIndex++); + cpuProfilesEditor.setTabIndex(nextTabIndex++); quotaEditor.setTabIndex(nextTabIndex++); isSubTemplateEditor.setTabIndex(nextTabIndex++); baseTemplateEditor.setTabIndex(nextTabIndex++); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml index 467501e..909f89e 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmMakeTemplatePopupWidget.ui.xml @@ -39,6 +39,7 @@ <ge:StringEntityModelTextBoxEditor ui:field="descriptionEditor" /> <ge:StringEntityModelTextBoxEditor ui:field="commentEditor" /> <e:ListModelTypeAheadListBoxEditor ui:field="clusterEditor" /> + <e:ListModelListBoxEditor ui:field="cpuProfilesEditor" /> <e:ListModelListBoxEditor ui:field="quotaEditor" /> <ge:EntityModelCheckBoxEditor ui:field="isSubTemplateEditor"/> <g:FlowPanel ui:field="subTemplateExpanderContent" addStyleNames="{style.generalExpanderContent}"> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java index 16bb71e..df3a81a 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java @@ -221,6 +221,7 @@ vm.setBootMenuEnabled(instance.isBootMenuEnabled()); vm.setSpiceFileTransferEnabled(instance.isSpiceFileTransferEnabled()); vm.setSpiceCopyPasteEnabled(instance.isSpiceCopyPasteEnabled()); + vm.setCpuProfileId(instance.getCpuProfileId()); return vm; } @@ -445,6 +446,7 @@ obj.setCreatedByUserId(instance.getCreatedByUserId()); obj.setSpiceFileTransferEnabled(instance.isSpiceFileTransferEnabled()); obj.setSpiceCopyPasteEnabled(instance.isSpiceCopyPasteEnabled()); + obj.setCpuProfileId(instance.getCpuProfileId()); return obj; } @@ -487,6 +489,7 @@ obj.setBootMenuEnabled(instance.isBootMenuEnabled()); obj.setSpiceFileTransferEnabled(instance.isSpiceFileTransferEnabled()); obj.setSpiceCopyPasteEnabled(instance.isSpiceCopyPasteEnabled()); + obj.setCpuProfileId(instance.getCpuProfileId()); return obj; } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java index aaa3ab9..2213c21 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java @@ -15,7 +15,8 @@ public CommonUnitToVmBaseBuilder() { super( new CoreUnitToVmBaseBuilder(), - new QuotaUnitToVmBaseBuilder<T>() + new QuotaUnitToVmBaseBuilder<T>(), + new CpuProfileUnitToVmBaseBuilder<T>() ); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CpuProfileUnitToVmBaseBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CpuProfileUnitToVmBaseBuilder.java new file mode 100644 index 0000000..c8b7392 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CpuProfileUnitToVmBaseBuilder.java @@ -0,0 +1,14 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.VmBase; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + +public class CpuProfileUnitToVmBaseBuilder<T extends VmBase> extends BaseSyncBuilder<UnitVmModel, T> { + @Override + protected void build(UnitVmModel model, VmBase vm) { + if (model.getCpuProfiles().getSelectedItem() != null) { + vm.setCpuProfileId(model.getCpuProfiles().getSelectedItem().getId()); + } + } +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java index d03e61b..bb87cf5 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java @@ -30,6 +30,7 @@ import org.ovirt.engine.ui.uicommonweb.Linq; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor; +import org.ovirt.engine.ui.uicommonweb.builders.vm.CpuProfileUnitToVmBaseBuilder; import org.ovirt.engine.ui.uicommonweb.builders.vm.VmSpecificUnitToVmBuilder; import org.ovirt.engine.ui.uicommonweb.builders.vm.CoreUnitToVmBaseBuilder; import org.ovirt.engine.ui.uicommonweb.builders.vm.DedicatedVmForVdsUnitToVmBaseBuilder; @@ -516,7 +517,8 @@ new KernelParamsUnitToVmBaseBuilder(), new MigrationOptionsUnitToVmBaseBuilder(), new DedicatedVmForVdsUnitToVmBaseBuilder(), - new UsbPolicyUnitToVmBaseBuilder()); + new UsbPolicyUnitToVmBaseBuilder(), + new CpuProfileUnitToVmBaseBuilder()); BuilderExecutor.build(model, vm, new VmSpecificUnitToVmBuilder()); return vm; } 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 16ad95e..853b9fa 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 @@ -1,5 +1,10 @@ package org.ovirt.engine.ui.uicommonweb.models.vms; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; @@ -20,11 +25,6 @@ import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel; import org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.ExistingVmInstanceTypeManager; import org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.InstanceTypeManager; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; public class ExistingVmModelBehavior extends VmModelBehaviorBase { @@ -172,6 +172,8 @@ } }), vm.getRunOnVds()); } + + updateCpuProfile(vm.getVdsGroupId(), vm.getVdsGroupCompatibilityVersion(), vm.getCpuProfileId()); } @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java index 73f78f7..2151415 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java @@ -21,6 +21,7 @@ import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VolumeFormat; import org.ovirt.engine.core.common.businessentities.VolumeType; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -99,6 +100,16 @@ cluster = value; } + private ListModel<CpuProfile> cpuProfiles; + + public ListModel<CpuProfile> getCpuProfiles() { + return cpuProfiles; + } + + private void setCpuProfiles(ListModel<CpuProfile> value) { + cpuProfiles = value; + } + private ListModel clusterQuota; public ListModel getClusterQuota() { @@ -167,6 +178,7 @@ setCluster(new ListModel()); setClusterQuota(new ListModel()); getClusterQuota().setIsAvailable(false); + setCpuProfiles(new ListModel<CpuProfile>()); } public void init(List items, final Guid storageDomainId) { @@ -213,7 +225,7 @@ getCluster().setItems(clusters); getCluster().setSelectedItem(Linq.firstOrDefault(clusters)); } - + VDSGroup cluster = (VDSGroup) getCluster().getSelectedItem(); // get storage domains AsyncDataProvider.getInstance().getStorageDomainList(new AsyncQuery(ImportVmModel.this, new INewAsyncCallback() { @@ -241,7 +253,24 @@ }), getStoragePool().getId()); + + fetchCpuProfiles(cluster.getId()); } + + private void fetchCpuProfiles(Guid clusterId) { + Frontend.getInstance().runQuery(VdcQueryType.GetCpuProfilesByClusterId, + new IdQueryParameters(clusterId), + new AsyncQuery(new INewAsyncCallback() { + + @Override + public void onSuccess(Object model, Object returnValue) { + List<CpuProfile> cpuProfiles = + (List<CpuProfile>) ((VdcQueryReturnValue) returnValue).getReturnValue(); + getCpuProfiles().setItems(cpuProfiles); + } + })); + } + }), dataCenter.getId(), true, false); } 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 404fe0e..cdc952b 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 @@ -265,8 +265,7 @@ } @Override - public void template_SelectedItemChanged() - { + public void template_SelectedItemChanged() { } @Override @@ -279,6 +278,7 @@ updateOSValues(); updateTemplate(); updateNumOfSockets(); + updateCpuProfile(vm.getVdsGroupId(), vm.getVdsGroupCompatibilityVersion(), vm.getCpuProfileId()); } @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 8e384fe..33245fc 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 @@ -142,6 +142,8 @@ getModel().getVmInitModel().init(template); getModel().getVmInitEnabled().setEntity(template.getVmInit() != null); + + updateCpuProfile(template.getVdsGroupId(), getClusterCompatibilityVersion(), template.getCpuProfileId()); } } 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 99a586d..67f90d2 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 @@ -157,6 +157,8 @@ getModel().getVmInitModel().init(vmBase); getModel().getVmInitEnabled().setEntity(vmBase.getVmInit() != null); + + updateCpuProfile(vmBase.getVdsGroupId(), getClusterCompatibilityVersion(), vmBase.getCpuProfileId()); } } 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 8289296..4fc5669 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 @@ -138,6 +138,7 @@ updateVirtioScsiAvailability(); updateMigrationForLocalSD(); updateOSValues(); + updateCpuProfile(template.getCpuProfileId(), getClusterCompatibilityVersion(), template.getCpuProfileId()); } @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 8ed6bf7..a4b636d 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 @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map; import java.util.Set; + import org.ovirt.engine.core.common.businessentities.BootSequence; import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.InstanceType; @@ -28,6 +29,7 @@ import org.ovirt.engine.core.common.businessentities.VmType; import org.ovirt.engine.core.common.businessentities.VmWatchdogAction; import org.ovirt.engine.core.common.businessentities.VmWatchdogType; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -1411,6 +1413,16 @@ this.spiceCopyPasteEnabled = spiceCopyPasteEnabled; } + private NotChangableForVmInPoolListModel<CpuProfile> cpuProfiles; + + public ListModel<CpuProfile> getCpuProfiles() { + return cpuProfiles; + } + + public void setCpuProfiles(NotChangableForVmInPoolListModel<CpuProfile> cpuProfiles) { + this.cpuProfiles = cpuProfiles; + } + public UnitVmModel(VmModelBehaviorBase behavior) { Frontend.getInstance().getQueryStartedEvent().addListener(this); Frontend.getInstance().getQueryCompleteEvent().addListener(this); @@ -1664,6 +1676,8 @@ setEditingEnabled(new EntityModel<Boolean>()); getEditingEnabled().setEntity(true); + setCpuProfiles(new NotChangableForVmInPoolListModel<CpuProfile>()); + getCpuProfiles().setIsAvailable(false); } public void initialize(SystemTreeItemModel SystemTreeSelectedItem) 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 4b5e1e6..7c1ff8b 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 @@ -8,6 +8,7 @@ import java.util.HashMap; import java.util.List; import java.util.Set; + import org.ovirt.engine.core.common.TimeZoneType; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.ArchitectureType; @@ -28,6 +29,7 @@ import org.ovirt.engine.core.common.businessentities.VmType; import org.ovirt.engine.core.common.businessentities.VolumeType; import org.ovirt.engine.core.common.businessentities.comparators.NameableComparator; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; @@ -1178,4 +1180,35 @@ return selectedInstanceType == null || selectedInstanceType instanceof CustomInstanceType; } + protected void updateCpuProfile(Guid clusterId, Version vdsGroupCompatibilityVersion, Guid cpuProfileId) { + if (Boolean.TRUE.equals(AsyncDataProvider.getInstance() + .getConfigValuePreConverted(ConfigurationValues.CpuQosSupported, + vdsGroupCompatibilityVersion.getValue()))) { + getModel().getCpuProfiles().setIsAvailable(true); + fetchCpuProfiles(clusterId, cpuProfileId); + } else { + getModel().getCpuProfiles().setIsAvailable(false); + } + } + + private void fetchCpuProfiles(Guid clusterId, final Guid cpuProfileId) { + Frontend.getInstance().runQuery(VdcQueryType.GetCpuProfilesByClusterId, + new IdQueryParameters(clusterId), + new AsyncQuery(new INewAsyncCallback() { + + @Override + public void onSuccess(Object model, Object returnValue) { + List<CpuProfile> cpuProfiles = + (List<CpuProfile>) ((VdcQueryReturnValue) returnValue).getReturnValue(); + getModel().getCpuProfiles().setItems(cpuProfiles); + if (cpuProfiles != null) { + for (CpuProfile cpuProfile : cpuProfiles) { + if (cpuProfile.getId().equals(cpuProfileId)) { + getModel().getCpuProfiles().setSelectedItem(cpuProfile); + } + } + } + } + })); + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmListModelTest.java b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmListModelTest.java index d301202..1de7a70 100644 --- a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmListModelTest.java +++ b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmListModelTest.java @@ -13,6 +13,7 @@ import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.common.businessentities.VmTemplate; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.ListModel; @@ -72,6 +73,8 @@ when(model.getBootMenuEnabled().getEntity()).thenReturn(true); when(model.getSpiceFileTransferEnabled().getEntity()).thenReturn(true); when(model.getSpiceCopyPasteEnabled().getEntity()).thenReturn(true); + ListModel<CpuProfile> cpuProfiles = mockCpuProfiles(); + when(model.getCpuProfiles()).thenReturn(cpuProfiles); } protected void setUpOrigVm(VM origVm) { @@ -120,6 +123,7 @@ assertTrue(vm.isRunAndPause()); assertTrue(vm.isAutoStartup()); assertEquals(QUOTA_ID, vm.getQuotaId()); + assertEquals(CPU_PROFILE_ID, vm.getCpuProfileId()); assertEquals(PRIORITY, vm.getPriority()); assertEquals(DESCRIPTION, vm.getDescription()); assertEquals(COMMENT, vm.getComment()); @@ -236,4 +240,13 @@ return model; } + + protected ListModel<CpuProfile> mockCpuProfiles() { + CpuProfile cpuProfile = new CpuProfile(); + cpuProfile.setId(CPU_PROFILE_ID); + final ListModel<CpuProfile> model = mockListModel(cpuProfile); + when(model.getIsAvailable()).thenReturn(true); + + return model; + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmTest.java b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmTest.java index 9026a51..a23f2131 100644 --- a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmTest.java +++ b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseVmTest.java @@ -46,6 +46,7 @@ protected static final String CUSTOM_PROPERTIES = "custom_properties"; //$NON-NLS-1$ protected static final Guid INSTANCE_TYPE_ID = Guid.newGuid(); protected static final Guid QUOTA_ID = Guid.newGuid(); + protected static final Guid CPU_PROFILE_ID = Guid.newGuid(); protected static final String VNC_KEYBOARD_LAYOUT = "en-us"; //$NON-NLS-1$ protected static final String VNC_KEYBOARD_LAYOUT_2 = "cz-cs"; //$NON-NLS-1$ protected static final DisplayType DISPLAY_TYPE = DisplayType.qxl; diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java index c06d1cd..71e76df 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/popup/vm/VmMakeTemplatePopupView.java @@ -21,7 +21,7 @@ @Inject public VmMakeTemplatePopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, CommonApplicationTemplates applicationTemplates) { - super(eventBus, resources, new VmMakeTemplatePopupWidget(constants, applicationTemplates), "470px", "560px"); //$NON-NLS-1$ //$NON-NLS-2$ + super(eventBus, resources, new VmMakeTemplatePopupWidget(constants, applicationTemplates), "470px", "580px"); //$NON-NLS-1$ //$NON-NLS-2$ ViewIdHandler.idHandler.generateAndSetIds(this); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java index 117d405..11ab9f1 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java @@ -12,6 +12,7 @@ import org.ovirt.engine.core.common.businessentities.VolumeType; import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; import org.ovirt.engine.ui.common.CommonApplicationTemplates; import org.ovirt.engine.ui.common.uicommon.model.DetailModelProvider; import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; @@ -85,6 +86,10 @@ @UiField(provided = true) @Path(value = "cluster.selectedItem") ListModelListBoxEditor<Object> destClusterEditor; + + @UiField(provided = true) + @Path(value = "cpuProfiles.selectedItem") + ListModelListBoxEditor<CpuProfile> cpuProfileEditor; @UiField(provided = true) @Path(value = "clusterQuota.selectedItem") @@ -622,12 +627,21 @@ } }); destStorageEditor = new ListModelListBoxEditor<Object>(new StorageDomainFreeSpaceRenderer()); + + cpuProfileEditor = new ListModelListBoxEditor<CpuProfile>(new NullSafeRenderer<CpuProfile>() { + + @Override + protected String renderNullSafe(CpuProfile object) { + return object.getName(); + } + }); } private void localize(ApplicationConstants constants) { destClusterEditor.setLabel(constants.importVm_destCluster()); destClusterQuotaEditor.setLabel(constants.importVm_destClusterQuota()); destStorageEditor.setLabel(constants.defaultStorage()); + cpuProfileEditor.setLabel(constants.cpuProfileLabel()); } @SuppressWarnings("unchecked") diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.ui.xml index b92a0fa..5d3fcd9 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.ui.xml @@ -82,6 +82,7 @@ <g:VerticalPanel> <e:ListModelListBoxEditor ui:field="destStorageEditor" addStyleNames="{style.listBoxEditor}"/> <e:ListModelListBoxEditor ui:field="destClusterEditor" addStyleNames="{style.listBoxEditor}"/> + <e:ListModelListBoxEditor ui:field="cpuProfileEditor" addStyleNames="{style.listBoxEditor}"/> </g:VerticalPanel> <g:VerticalPanel> <e:ListModelListBoxEditor ui:field="destStorageQuotaEditor" addStyleNames="{style.destStorageQuotaEditor}"/> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java index f36408a..d238f5b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/vm/VmMakeTemplatePopupView.java @@ -21,7 +21,7 @@ @Inject public VmMakeTemplatePopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, CommonApplicationTemplates applicationTemplates) { - super(eventBus, resources, new VmMakeTemplatePopupWidget(constants, applicationTemplates), "470px", "560px"); //$NON-NLS-1$ //$NON-NLS-2$ + super(eventBus, resources, new VmMakeTemplatePopupWidget(constants, applicationTemplates), "470px", "580px"); //$NON-NLS-1$ //$NON-NLS-2$ ViewIdHandler.idHandler.generateAndSetIds(this); } -- To view, visit http://gerrit.ovirt.org/31630 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8a55e2ae268b932537d41b8e626795292fed8134 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <gchap...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches