The input of the testEncodeInstance test was not adherent to the actual format
of the Ganeti configuration file: kvm has no HV_BLOCKDEV_PREFIX, and "hvparams"
inside an instance should only contain the values of the hypervisor parameters,
not the hypervisor name, which is already declared in the "hypervisor" field,
and which was not correctly aligned with the parameters in the "hvparams"
section.

All these problems are now fixed, and the assertions are changed accordingly.

Signed-off-by: Michele Tartara <[email protected]>
---
 test/py/ganeti.rpc_unittest.py | 35 ++++++++++++++---------------------
 1 file changed, 14 insertions(+), 21 deletions(-)

diff --git a/test/py/ganeti.rpc_unittest.py b/test/py/ganeti.rpc_unittest.py
index 38faa02..0a37136 100755
--- a/test/py/ganeti.rpc_unittest.py
+++ b/test/py/ganeti.rpc_unittest.py
@@ -774,7 +774,7 @@ class TestRpcRunner(unittest.TestCase):
   def testEncodeInstance(self):
     cluster = objects.Cluster(hvparams={
       constants.HT_KVM: {
-        constants.HV_BLOCKDEV_PREFIX: "foo",
+        constants.HV_CDROM_IMAGE_PATH: "foo",
         },
       },
       beparams={
@@ -791,13 +791,11 @@ class TestRpcRunner(unittest.TestCase):
     cluster.UpgradeConfig()
 
     inst = objects.Instance(name="inst1.example.com",
-      hypervisor=constants.HT_FAKE,
+      hypervisor=constants.HT_KVM,
       os="linux",
       hvparams={
-        constants.HT_KVM: {
-          constants.HV_BLOCKDEV_PREFIX: "bar",
-          constants.HV_ROOT_PATH: "/tmp",
-          },
+        constants.HV_CDROM_IMAGE_PATH: "bar",
+        constants.HV_ROOT_PATH: "/tmp",
         },
       beparams={
         constants.BE_MINMEM: 128,
@@ -826,7 +824,6 @@ class TestRpcRunner(unittest.TestCase):
       self.assertEqual(result["name"], "inst1.example.com")
       self.assertEqual(result["os"], "linux")
       self.assertEqual(result["beparams"][constants.BE_MINMEM], 128)
-      self.assertEqual(len(result["hvparams"]), 1)
       self.assertEqual(len(result["nics"]), 1)
       self.assertEqual(result["nics"][0]["nicparams"][constants.NIC_MODE],
                        "mymode")
@@ -834,21 +831,23 @@ class TestRpcRunner(unittest.TestCase):
     # Generic object serialization
     result = runner._encoder((rpc_defs.ED_OBJECT_DICT, inst))
     _CheckBasics(result)
+    self.assertEqual(len(result["hvparams"]), 2)
 
     result = runner._encoder((rpc_defs.ED_OBJECT_DICT_LIST, 5 * [inst]))
     map(_CheckBasics, result)
+    map(lambda r: self.assertEqual(len(r["hvparams"]), 2), result)
 
     # Just an instance
     result = runner._encoder((rpc_defs.ED_INST_DICT, inst))
     _CheckBasics(result)
     self.assertEqual(result["beparams"][constants.BE_MAXMEM], 256)
-    self.assertEqual(result["hvparams"][constants.HT_KVM], {
-      constants.HV_BLOCKDEV_PREFIX: "bar",
-      constants.HV_ROOT_PATH: "/tmp",
-      })
+    self.assertEqual(result["hvparams"][constants.HV_CDROM_IMAGE_PATH], "bar")
+    self.assertEqual(result["hvparams"][constants.HV_ROOT_PATH], "/tmp")
     self.assertEqual(result["osparams"], {
       "role": "unknown",
       })
+    self.assertEqual(len(result["hvparams"]),
+                     len(constants.HVC_DEFAULTS[constants.HT_KVM]))
 
     # Instance with OS parameters
     result = runner._encoder((rpc_defs.ED_INST_DICT_OSP_DP, (inst, {
@@ -857,10 +856,8 @@ class TestRpcRunner(unittest.TestCase):
       })))
     _CheckBasics(result)
     self.assertEqual(result["beparams"][constants.BE_MAXMEM], 256)
-    self.assertEqual(result["hvparams"][constants.HT_KVM], {
-      constants.HV_BLOCKDEV_PREFIX: "bar",
-      constants.HV_ROOT_PATH: "/tmp",
-      })
+    self.assertEqual(result["hvparams"][constants.HV_CDROM_IMAGE_PATH], "bar")
+    self.assertEqual(result["hvparams"][constants.HV_ROOT_PATH], "/tmp")
     self.assertEqual(result["osparams"], {
       "role": "webserver",
       "other": "field",
@@ -868,9 +865,7 @@ class TestRpcRunner(unittest.TestCase):
 
     # Instance with hypervisor and backend parameters
     result = runner._encoder((rpc_defs.ED_INST_DICT_HVP_BEP_DP, (inst, {
-      constants.HT_KVM: {
-        constants.HV_BOOT_ORDER: "xyz",
-        },
+      constants.HV_BOOT_ORDER: "xyz",
       }, {
       constants.BE_VCPUS: 100,
       constants.BE_MAXMEM: 4096,
@@ -878,9 +873,7 @@ class TestRpcRunner(unittest.TestCase):
     _CheckBasics(result)
     self.assertEqual(result["beparams"][constants.BE_MAXMEM], 4096)
     self.assertEqual(result["beparams"][constants.BE_VCPUS], 100)
-    self.assertEqual(result["hvparams"][constants.HT_KVM], {
-      constants.HV_BOOT_ORDER: "xyz",
-      })
+    self.assertEqual(result["hvparams"][constants.HV_BOOT_ORDER], "xyz")
     self.assertEqual(result["disks"], [{
       "dev_type": constants.DT_PLAIN,
       "size": 4096,
-- 
1.8.5.1

Reply via email to