Introduce 'changed_when' keyword to override a task's changed status with the evaluation of a Jinja2 expression

This commit is contained in:
Stoned Elipot 2013-07-14 21:07:45 +02:00
parent 81940c8b11
commit eb45f07ae3
5 changed files with 75 additions and 6 deletions

View file

@ -630,6 +630,16 @@ class Runner(object):
module_name=module_name
)
changed_when = self.module_vars.get('changed_when')
if changed_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
changed = template.template(self.basedir, changed_when, inject, fail_on_undefined=self.error_on_undefined_vars)
data['changed'] = utils.check_conditional(changed)
if is_chained:
# no callbacks
return result