Rename OpRenameInstance and LURenameInstance
[ganeti-local] / test / ganeti.config_unittest.py
index 4221e92..a21bfa6 100755 (executable)
@@ -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