On Thu, Dec 08, 2011 at 12:14:02PM +0100, Agata Murawska wrote: > On Thu, Dec 8, 2011 at 9:21 AM, Iustin Pop <[email protected]> wrote: > > On Tue, Dec 06, 2011 at 06:52:15PM +0100, Agata Murawska wrote: > >> 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 > > > > This again :) > > > > rest LGTM. > > > > thanks, > > iustin > > Interdiff: > > diff --git a/lib/objects.py b/lib/objects.py > index 6a9727b..ecfcdfe 100644 > --- a/lib/objects.py > +++ b/lib/objects.py > @@ -1304,7 +1304,7 @@ class NodeGroup(TaggableObject): > > self.diskparams = UpgradeDiskParams(self.diskparams) > if self.ipolicy is None: > - self.ipolicy = constants.IPOLICY_EMPTY > + self.ipolicy = MakeEmptyIPolicy()
LGTM.
