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()

   def FillND(self, node):
     """Return filled out ndparams for L{objects.Node}

Reply via email to