Merge pull request #12861 from willthames/galaxy_spec_in_meta_main_fix

Allow meta/main.yml to include roles through spec file
This commit is contained in:
Brian Coca
2015-10-22 08:01:02 -04:00
3 changed files with 5 additions and 2 deletions

View File

@@ -27,6 +27,7 @@ from ansible.errors import AnsibleError, AnsibleParserError
from ansible.parsing.yaml.objects import AnsibleBaseYAMLObject
from ansible.playbook.attribute import Attribute, FieldAttribute
from ansible.playbook.role.definition import RoleDefinition
from ansible.playbook.role.requirement import RoleRequirement
__all__ = ['RoleInclude']
@@ -47,6 +48,8 @@ class RoleInclude(RoleDefinition):
def load(data, play, current_role_path=None, parent_role=None, variable_manager=None, loader=None):
assert isinstance(data, string_types) or isinstance(data, dict) or isinstance(data, AnsibleBaseYAMLObject)
if isinstance(data, string_types) and ',' in data:
data = RoleRequirement.role_spec_parse(data)
ri = RoleInclude(play=play, role_basedir=current_role_path, variable_manager=variable_manager, loader=loader)
return ri.load_data(data, variable_manager=variable_manager, loader=loader)