summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2014-08-11 13:13:48 -0500
committerJames Cammarata <jimi@sngx.net>2014-08-14 15:02:12 -0500
commitd07107ab71ea60f174fac40681cd7b30e88a33ab (patch)
tree83ab4e78ba86f151e6c4d0e777b907472049c7d7
parent165572fbb813e68a9c8a9b48304be6ea18f45dd5 (diff)
downloadansible-d07107ab71ea60f174fac40681cd7b30e88a33ab.tar.gz
Remove duplicate compiling of task when: statements
Fixes #8538
-rw-r--r--lib/ansible/playbook/play.py6
-rw-r--r--lib/ansible/playbook/task.py5
2 files changed, 3 insertions, 8 deletions
diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py
index 2a1d570c7e..f665ed76d2 100644
--- a/lib/ansible/playbook/play.py
+++ b/lib/ansible/playbook/play.py
@@ -561,12 +561,6 @@ class Play(object):
if 'vars' in x:
task_vars = utils.combine_vars(task_vars, x['vars'])
- if 'when' in x:
- if isinstance(x['when'], (basestring, bool)):
- included_additional_conditions.append(x['when'])
- elif isinstance(x['when'], list):
- included_additional_conditions.extend(x['when'])
-
new_role = None
if 'role_name' in x:
new_role = x['role_name']
diff --git a/lib/ansible/playbook/task.py b/lib/ansible/playbook/task.py
index 1148e7454c..793e29ec5f 100644
--- a/lib/ansible/playbook/task.py
+++ b/lib/ansible/playbook/task.py
@@ -300,6 +300,7 @@ class Task(object):
self.tags.extend(import_tags)
if additional_conditions:
- new_conditions = additional_conditions
- new_conditions.append(self.when)
+ new_conditions = additional_conditions[:]
+ if self.when:
+ new_conditions.append(self.when)
self.when = new_conditions