Loop through list values in list_absent

Fixes #32052. List_absent now loops through items list.
This commit is contained in:
Brian Stevenson 2016-03-22 10:44:24 -07:00
parent 0e66f678d4
commit 8ea5b545b0

View file

@ -169,26 +169,29 @@ def list_absent(name, value):
- dev
'''
ret = {'name': name,
'changes': {},
'changes': [],
'result': True,
'comment': ''}
'comment': []}
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:
ret['comment'].append('Value {1} is absent from grain {0}' \
.format(name, val))
elif __opts__['test']:
ret['result'] = None
ret['comment'].append('Value {1} in grain {0} is set to ' \
'be deleted'.format(name, val))
ret['changes'].append({'deleted': val})
elif val in grain:
__salt__['grains.remove'](name, val)
ret['comment'].append('Value {1} was deleted from grain {0}'\
.format(name, val))
ret['changes'].append({'deleted': val})
return ret
else:
ret['result'] = False
ret['comment'] = 'Grain {0} is not a valid list'\
@ -197,7 +200,6 @@ def list_absent(name, value):
ret['comment'] = 'Grain {0} does not exist'.format(name)
return ret
def absent(name, destructive=False):
'''
.. versionadded:: 2014.7.0