From 79e364d98b7b309f4c22301d1d68d7e9e3f84b4f Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Tue, 29 Sep 2015 09:55:40 -0400 Subject: [PATCH] Properly template role dependency names Fixes #12505 --- lib/ansible/playbook/role/__init__.py | 2 +- lib/ansible/playbook/role/definition.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/ansible/playbook/role/__init__.py b/lib/ansible/playbook/role/__init__.py index f760245bceb..d53a0a135b2 100644 --- a/lib/ansible/playbook/role/__init__.py +++ b/lib/ansible/playbook/role/__init__.py @@ -168,7 +168,7 @@ class Role(Base, Become, Conditional, Taggable): # load the role's other files, if they exist metadata = self._load_role_yaml('meta') if metadata: - self._metadata = RoleMetadata.load(metadata, owner=self, loader=self._loader) + self._metadata = RoleMetadata.load(metadata, owner=self, variable_manager=self._variable_manager, loader=self._loader) self._dependencies = self._load_dependencies() else: self._metadata = RoleMetadata() diff --git a/lib/ansible/playbook/role/definition.py b/lib/ansible/playbook/role/definition.py index 2d46cb7ddde..5941d1554d0 100644 --- a/lib/ansible/playbook/role/definition.py +++ b/lib/ansible/playbook/role/definition.py @@ -160,7 +160,10 @@ class RoleDefinition(Base, Become, Conditional, Taggable): role_search_paths.append(self._role_basedir) # now iterate through the possible paths and return the first one we find + all_vars = self._variable_manager.get_vars(loader=self._loader, play=self._play) + templar = Templar(loader=self._loader, variables=all_vars) for path in role_search_paths: + path = templar.template(path) role_path = unfrackpath(os.path.join(path, role_name)) if self._loader.path_exists(role_path): return (role_name, role_path)