Commit d2721526 by Michael DeHaan

Small tweak, don't merge conditionals, just evaluate each in turn.

parent 58f5bfb4
...@@ -230,5 +230,6 @@ class Task(object): ...@@ -230,5 +230,6 @@ class Task(object):
self.only_if = utils.compile_when_to_only_if(self.when) self.only_if = utils.compile_when_to_only_if(self.when)
if additional_conditions: if additional_conditions:
self.only_if = '(' + self.only_if + ') and (' + ' ) and ('.join(additional_conditions) + ')' self.only_if = [ self.only_if ]
self.only_if.extend(additional_conditions)
...@@ -504,12 +504,15 @@ class Runner(object): ...@@ -504,12 +504,15 @@ class Runner(object):
else: else:
handler = utils.plugins.action_loader.get('async', self) handler = utils.plugins.action_loader.get('async', self)
conditional = template.template(self.basedir, self.conditional, inject, expand_lists=False) if type(self.conditional) != list:
self.conditional = [ self.conditional ]
if not utils.check_conditional(conditional):
result = utils.jsonify(dict(changed=False, skipped=True)) for cond in self.conditional:
self.callbacks.on_skipped(host, inject.get('item',None)) cond = template.template(self.basedir, cond, inject, expand_lists=False)
return ReturnData(host=host, result=result) if not utils.check_conditional(cond):
result = utils.jsonify(dict(changed=False, skipped=True))
self.callbacks.on_skipped(host, inject.get('item',None))
return ReturnData(host=host, result=result)
conn = None conn = None
actual_host = inject.get('ansible_ssh_host', host) actual_host = inject.get('ansible_ssh_host', host)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment