X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/1f5d9bf8747301b4f6b54e665500061c78dbd808..c4929a8bcca4a43dc6434394a91a8ea67d854844:/lib/cmdlib.py diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 1041b15..04d26f9 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -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