Hello Vitor de Lima,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/20614

to review the following change.

Change subject: core: Add POWER 7 to the CPU list
......................................................................

core: Add POWER 7 to the CPU list

* This introduces the POWER 7 to the list of supported CPUs.
* The ClusterEmulatedMachines configuration value was changed to
  include the "pseries" emulated machine.

Change-Id: Id56ef93cd377bdadc10db008618ab4bbb8ed7170
Signed-off-by: Vitor de Lima <vitor.l...@eldorado.org.br>
Signed-off-by: Gustavo Pedrosa <gustavo.pedr...@eldorado.org.br>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CpuFlagsManagerHandler.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ArchitectureType.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/util/ServerCpuParserTest.java
M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
4 files changed, 35 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/20614/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CpuFlagsManagerHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CpuFlagsManagerHandler.java
index b226517..9d67f0a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CpuFlagsManagerHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CpuFlagsManagerHandler.java
@@ -108,13 +108,17 @@
     private static class CpuFlagsManager {
         private List<ServerCpu> _intelCpuList;
         private List<ServerCpu> _amdCpuList;
+        private List<ServerCpu> _ibmCpuList;
         private List<ServerCpu> _allCpuList = new ArrayList<ServerCpu>();
         private Map<String, ServerCpu> _intelCpuByNameDictionary =
                 new HashMap<String, ServerCpu>();
         private Map<String, ServerCpu> _amdCpuByNameDictionary =
                 new HashMap<String, ServerCpu>();
+        private Map<String, ServerCpu> _ibmCpuByNameDictionary =
+                new HashMap<String, ServerCpu>();
         private final String _intelFlag = "vmx";
         private final String _amdFlag = "svm";
+        private final String _ibmFlag = "powernv";
 
         public CpuFlagsManager(Version ver) {
             InitDictionaries(ver);
@@ -140,6 +144,10 @@
                 if (result == null) {
                     result = _amdCpuByNameDictionary.get(cpuName);
                 }
+
+                if (result == null) {
+                    result = _ibmCpuByNameDictionary.get(cpuName);
+                }
             }
             return result;
         }
@@ -149,6 +157,7 @@
             // init dictionaries
             _intelCpuByNameDictionary.clear();
             _amdCpuByNameDictionary.clear();
+            _ibmCpuByNameDictionary.clear();
             _allCpuList.clear();
 
             String[] cpus = Config.<String> 
GetValue(ConfigValues.ServerCPUList, ver.toString()).split("[;]", -1);
@@ -179,6 +188,8 @@
                             _intelCpuByNameDictionary.put(sc.getCpuName(), sc);
                         } else if (sc.getFlags().contains(_amdFlag)) {
                             _amdCpuByNameDictionary.put(sc.getCpuName(), sc);
+                        } else if (sc.getFlags().contains(_ibmFlag)) {
+                            _ibmCpuByNameDictionary.put(sc.getCpuName(), sc);
                         }
 
                         _allCpuList.add(sc);
@@ -189,6 +200,7 @@
             }
             _intelCpuList = new 
ArrayList<ServerCpu>(_intelCpuByNameDictionary.values());
             _amdCpuList = new 
ArrayList<ServerCpu>(_amdCpuByNameDictionary.values());
+            _ibmCpuList = new 
ArrayList<ServerCpu>(_ibmCpuByNameDictionary.values());
 
             Comparator<ServerCpu> cpuComparator = new Comparator<ServerCpu>() {
                 @Override
@@ -201,6 +213,7 @@
             // selected first
             Collections.sort(_intelCpuList, cpuComparator);
             Collections.sort(_amdCpuList, cpuComparator);
+            Collections.sort(_ibmCpuList, cpuComparator);
         }
 
         public String GetVDSVerbDataByCpuName(String name) {
@@ -208,7 +221,8 @@
             ServerCpu sc = null;
             if (name != null) {
                 if ((sc = _intelCpuByNameDictionary.get(name)) != null
-                        || (sc = _amdCpuByNameDictionary.get(name)) != null) {
+                        || (sc = _amdCpuByNameDictionary.get(name)) != null
+                        || (sc = _ibmCpuByNameDictionary.get(name)) != null) {
                     result = sc.getVdsVerbData();
                 }
             }
@@ -239,6 +253,7 @@
             if (clusterCpuName != null
                     && ((clusterCpu = 
_intelCpuByNameDictionary.get(clusterCpuName)) != null
                             || (clusterCpu = 
_amdCpuByNameDictionary.get(clusterCpuName)) != null
+                            || (clusterCpu = 
_ibmCpuByNameDictionary.get(clusterCpuName)) != null
                     )) {
                 for (String flag : clusterCpu.getFlags()) {
                     if (!lstServerflags.contains(flag)) {
@@ -280,6 +295,8 @@
                     result = _intelCpuByNameDictionary.containsKey(cpuName2);
                 } else if (_amdCpuByNameDictionary.containsKey(cpuName1)) {
                     result = _amdCpuByNameDictionary.containsKey(cpuName2);
+                } else if (_ibmCpuByNameDictionary.containsKey(cpuName1)) {
+                    result = _ibmCpuByNameDictionary.containsKey(cpuName2);
                 }
             }
 
@@ -289,7 +306,8 @@
         public boolean CheckIfCpusExist(String cpuName) {
             return cpuName != null
                     && (_intelCpuByNameDictionary.containsKey(cpuName)
-                            || _amdCpuByNameDictionary.containsKey(cpuName));
+                            || _amdCpuByNameDictionary.containsKey(cpuName)
+                            || _ibmCpuByNameDictionary.containsKey(cpuName));
         }
 
         /**
@@ -317,6 +335,13 @@
                         break;
                     }
                 }
+            } else if (lstFlags.contains(_ibmFlag)) {
+                for (int i = _ibmCpuList.size() - 1; i >= 0; i--) {
+                    if (CheckIfFlagsContainsCpuFlags(_ibmCpuList.get(i), 
lstFlags)) {
+                        result = _ibmCpuList.get(i);
+                        break;
+                    }
+                }
             }
             return result;
         }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ArchitectureType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ArchitectureType.java
index f5edb90..100ac4b 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ArchitectureType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ArchitectureType.java
@@ -5,7 +5,8 @@
 public enum ArchitectureType implements Identifiable {
 
     undefined(0),
-    x86_64(1);
+    x86_64(1),
+    ppc64(2);
 
     private int value;
     private static final HashMap<Integer, ArchitectureType> 
valueToArchitecture =
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/util/ServerCpuParserTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/util/ServerCpuParserTest.java
index cf34daa..2380f5f 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/util/ServerCpuParserTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/util/ServerCpuParserTest.java
@@ -38,11 +38,11 @@
 
     @Test
     public void testParseMultipleArchtectures() {
-        List<ServerCpu> cpus = parseCpus("1:foo:one,two,three:blue:x86_64;:bar 
foo:four,five,six:pink:x86_64");
+        List<ServerCpu> cpus = parseCpus("1:foo:one,two,three:blue:x86_64;:bar 
foo:four,five,six:pink:ppc64");
         assertNotNull(cpus);
         assertEquals(2, cpus.size());
         verifyCpu(cpus.get(0), 1, "foo", "blue", ArchitectureType.x86_64, 
"one", "two", "three");
-        verifyCpu(cpus.get(1), 0, "bar foo", "pink", ArchitectureType.x86_64, 
"four", "five", "six");
+        verifyCpu(cpus.get(1), 0, "bar foo", "pink", ArchitectureType.ppc64, 
"four", "five", "six");
     }
 
     @Test
diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql 
b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
index e62d9d1..d0a1b46 100644
--- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
+++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
@@ -77,7 +77,7 @@
 select 
fn_db_add_config_value('ClusterEmulatedMachines','rhel6.2.0,pc-1.0','3.0');
 select 
fn_db_add_config_value('ClusterEmulatedMachines','rhel6.3.0,pc-1.0','3.1');
 select 
fn_db_add_config_value('ClusterEmulatedMachines','rhel6.4.0,pc-1.0','3.2');
-select 
fn_db_add_config_value('ClusterEmulatedMachines','rhel6.4.0,pc-1.0','3.3');
+select 
fn_db_add_config_value('ClusterEmulatedMachines','rhel6.4.0,pc-1.0,pseries','3.3');
 select fn_db_add_config_value('CpuOverCommitDurationMinutes','2','general');
 --Handling Data directory for ENGINE
 select fn_db_add_config_value('DataDir','/usr/share/engine','general');
@@ -441,7 +441,7 @@
 select fn_db_add_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64;','3.0');
 select fn_db_add_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64;','3.1');
 select fn_db_add_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 7:Intel SandyBridge 
Family:vmx,nx,model_SandyBridge:SandyBridge:x86_64; 8:Intel 
Haswell:vmx,nx,model_Haswell:Haswell:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64; 5:AMD Opteron 
G4:svm,nx,model_Opteron_G4:Opteron_G4:x86_64; 6:AMD Opteron 
G5:smx,nx,model_Opteron_G5:Opteron_G5:x86_64;','3.2');
-select fn_db_add_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 7:Intel SandyBridge 
Family:vmx,nx,model_SandyBridge:SandyBridge:x86_64; 8:Intel 
Haswell:vmx,nx,model_Haswell:Haswell:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64; 5:AMD Opteron 
G4:svm,nx,model_Opteron_G4:Opteron_G4:x86_64; 6:AMD Opteron 
G5:smx,nx,model_Opteron_G5:Opteron_G5:x86_64;','3.3');
+select fn_db_add_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 7:Intel SandyBridge 
Family:vmx,nx,model_SandyBridge:SandyBridge:x86_64; 8:Intel 
Haswell:vmx,nx,model_Haswell:Haswell:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64; 5:AMD Opteron 
G4:svm,nx,model_Opteron_G4:Opteron_G4:x86_64; 6:AMD Opteron 
G5:smx,nx,model_Opteron_G5:Opteron_G5:x86_64; 1:IBM POWER 7 
v2.0:powernv,model_POWER7_v2.0:POWER7_v2.0:ppc64; 2:IBM POWER 7 
v2.1:powernv,model_POWER7_v2.1:POWER7_v2.1:ppc64; 3:IBM POWER 7 
v2.3:powernv,model_POWER7:POWER7:ppc64;','3.3');
 select fn_db_add_config_value('ServerRebootTimeout','300','general');
 select fn_db_add_config_value('SetupNetworksPollingTimeout','3','general');
 -- Add shareable disk property in vdc_options to support only 3.1 version.
@@ -724,7 +724,8 @@
 select fn_db_update_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64;','3.0');
 select fn_db_update_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 7:Intel SandyBridge 
Family:vmx,nx,model_SandyBridge:SandyBridge:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64; 5:AMD Opteron 
G4:svm,nx,model_Opteron_G4:Opteron_G4:x86_64;','3.1');
 select fn_db_update_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 7:Intel SandyBridge 
Family:vmx,nx,model_SandyBridge:SandyBridge:x86_64; 8:Intel 
Haswell:vmx,nx,model_Haswell:Haswell:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64; 5:AMD Opteron 
G4:svm,nx,model_Opteron_G4:Opteron_G4:x86_64; 6:AMD Opteron 
G5:smx,nx,model_Opteron_G5:Opteron_G5:x86_64;','3.2');
-select fn_db_update_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 7:Intel SandyBridge 
Family:vmx,nx,model_SandyBridge:SandyBridge:x86_64; 8:Intel 
Haswell:vmx,nx,model_Haswell:Haswell:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64; 5:AMD Opteron 
G4:svm,nx,model_Opteron_G4:Opteron_G4:x86_64; 6:AMD Opteron 
G5:smx,nx,model_Opteron_G5:Opteron_G5:x86_64;','3.3');
+select fn_db_update_config_value('ServerCPUList','3:Intel Conroe 
Family:vmx,nx,model_Conroe:Conroe:x86_64; 4:Intel Penryn 
Family:vmx,nx,model_Penryn:Penryn:x86_64; 5:Intel Nehalem 
Family:vmx,nx,model_Nehalem:Nehalem:x86_64; 6:Intel Westmere 
Family:aes,vmx,nx,model_Westmere:Westmere:x86_64; 7:Intel SandyBridge 
Family:vmx,nx,model_SandyBridge:SandyBridge:x86_64; 8:Intel 
Haswell:vmx,nx,model_Haswell:Haswell:x86_64; 2:AMD Opteron 
G1:svm,nx,model_Opteron_G1:Opteron_G1:x86_64; 3:AMD Opteron 
G2:svm,nx,model_Opteron_G2:Opteron_G2:x86_64; 4:AMD Opteron 
G3:svm,nx,model_Opteron_G3:Opteron_G3:x86_64; 5:AMD Opteron 
G4:svm,nx,model_Opteron_G4:Opteron_G4:x86_64; 6:AMD Opteron 
G5:smx,nx,model_Opteron_G5:Opteron_G5:x86_64; :IBM POWER 7 
v2.0:powernv,model_POWER7_v2.0:POWER7_v2.0:ppc64; :IBM POWER 7 
v2.1:powernv,model_POWER7_v2.1:POWER7_v2.1:ppc64; :IBM POWER 7 
v2.3:powernv,model_POWER7:POWER7:ppc64;','3.3');
+select 
fn_db_update_config_value('ClusterEmulatedMachines','rhel6.4.0,pc-1.0,pseries','3.3');
 select fn_db_update_config_value('SpiceDriverNameInGuest','{"windows": 
"RHEV-Spice", "linux" : "xorg-x11-drv-qxl" }','general');
 select 
fn_db_update_config_value('SupportedClusterLevels','3.0,3.1,3.2,3.3','general');
 select 
fn_db_update_config_value('SupportedStorageFormats','0,2,3','3.1,3.2,3.3');


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id56ef93cd377bdadc10db008618ab4bbb8ed7170
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Gustavo Frederico Temple Pedrosa <gustavo.pedr...@eldorado.org.br>
Gerrit-Reviewer: Vitor de Lima <vitor.l...@eldorado.org.br>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to