Properly template task names

Also fixes in the correct way the bug in which the role name was
incorrectly showing up twice in the task name.

Fixes #10347
This commit is contained in:
James Cammarata 2015-07-23 15:45:36 -04:00
parent 698479a623
commit 7bc789ba64
2 changed files with 7 additions and 2 deletions

View file

@ -97,7 +97,7 @@ class Task(Base, Conditional, Taggable, Become):
def get_name(self):
''' return the name of the task '''
if self._role and self.name and not self.name.startswith("%s :" % self._role.get_name()):
if self._role and self.name:
return "%s : %s" % (self._role.get_name(), self.name)
elif self.name:
return self.name

View file

@ -191,7 +191,12 @@ class StrategyModule(StrategyBase):
if not callback_sent:
temp_task = task.copy()
temp_task.name = templar.template(temp_task.get_name(), fail_on_undefined=False)
try:
temp_task.name = unicode(templar.template(temp_task.name, fail_on_undefined=False))
except:
# just ignore any errors during task name templating,
# we don't care if it just shows the raw name
pass
self._tqm.send_callback('v2_playbook_on_task_start', temp_task, is_conditional=False)
callback_sent = True