1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Merge pull request #4437 from sergevanginderachter/changed_filter

Implement a |changed filter plugin
This commit is contained in:
Michael DeHaan 2013-10-10 17:26:56 -07:00
commit a9225d0c7a

View file

@ -34,7 +34,8 @@ def to_nice_json(*a, **kw):
return json.dumps(*a, indent=4, sort_keys=True, **kw)
def failed(*a, **kw):
item = a[0]
''' Test if task result yields failed '''
item = a[0]
if type(item) != dict:
raise errors.AnsibleFilterError("|failed expects a dictionary")
rc = item.get('rc',0)
@ -45,9 +46,27 @@ def failed(*a, **kw):
return False
def success(*a, **kw):
''' Test if task result yields success '''
return not failed(*a, **kw)
def changed(*a, **kw):
''' Test if task result yields changed '''
item = a[0]
if type(item) != dict:
raise errors.AnsibleFilterError("|changed expects a dictionary")
if not 'changed' in item:
changed = False
if ('results' in item # some modules return a 'results' key
and type(item['results']) == list
and type(item['results'][0]) == dict):
for result in item['results']:
changed = changed or result.get('changed', False)
else:
changed = item.get('changed', False)
return changed
def skipped(*a, **kw):
''' Test if task result yields skipped '''
item = a[0]
if type(item) != dict:
raise errors.AnsibleFilterError("|skipped expects a dictionary")
@ -106,6 +125,9 @@ class FilterModule(object):
'failed' : failed,
'success' : success,
# changed testing
'changed' : changed,
# skip testing
'skipped' : skipped,