From 347b28252a407f106320999899aeb6bbf8a1b7fe Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Thu, 11 Feb 2016 14:14:37 -0500 Subject: [PATCH] allow skipping tasks due to undefined var mimic 1.x behaviour but give out big deprecation message, not only for missing attribute but any undefined error. --- lib/ansible/executor/task_executor.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/ansible/executor/task_executor.py b/lib/ansible/executor/task_executor.py index 4b7069cb7a..2af5908a27 100644 --- a/lib/ansible/executor/task_executor.py +++ b/lib/ansible/executor/task_executor.py @@ -178,21 +178,15 @@ class TaskExecutor: # first_found loops are special. If the item is undefined # then we want to fall through to the next value rather # than failing. - loop_terms = listify_lookup_plugin_terms(terms=self._task.loop_args, templar=templar, - loader=self._loader, fail_on_undefined=False, convert_bare=True) + loop_terms = listify_lookup_plugin_terms(terms=self._task.loop_args, templar=templar, loader=self._loader, fail_on_undefined=False, convert_bare=True) loop_terms = [t for t in loop_terms if not templar._contains_vars(t)] else: try: - loop_terms = listify_lookup_plugin_terms(terms=self._task.loop_args, templar=templar, - loader=self._loader, fail_on_undefined=True, convert_bare=True) + loop_terms = listify_lookup_plugin_terms(terms=self._task.loop_args, templar=templar, loader=self._loader, fail_on_undefined=True, convert_bare=True) except AnsibleUndefinedVariable as e: - if u'has no attribute' in to_unicode(e): - loop_terms = [] - display.deprecated("Skipping task due to undefined attribute, in the future this will be a fatal error.") - else: - raise - items = self._shared_loader_obj.lookup_loader.get(self._task.loop, loader=self._loader, - templar=templar).run(terms=loop_terms, variables=self._job_vars) + loop_terms = [] + display.deprecated("Skipping task due to undefined Error, in the future this will be a fatal error.") + items = self._shared_loader_obj.lookup_loader.get(self._task.loop, loader=self._loader, templar=templar).run(terms=loop_terms, variables=self._job_vars) else: raise AnsibleError("Unexpected failure in finding the lookup named '%s' in the available lookup plugins" % self._task.loop)