Merge branch 'failed_when' of https://github.com/hnakamur/ansible into hnakamur-failed_when

This commit is contained in:
James Cammarata 2013-09-16 07:35:34 -05:00
commit 3b801dec72
6 changed files with 61 additions and 8 deletions

View file

@ -508,7 +508,7 @@ class Runner(object):
for x in results:
if x.get('changed') == True:
all_changed = True
if (x.get('failed') == True) or (('rc' in x) and (x['rc'] != 0)):
if (x.get('failed') == True) or ('failed_when_result' in x and [x['failed_when_result']] or [('rc' in x) and (x['rc'] != 0)])[0]:
all_failed = True
break
msg = 'All items completed'
@ -670,13 +670,17 @@ class Runner(object):
)
changed_when = self.module_vars.get('changed_when')
if changed_when is not None:
failed_when = self.module_vars.get('failed_when')
if changed_when is not None or failed_when is not None:
register = self.module_vars.get('register')
if register is not None:
if 'stdout' in data:
data['stdout_lines'] = data['stdout'].splitlines()
inject[register] = data
data['changed'] = utils.check_conditional(changed_when, self.basedir, inject, fail_on_undefined=self.error_on_undefined_vars)
if changed_when is not None:
data['changed'] = utils.check_conditional(changed_when, self.basedir, inject, fail_on_undefined=self.error_on_undefined_vars)
if failed_when is not None:
data['failed_when_result'] = data['failed'] = utils.check_conditional(failed_when, self.basedir, inject, fail_on_undefined=self.error_on_undefined_vars)
if is_chained:
# no callbacks