Add Jinja2 filter 'skipped' to test for a registered variable from a skipped task
This commit is contained in:
parent
b2d881a899
commit
906746b1f0
2 changed files with 12 additions and 0 deletions
|
@ -300,6 +300,8 @@ decide to do something conditionally based on success or failure::
|
||||||
when: result|failed
|
when: result|failed
|
||||||
- action: command /bin/something_else
|
- action: command /bin/something_else
|
||||||
when: result|success
|
when: result|success
|
||||||
|
- action: command /bin/still/something_else
|
||||||
|
when: result|skipped
|
||||||
|
|
||||||
|
|
||||||
As a reminder, to see what derived variables are available, you can do::
|
As a reminder, to see what derived variables are available, you can do::
|
||||||
|
|
|
@ -44,6 +44,13 @@ def failed(*a, **kw):
|
||||||
def success(*a, **kw):
|
def success(*a, **kw):
|
||||||
return not failed(*a, **kw)
|
return not failed(*a, **kw)
|
||||||
|
|
||||||
|
def skipped(*a, **kw):
|
||||||
|
item = a[0]
|
||||||
|
if type(item) != dict:
|
||||||
|
raise errors.AnsibleError("|skipped expects a dictionary")
|
||||||
|
skipped = item.get('skipped', False)
|
||||||
|
return skipped
|
||||||
|
|
||||||
def mandatory(a):
|
def mandatory(a):
|
||||||
''' Make a variable mandatory '''
|
''' Make a variable mandatory '''
|
||||||
if not a:
|
if not a:
|
||||||
|
@ -88,6 +95,9 @@ class FilterModule(object):
|
||||||
'failed' : failed,
|
'failed' : failed,
|
||||||
'success' : success,
|
'success' : success,
|
||||||
|
|
||||||
|
# skip testing
|
||||||
|
'skipped' : skipped,
|
||||||
|
|
||||||
# variable existence
|
# variable existence
|
||||||
'mandatory': mandatory,
|
'mandatory': mandatory,
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue