Merge pull request #14833 from bcoca/when_lists
make all conditionals lists
This commit is contained in:
commit
cf250d4f89
2 changed files with 14 additions and 10 deletions
|
@ -452,19 +452,23 @@ class TaskExecutor:
|
||||||
|
|
||||||
# helper methods for use below in evaluating changed/failed_when
|
# helper methods for use below in evaluating changed/failed_when
|
||||||
def _evaluate_changed_when_result(result):
|
def _evaluate_changed_when_result(result):
|
||||||
if self._task.changed_when is not None:
|
if self._task.changed_when:
|
||||||
cond = Conditional(loader=self._loader)
|
cond = Conditional(loader=self._loader)
|
||||||
cond.when = [ self._task.changed_when ]
|
cond.when = self._task.changed_when
|
||||||
result['changed'] = cond.evaluate_conditional(templar, vars_copy)
|
result['changed'] = cond.evaluate_conditional(templar, vars_copy)
|
||||||
|
else:
|
||||||
|
result['changed'] = False
|
||||||
|
|
||||||
def _evaluate_failed_when_result(result):
|
def _evaluate_failed_when_result(result):
|
||||||
if self._task.failed_when is not None:
|
if self._task.failed_when:
|
||||||
cond = Conditional(loader=self._loader)
|
cond = Conditional(loader=self._loader)
|
||||||
cond.when = [ self._task.failed_when ]
|
cond.when = self._task.failed_when
|
||||||
failed_when_result = cond.evaluate_conditional(templar, vars_copy)
|
failed_when_result = cond.evaluate_conditional(templar, vars_copy)
|
||||||
result['failed_when_result'] = result['failed'] = failed_when_result
|
result['failed_when_result'] = result['failed'] = failed_when_result
|
||||||
return failed_when_result
|
else:
|
||||||
return False
|
failed_when_result = False
|
||||||
|
result['failed'] = False
|
||||||
|
return failed_when_result
|
||||||
|
|
||||||
if 'ansible_facts' in result:
|
if 'ansible_facts' in result:
|
||||||
vars_copy.update(result['ansible_facts'])
|
vars_copy.update(result['ansible_facts'])
|
||||||
|
@ -482,7 +486,7 @@ class TaskExecutor:
|
||||||
|
|
||||||
if attempt < retries - 1:
|
if attempt < retries - 1:
|
||||||
cond = Conditional(loader=self._loader)
|
cond = Conditional(loader=self._loader)
|
||||||
cond.when = [ self._task.until ]
|
cond.when = self._task.until
|
||||||
if cond.evaluate_conditional(templar, vars_copy):
|
if cond.evaluate_conditional(templar, vars_copy):
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -70,11 +70,11 @@ class Task(Base, Conditional, Taggable, Become):
|
||||||
|
|
||||||
_any_errors_fatal = FieldAttribute(isa='bool')
|
_any_errors_fatal = FieldAttribute(isa='bool')
|
||||||
_async = FieldAttribute(isa='int', default=0)
|
_async = FieldAttribute(isa='int', default=0)
|
||||||
_changed_when = FieldAttribute(isa='string')
|
_changed_when = FieldAttribute(isa='list', default=[])
|
||||||
_delay = FieldAttribute(isa='int', default=5)
|
_delay = FieldAttribute(isa='int', default=5)
|
||||||
_delegate_to = FieldAttribute(isa='string')
|
_delegate_to = FieldAttribute(isa='string')
|
||||||
_delegate_facts = FieldAttribute(isa='bool', default=False)
|
_delegate_facts = FieldAttribute(isa='bool', default=False)
|
||||||
_failed_when = FieldAttribute(isa='string')
|
_failed_when = FieldAttribute(isa='list', default=[])
|
||||||
_first_available_file = FieldAttribute(isa='list')
|
_first_available_file = FieldAttribute(isa='list')
|
||||||
_loop = FieldAttribute(isa='string', private=True)
|
_loop = FieldAttribute(isa='string', private=True)
|
||||||
_loop_args = FieldAttribute(isa='list', private=True)
|
_loop_args = FieldAttribute(isa='list', private=True)
|
||||||
|
@ -83,7 +83,7 @@ class Task(Base, Conditional, Taggable, Become):
|
||||||
_poll = FieldAttribute(isa='int')
|
_poll = FieldAttribute(isa='int')
|
||||||
_register = FieldAttribute(isa='string')
|
_register = FieldAttribute(isa='string')
|
||||||
_retries = FieldAttribute(isa='int', default=3)
|
_retries = FieldAttribute(isa='int', default=3)
|
||||||
_until = FieldAttribute(isa='string')
|
_until = FieldAttribute(isa='list', default=[])
|
||||||
|
|
||||||
def __init__(self, block=None, role=None, task_include=None):
|
def __init__(self, block=None, role=None, task_include=None):
|
||||||
''' constructors a task, without the Task.load classmethod, it will be pretty blank '''
|
''' constructors a task, without the Task.load classmethod, it will be pretty blank '''
|
||||||
|
|
Loading…
Reference in a new issue