Roy Golan has uploaded a new change for review.

Change subject: WIP libosinfo add CpuArch UI field
......................................................................

WIP libosinfo add CpuArch UI field

Change-Id: Ia817fb0a4f9d1d651a986d1655ee231636439ae0
Signed-off-by: Roy Golan <[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/dataprovider/AsyncDataProvider.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolGeneralModel.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/templates/TemplateListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.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/VmGeneralModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
11 files changed, 69 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/68/9068/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 5434ee7..e7dc515 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
@@ -325,6 +325,9 @@
     @DefaultStringValue("Operating System")
     String osVmPopup();
 
+    @DefaultStringValue("Cpu Architecture")
+    String cpuArchPopup();
+
     @DefaultStringValue("Stateless")
     String statelessVmPopup();
 
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 0d29683..b2469e5 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
@@ -4,6 +4,7 @@
 import java.util.Map.Entry;
 
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
+import org.ovirt.engine.core.common.businessentities.CpuArch;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
 import org.ovirt.engine.core.common.businessentities.Quota;
@@ -163,6 +164,11 @@
     @Path(value = "oSType.selectedItem")
     @WithElementId("osType")
     public ListModelListBoxEditor<Object> oSTypeEditor;
+
+    @UiField(provided = true)
+    @Path(value = "cpuArch.selectedItem")
+    @WithElementId("cpuArch")
+    public ListModelListBoxEditor<Object> cpuArchEditor;
 
     @UiField
     @Ignore
@@ -573,13 +579,20 @@
             }
         });
 
-        // oSTypeEditor = new ListModelListBoxEditor<Object>(new 
EnumRenderer());
         oSTypeEditor = new ListModelListBoxEditor<Object>(new 
NullSafeRenderer<Object>() {
             @Override
             public String renderNullSafe(Object object) {
                 VmOsType osType = (VmOsType) object;
                 Os os = AsyncDataProvider.getAllOSs().get(osType.getShortId());
                 return os != null ? os.getName() : "";
+            }
+        });
+
+        cpuArchEditor = new ListModelListBoxEditor<Object>(new 
NullSafeRenderer<Object>() {
+            @Override
+            public String renderNullSafe(Object object) {
+                CpuArch arch = (CpuArch) object;
+                return arch == null ? CpuArch.UNASSIGNED.name() : arch.name();
             }
         });
 
@@ -680,6 +693,8 @@
         numOfSocketsEditor.setLabel(constants.numOfSockets());
 
         oSTypeEditor.setLabel(constants.osVmPopup());
+        cpuArchEditor.setLabel(constants.cpuArchPopup());
+
         isStatelessEditor.setLabel(constants.statelessVmPopup());
         isSmartcardEnabledEditor.setLabel(constants.smartcardVmPopup());
 
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 4e4bdcd..10d581b 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
@@ -274,6 +274,7 @@
                                                </g:FlowPanel>
                                                <g:FlowPanel 
addStyleNames="{style.sectionPanel}">
                                                        
<e:ListModelListBoxEditor ui:field="oSTypeEditor" />
+                                                       
<e:ListModelListBoxEditor ui:field="cpuArchEditor" />
                                                        
<e:EntityModelCheckBoxEditor ui:field="isStatelessEditor" 
addStyleNames="{style.checkbox}" />
                                                </g:FlowPanel>
                                                <g:FlowPanel 
addStyleNames="{style.sectionPanel}">
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 07b4ef9..9c4d0b1 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
@@ -2570,4 +2570,17 @@
         return Get64bitOsTypes().contains(osType.getShortId());
     }
 
+    public static List<CpuArch> getCpuArchById(String shortId) {
+        Os os = getAllOSs().get(shortId);
+        List<CpuArch> list = new ArrayList<CpuArch>();
+        if (os != null && os.getResources() != null && 
os.getResources().size() > 0) {
+            for (Resources r : os.getResources()) {
+                list.add(CpuArch.forValue(r.getArch()));
+            }
+        } else {
+            list.add(CpuArch.UNASSIGNED);
+        }
+        return list;
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolGeneralModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolGeneralModel.java
index 8419944..5aed97a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolGeneralModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolGeneralModel.java
@@ -9,7 +9,6 @@
 import org.ovirt.engine.core.common.businessentities.UsbPolicy;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VM;
-import org.ovirt.engine.core.common.businessentities.VmOsType;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
 import org.ovirt.engine.core.common.businessentities.vm_pools;
 import org.ovirt.engine.core.common.interfaces.SearchType;
@@ -24,6 +23,7 @@
 import org.ovirt.engine.core.compat.EventDefinition;
 import org.ovirt.engine.core.compat.PropertyChangedEventArgs;
 import org.ovirt.engine.core.compat.StringHelper;
+import org.ovirt.engine.core.libosinfo.Os;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
@@ -456,13 +456,13 @@
                             + " Socket(s), " + getvm().getcpu_per_socket() + " 
Core(s) per Socket)"); //$NON-NLS-1$ //$NON-NLS-2$
                     
poolGeneralModel.setMonitorCount(getvm().getnum_of_monitors());
 
-                    Translator translator = 
EnumTranslator.Create(VmOsType.class);
-                    poolGeneralModel.setOS(translator.get(getvm().getvm_os()));
+                    Os os = 
AsyncDataProvider.getAllOSs().get(getvm().getvm_os().getShortId());
+                    poolGeneralModel.setOS(os != null ? os.getName() : "");
 
                     
poolGeneralModel.setDefinedMemory(getvm().getvm_mem_size_mb() + " MB"); 
//$NON-NLS-1$
                     
poolGeneralModel.setMinAllocatedMemory(getvm().getMinAllocatedMem() + " MB"); 
//$NON-NLS-1$
 
-                    translator = EnumTranslator.Create(DisplayType.class);
+                    Translator translator = 
EnumTranslator.Create(DisplayType.class);
                     
poolGeneralModel.setDefaultDisplayType(translator.get(getvm().getdefault_display_type()));
 
                     translator = EnumTranslator.Create(OriginType.class);
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 3e26b60..b09574d 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
@@ -11,6 +11,7 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VmPoolParametersBase;
+import org.ovirt.engine.core.common.businessentities.CpuArch;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
@@ -644,6 +645,7 @@
                         desktop.setvmt_guid(((VmTemplate) 
model.getTemplate().getSelectedItem()).getId());
                         desktop.setvm_name(name);
                         desktop.setvm_os((VmOsType) 
model.getOSType().getSelectedItem());
+                        desktop.setCpuArch((CpuArch) 
model.getCpuArch().getSelectedItem());
                         desktop.setSmartcardEnabled((Boolean) 
model.getIsSmartcardEnabled().getEntity());
                         desktop.setnum_of_monitors((Integer) 
model.getNumOfMonitors().getSelectedItem());
                         
desktop.setvm_domain(model.getDomain().getIsAvailable() ? (String) 
model.getDomain()
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
index 4cd5181..f9578ed 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
@@ -11,6 +11,7 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.action.VmTemplateParametersBase;
+import org.ovirt.engine.core.common.businessentities.CpuArch;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
@@ -505,6 +506,7 @@
         template.setvm_type(model.getVmType());
         template.setname(name);
         template.setos((VmOsType) model.getOSType().getSelectedItem());
+        template.setCpuArch((CpuArch) model.getCpuArch().getSelectedItem());
         template.setnum_of_monitors((Integer) 
model.getNumOfMonitors().getSelectedItem());
         template.setAllowConsoleReconnect((Boolean) 
model.getAllowConsoleReconnect().getEntity());
         template.setdescription((String) model.getDescription().getEntity());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
index 752c9a8..1dcf0b1 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
@@ -17,6 +17,7 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VmManagementParametersBase;
+import org.ovirt.engine.core.common.businessentities.CpuArch;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
@@ -636,6 +637,7 @@
         tempVar.setId(vm.getId());
         tempVar.setvm_type(model.getVmType());
         tempVar.setvm_os((VmOsType) model.getOSType().getSelectedItem());
+        tempVar.setCpuArch((CpuArch) model.getCpuArch().getSelectedItem());
         tempVar.setnum_of_monitors((Integer) 
model.getNumOfMonitors().getSelectedItem());
         tempVar.setAllowConsoleReconnect((Boolean) 
model.getAllowConsoleReconnect().getEntity());
         tempVar.setvm_domain(model.getDomain().getIsAvailable() ? (String) 
model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$
@@ -1276,6 +1278,7 @@
         gettempVm().setvmt_guid(template.getId());
         gettempVm().setvm_name(name);
         gettempVm().setvm_os((VmOsType) model.getOSType().getSelectedItem());
+        gettempVm().setCpuArch((CpuArch) model.getCpuArch().getSelectedItem());
         gettempVm().setnum_of_monitors((Integer) 
model.getNumOfMonitors().getSelectedItem());
         gettempVm().setAllowConsoleReconnect((Boolean) 
model.getAllowConsoleReconnect().getEntity());
         gettempVm().setvm_description((String) 
model.getDescription().getEntity());
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 e101ed4..17ce0c6 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
@@ -938,6 +938,16 @@
         this.cpuPinning = cpuPinning;
     }
 
+    private ListModel cpuArch;
+
+    public ListModel getCpuArch() {
+        return cpuArch;
+    }
+
+    public void setCpuArch(ListModel value) {
+        this.cpuArch = value;
+    }
+
     public UnitVmModel(VmModelBehaviorBase behavior)
     {
         Frontend.getQueryStartedEvent().addListener(this);
@@ -1012,6 +1022,7 @@
         setDefaultHost(new ListModel());
         getDefaultHost().getSelectedItemChangedEvent().addListener(this);
 
+        setCpuArch(new ListModel());
         setOSType(new ListModel());
         getOSType().getSelectedItemChangedEvent().addListener(this);
 
@@ -1487,6 +1498,7 @@
 
         getDomain().setIsChangable(getIsWindowsOS());
         getBehavior().updateTimeZone();
+        getBehavior().updateCpuArch();
 
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
index f63f03a..7b19bb5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
@@ -10,7 +10,6 @@
 import org.ovirt.engine.core.common.businessentities.UsbPolicy;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VM;
-import org.ovirt.engine.core.common.businessentities.VmOsType;
 import org.ovirt.engine.core.common.businessentities.VmPauseStatus;
 import org.ovirt.engine.core.common.businessentities.VmType;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
@@ -25,6 +24,7 @@
 import org.ovirt.engine.core.compat.EventDefinition;
 import org.ovirt.engine.core.compat.PropertyChangedEventArgs;
 import org.ovirt.engine.core.compat.StringHelper;
+import org.ovirt.engine.core.libosinfo.Os;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
@@ -597,10 +597,10 @@
         setDefinedMemory(vm.getvm_mem_size_mb() + " MB"); //$NON-NLS-1$
         setMinAllocatedMemory(vm.getMinAllocatedMem() + " MB"); //$NON-NLS-1$
 
-        Translator translator = EnumTranslator.Create(VmOsType.class);
-        setOS(translator.get(vm.getvm_os()));
+        Os os = AsyncDataProvider.getAllOSs().get(vm.getvm_os().getShortId());
+        setOS(os != null ? os.getName() : "");
 
-        translator = EnumTranslator.Create(DisplayType.class);
+        Translator translator = EnumTranslator.Create(DisplayType.class);
         setDefaultDisplayType(translator.get(vm.getdefault_display_type()));
 
         translator = EnumTranslator.Create(OriginType.class);
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 c6c55e4..d9ad135 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
@@ -9,6 +9,7 @@
 import java.util.Map.Entry;
 
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
+import org.ovirt.engine.core.common.businessentities.CpuArch;
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
@@ -17,6 +18,7 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.common.businessentities.VmOsType;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
 import org.ovirt.engine.core.common.businessentities.storage_domains;
@@ -928,4 +930,11 @@
             break;
         }
     }
+
+    public void updateCpuArch() {
+        VmOsType selectedItem = (VmOsType) 
getModel().getOSType().getSelectedItem();
+        List<CpuArch> items = 
AsyncDataProvider.getCpuArchById(selectedItem.getShortId());
+        getModel().getCpuArch().setItems(items);
+        getModel().getCpuArch().setSelectedItem(items.get(0));
+    }
 }


--
To view, visit http://gerrit.ovirt.org/9068
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia817fb0a4f9d1d651a986d1655ee231636439ae0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to