mirror of
https://github.com/xcat2/confluent.git
synced 2025-01-26 10:59:53 +00:00
Add checking for noderange conflict
A confluent nodegroup may either be a normal static one, which can be used for attribute inheritence, or a dynamic one, which cannot be used with static list or static attributes. Warn the user when they try to set that up to make it more obvious that the dynamic groups can't do what they are trying to do.
This commit is contained in:
parent
ca6b203a09
commit
938a6e44df
@ -1499,6 +1499,9 @@ class ConfigManager(object):
|
||||
newattr = _attraliases[attr]
|
||||
attribmap[group][newattr] = attribmap[group][attr]
|
||||
del attribmap[group][attr]
|
||||
if 'noderange' in attribmap[group]:
|
||||
if len(attribmap[group]) > 1:
|
||||
raise ValueErorr('noderange attribute must be set by itself')
|
||||
for attr in attribmap[group]:
|
||||
if attr in _attraliases:
|
||||
newattr = _attraliases[attr]
|
||||
@ -1541,6 +1544,13 @@ class ConfigManager(object):
|
||||
if group not in self._cfgstore['nodegroups']:
|
||||
self._cfgstore['nodegroups'][group] = {'nodes': set()}
|
||||
cfgobj = self._cfgstore['nodegroups'][group]
|
||||
if 'noderange' in attribmap[group] and attribmap[group]['noderange']:
|
||||
if cfgobj['nodes']:
|
||||
raise ValueError('Cannot set both nodes and noderange on group')
|
||||
if set(cfgobj) - set(['noderange', 'nodes']):
|
||||
raise ValueError('Cannot set noderange on a group with attributes')
|
||||
elif 'noderange' in cfgobj and cfgobj['noderange']:
|
||||
raise ValueError('Attributes cannot be set on a group with a noderange')
|
||||
for attr in attribmap[group]:
|
||||
if attr == 'nodes':
|
||||
newdict = set(attribmap[group][attr])
|
||||
|
Loading…
x
Reference in New Issue
Block a user