gnt-cluster: Add hv/disk state to init
[ganeti-local] / lib / cmdlib.py
index 1041b15..04d26f9 100644 (file)
@@ -1028,8 +1028,8 @@ def _CheckMinMaxSpecs(name, ipolicy, value):
   """
   if value in [None, constants.VALUE_AUTO]:
     return None
-  max_v = ipolicy[constants.MAX_ISPECS].get(name, value)
-  min_v = ipolicy[constants.MIN_ISPECS].get(name, value)
+  max_v = ipolicy[constants.ISPECS_MAX].get(name, value)
+  min_v = ipolicy[constants.ISPECS_MIN].get(name, value)
   if value > max_v or min_v > value:
     return ("%s value %s is not in range [%s, %s]" %
             (name, value, min_v, max_v))
@@ -2151,11 +2151,11 @@ class LUClusterVerifyGroup(LogicalUnit, _VerifyErrors):
     nic_count = len(instance.nics)
 
     test_settings = [
-      (constants.MEM_SIZE_SPEC, mem_size),
-      (constants.CPU_COUNT_SPEC, cpu_count),
-      (constants.DISK_COUNT_SPEC, disk_count),
-      (constants.NIC_COUNT_SPEC, nic_count),
-      ] + map((lambda d: (constants.DISK_SIZE_SPEC, d)), disk_sizes)
+      (constants.ISPEC_MEM_SIZE, mem_size),
+      (constants.ISPEC_CPU_COUNT, cpu_count),
+      (constants.ISPEC_DISK_COUNT, disk_count),
+      (constants.ISPEC_NIC_COUNT, nic_count),
+      ] + map((lambda d: (constants.ISPEC_DISK_SIZE, d)), disk_sizes)
 
     for (name, value) in test_settings:
       test_result = _CheckMinMaxSpecs(name, ipolicy, value)
@@ -8245,6 +8245,12 @@ def _ComputeLDParams(disk_template, disk_params):
       constants.LDP_DEFAULT_METAVG: dt_params[constants.DRBD_DEFAULT_METAVG],
       constants.LDP_DISK_CUSTOM: dt_params[constants.DRBD_DISK_CUSTOM],
       constants.LDP_NET_CUSTOM: dt_params[constants.DRBD_NET_CUSTOM],
+      constants.LDP_DYNAMIC_RESYNC: dt_params[constants.DRBD_DYNAMIC_RESYNC],
+      constants.LDP_PLAN_AHEAD: dt_params[constants.DRBD_PLAN_AHEAD],
+      constants.LDP_FILL_TARGET: dt_params[constants.DRBD_FILL_TARGET],
+      constants.LDP_DELAY_TARGET: dt_params[constants.DRBD_DELAY_TARGET],
+      constants.LDP_MAX_RATE: dt_params[constants.DRBD_MAX_RATE],
+      constants.LDP_MIN_RATE: dt_params[constants.DRBD_MIN_RATE],
       }
 
     drbd_params = \
@@ -12788,9 +12794,10 @@ class LUGroupAdd(LogicalUnit):
     else:
       self.op.diskparams = self.cfg.GetClusterInfo().diskparams
 
-    cluster = self.cfg.GetClusterInfo()
-    full_ipolicy = cluster.SimpleFillIpolicy(self.op.ipolicy)
-    objects.InstancePolicy.CheckParameterSyntax(full_ipolicy)
+    if self.op.ipolicy:
+      cluster = self.cfg.GetClusterInfo()
+      full_ipolicy = cluster.SimpleFillIPolicy(self.op.ipolicy)
+      objects.InstancePolicy.CheckParameterSyntax(full_ipolicy)
 
   def BuildHooksEnv(self):
     """Build hooks env.
@@ -13068,7 +13075,8 @@ class LUGroupSetParams(LogicalUnit):
       self.op.diskparams,
       self.op.alloc_policy,
       self.op.hv_state,
-      self.op.disk_state
+      self.op.disk_state,
+      self.op.ipolicy,
       ]
 
     if all_changes.count(None) == len(all_changes):
@@ -13117,6 +13125,16 @@ class LUGroupSetParams(LogicalUnit):
         _MergeAndVerifyDiskState(self.op.disk_state,
                                  self.group.disk_state_static)
 
+    if self.op.ipolicy:
+      g_ipolicy = {}
+      for key, value in self.op.ipolicy.iteritems():
+        g_ipolicy[key] = _GetUpdatedParams(self.group.ipolicy.get(key, {}),
+                                           value,
+                                           use_none=True)
+        utils.ForceDictType(g_ipolicy[key], constants.ISPECS_PARAMETER_TYPES)
+      self.new_ipolicy = g_ipolicy
+      objects.InstancePolicy.CheckParameterSyntax(self.new_ipolicy)
+
   def BuildHooksEnv(self):
     """Build hooks env.
 
@@ -13156,6 +13174,9 @@ class LUGroupSetParams(LogicalUnit):
     if self.op.disk_state:
       self.group.disk_state_static = self.new_disk_state
 
+    if self.op.ipolicy:
+      self.group.ipolicy = self.new_ipolicy
+
     self.cfg.Update(self.group, feedback_fn)
     return result