From e7a733a6be7a0ae1e622267c43d389864ccd1a10 Mon Sep 17 00:00:00 2001 From: Stoned Elipot Date: Sat, 20 Jul 2013 23:25:46 +0200 Subject: [PATCH] Quote pathnames of roles' tasks and handlers files so that _load_tasks() can tokenize them properly With the help of AlejandroTrev's eagle eyes. Thanks ! --- lib/ansible/playbook/play.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index 01cb30fa919..c539162778c 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -21,6 +21,7 @@ from ansible.utils.template import template from ansible import utils from ansible import errors from ansible.playbook.task import Task +import pipes import shlex import os @@ -185,13 +186,13 @@ class Play(object): if not os.path.isfile(task) and not os.path.isfile(handler) and not os.path.isfile(vars_file) and not os.path.isdir(library): raise errors.AnsibleError("found role at %s, but cannot find %s or %s or %s or %s" % (path, task, handler, vars_file, library)) if os.path.isfile(task): - nt = dict(include=task, vars=has_dict) + nt = dict(include=pipes.quote(task), vars=has_dict) for k in special_keys: if k in special_vars: nt[k] = special_vars[k] new_tasks.append(nt) if os.path.isfile(handler): - nt = dict(include=handler, vars=has_dict) + nt = dict(include=pipes.quote(handler), vars=has_dict) for k in special_keys: if k in special_vars: nt[k] = special_vars[k]