diff --git a/test/ganeti.config_unittest.py b/test/ganeti.config_unittest.py index 4221e92aecc3cd92e85779637ac56d684bbe7d86..a21bfa6da85568676b4d728d9d15cc4feb88af4b 100755 --- a/test/ganeti.config_unittest.py +++ b/test/ganeti.config_unittest.py @@ -204,6 +204,41 @@ class TestConfigRunner(unittest.TestCase): cfg.Update(node, None) self.assertEqual(cfg.GetNdParams(node), my_ndparams) + def testAddGroupFillsFieldsIfMissing(self): + cfg = self._get_object() + group = objects.NodeGroup(name="test", members=[]) + cfg.AddNodeGroup(group, "my-job") + self.assert_(utils.UUID_RE.match(group.uuid)) + self.assertEqual(constants.ALLOC_POLICY_PREFERRED, group.alloc_policy) + + def testAddGroupPreservesFields(self): + cfg = self._get_object() + group = objects.NodeGroup(name="test", members=[], + alloc_policy=constants.ALLOC_POLICY_LAST_RESORT) + cfg.AddNodeGroup(group, "my-job") + self.assertEqual(constants.ALLOC_POLICY_LAST_RESORT, group.alloc_policy) + + def testAddGroupDoesNotPreserveFields(self): + cfg = self._get_object() + group = objects.NodeGroup(name="test", members=[], + serial_no=17, ctime=123, mtime=456) + cfg.AddNodeGroup(group, "my-job") + self.assertEqual(1, group.serial_no) + self.assert_(group.ctime > 1200000000) + self.assert_(group.mtime > 1200000000) + + def testAddGroupCanSkipUUIDCheck(self): + cfg = self._get_object() + uuid = cfg.GenerateUniqueID("my-job") + group = objects.NodeGroup(name="test", members=[], uuid=uuid, + serial_no=17, ctime=123, mtime=456) + + self.assertRaises(errors.ConfigurationError, + cfg.AddNodeGroup, group, "my-job") + + cfg.AddNodeGroup(group, "my-job", check_uuid=False) # Does not raise. + self.assertEqual(uuid, group.uuid) + class TestTRM(unittest.TestCase): EC_ID = 1