Introduction of instance policy on node group level. Since we want the nodegroup ipolicy to inherit some values from cluster's ipolicy, calculation function is provided.
Signed-off-by: Agata Murawska <[email protected]> --- lib/cmdlib.py | 8 ++++++++ lib/config.py | 5 ++++- lib/objects.py | 3 +++ 3 files changed, 15 insertions(+), 1 deletions(-) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index c1140cf..d686136 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1164,6 +1164,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 13e00ad..03a3d5a 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 fed3f93..7e7a429 100644 --- a/lib/objects.py +++ b/lib/objects.py @@ -1260,6 +1260,7 @@ class NodeGroup(TaggableObject): "members", "ndparams", "diskparams", + "ipolicy", "serial_no", "alloc_policy", ] + _TIMESTAMPS + _UUID @@ -1305,6 +1306,8 @@ class NodeGroup(TaggableObject): self.mtime = time.time() self.diskparams = UpgradeDiskParams(self.diskparams) + if self.ipolicy is None: + self.ipolicy = constants.IPOLICY_EMPTY def FillND(self, node): """Return filled out ndparams for L{objects.Node} -- 1.7.3.1
