From 81e3ab4f8c52e9813378b3cfbbbf015fa51416c0 Mon Sep 17 00:00:00 2001 From: Agata Murawska <agatamurawska@google.com> Date: Tue, 6 Dec 2011 17:35:08 +0100 Subject: [PATCH] Introduce instance policy on nodegroup level Signed-off-by: Agata Murawska <agatamurawska@google.com> Reviewed-by: Iustin Pop <iustin@google.com> --- lib/cmdlib.py | 8 ++++++++ lib/config.py | 5 ++++- lib/objects.py | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index faed6d735..cbd49868f 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1229,6 +1229,14 @@ def _DecideSelfPromotion(lu, exceptions=None): return mc_now < mc_should +def _CalculateGroupIPolicy(cfg, group): + """Calculate instance policy for group. + + """ + cluster = cfg.GetClusterInfo() + return cluster.SimpleFillIPolicy(group.ipolicy) + + def _CheckNicsBridgesExist(lu, target_nics, target_node): """Check that the brigdes needed by a list of nics exist. diff --git a/lib/config.py b/lib/config.py index 13e00ad11..03a3d5aeb 100644 --- a/lib/config.py +++ b/lib/config.py @@ -561,8 +561,11 @@ class ConfigWriter: result.append("duplicate node group name '%s'" % nodegroup.name) else: nodegroups_names.add(nodegroup.name) + group_name = "group %s" % nodegroup.name + _helper_ipolicy(group_name, cluster.SimpleFillIPolicy(nodegroup.ipolicy)) + _helper_ispecs(group_name, cluster.SimpleFillIPolicy(nodegroup.ipolicy)) if nodegroup.ndparams: - _helper("group %s" % nodegroup.name, "ndparams", + _helper(group_name, "ndparams", cluster.SimpleFillND(nodegroup.ndparams), constants.NDS_PARAMETER_TYPES) diff --git a/lib/objects.py b/lib/objects.py index 7967059b5..1e61b7352 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -1257,6 +1257,7 @@ class NodeGroup(TaggableObject): "members", "ndparams", "diskparams", + "ipolicy", "serial_no", "hv_state_static", "disk_state_static", @@ -1304,6 +1305,8 @@ class NodeGroup(TaggableObject): self.mtime = time.time() self.diskparams = UpgradeDiskParams(self.diskparams) + if self.ipolicy is None: + self.ipolicy = MakeEmptyIPolicy() def FillND(self, node): """Return filled out ndparams for L{objects.Node} -- GitLab