mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #32056 from bstevenson/fix-list_absent
Fix list absent
This commit is contained in:
commit
c42014eb54
2 changed files with 25 additions and 16 deletions
|
@ -172,27 +172,36 @@ def list_absent(name, value):
|
|||
'changes': {},
|
||||
'result': True,
|
||||
'comment': ''}
|
||||
comments = []
|
||||
grain = __grains__.get(name)
|
||||
if grain:
|
||||
if isinstance(grain, list):
|
||||
if value not in grain:
|
||||
ret['comment'] = 'Value {1} is absent from grain {0}' \
|
||||
.format(name, value)
|
||||
return ret
|
||||
if __opts__['test']:
|
||||
ret['result'] = None
|
||||
ret['comment'] = 'Value {1} in grain {0} is set to ' \
|
||||
'be deleted'.format(name, value)
|
||||
ret['changes'] = {'deleted': value}
|
||||
return ret
|
||||
__salt__['grains.remove'](name, value)
|
||||
ret['comment'] = 'Value {1} was deleted from grain {0}'\
|
||||
.format(name, value)
|
||||
ret['changes'] = {'deleted': value}
|
||||
if not isinstance(value, list):
|
||||
value = [value]
|
||||
for val in value:
|
||||
if val not in grain:
|
||||
comments.append('Value {1} is absent from '
|
||||
'grain {0}'.format(name, val))
|
||||
elif __opts__['test']:
|
||||
ret['result'] = None
|
||||
comments.append('Value {1} in grain {0} is set '
|
||||
'to be deleted'.format(name, val))
|
||||
if 'deleted' not in ret['changes'].keys():
|
||||
ret['changes'] = {'deleted': []}
|
||||
ret['changes']['deleted'].append(val)
|
||||
elif val in grain:
|
||||
__salt__['grains.remove'](name, val)
|
||||
comments.append('Value {1} was deleted from '
|
||||
'grain {0}'.format(name, val))
|
||||
if 'deleted' not in ret['changes'].keys():
|
||||
ret['changes'] = {'deleted': []}
|
||||
ret['changes']['deleted'].append(val)
|
||||
ret['comment'] = '\n'.join(comments)
|
||||
return ret
|
||||
else:
|
||||
ret['result'] = False
|
||||
ret['comment'] = 'Grain {0} is not a valid list'\
|
||||
.format(name)
|
||||
.format(name)
|
||||
else:
|
||||
ret['comment'] = 'Grain {0} does not exist'.format(name)
|
||||
return ret
|
||||
|
|
|
@ -142,7 +142,7 @@ class GrainsTestCase(TestCase):
|
|||
ret = {'changes': {}, 'name': self.name, 'result': True,
|
||||
'comment': 'Value edam is absent from grain cheese'}
|
||||
|
||||
ret1 = {'changes': {'deleted': self.value}, 'name': self.name,
|
||||
ret1 = {'changes': {'deleted': [self.value]}, 'name': self.name,
|
||||
'result': None,
|
||||
'comment': 'Value edam in grain cheese is set to be deleted'}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue