Currently hv-state_static is supported only for cluster object properly.
Convert hv_state_static from None to {} in ConfigUpgrade for NodeGroup
and Node as well. Also modify mock config objects to return empty
dictionaries.Signed-off-by: Oleg Ponomarev <[email protected]> --- lib/objects.py | 10 ++++++++++ test/py/ganeti.masterd.iallocator_unittest.py | 4 ++++ test/py/testutils/config_mock.py | 5 +++-- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/objects.py b/lib/objects.py index 02db0e3..c6648f1 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -1490,6 +1490,11 @@ class Node(TaggableObject): if self.powered is None: self.powered = True + if self.hv_state_static is None: + self.hv_state_static = {} + if self.disk_state_static is None: + self.disk_state_static = {} + def ToDict(self, _with_private=False): """Custom function for serializing. @@ -1587,6 +1592,11 @@ class NodeGroup(TaggableObject): if self.ipolicy is None: self.ipolicy = MakeEmptyIPolicy() + if self.hv_state_static is None: + self.hv_state_static = {} + if self.disk_state_static is None: + self.disk_state_static = {} + if self.networks is None: self.networks = {} diff --git a/test/py/ganeti.masterd.iallocator_unittest.py b/test/py/ganeti.masterd.iallocator_unittest.py index d92e572..25ff74b 100755 --- a/test/py/ganeti.masterd.iallocator_unittest.py +++ b/test/py/ganeti.masterd.iallocator_unittest.py @@ -101,6 +101,8 @@ class TestIARequestBase(unittest.TestCase): class _FakeConfigWithNdParams: def GetNdParams(self, _): return None + def GetFilledHvStateParams(self, _): + return None class TestComputeBasicNodeData(unittest.TestCase): @@ -151,6 +153,7 @@ class TestComputeBasicNodeData(unittest.TestCase): "master_capable": True, "vm_capable": False, "ndparams": None, + "hv_state": None, }, "node2": { "tags": [], @@ -163,6 +166,7 @@ class TestComputeBasicNodeData(unittest.TestCase): "master_capable": False, "vm_capable": True, "ndparams": None, + "hv_state": None, }, }) diff --git a/test/py/testutils/config_mock.py b/test/py/testutils/config_mock.py index 7ae27bc..31ce14e 100644 --- a/test/py/testutils/config_mock.py +++ b/test/py/testutils/config_mock.py @@ -64,6 +64,7 @@ def _UpdateIvNames(base_idx, disks): # pylint: disable=R0904 +# pylint: disable=W0102 (dangerous default value {} as argument) class ConfigMock(config.ConfigWriter): """A mocked cluster configuration with added methods for easy customization. @@ -109,7 +110,7 @@ class ConfigMock(config.ConfigWriter): ndparams=None, diskparams=None, ipolicy=None, - hv_state_static=None, + hv_state_static={}, disk_state_static=None, alloc_policy=None, networks=None): @@ -160,7 +161,7 @@ class ConfigMock(config.ConfigWriter): ndparams=None, powered=True, hv_state=None, - hv_state_static=None, + hv_state_static={}, disk_state=None, disk_state_static=None): """Add a new L{objects.Node} to the cluster configuration -- 2.6.0.rc2.230.g3dd15c0
