diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index d37086c14ef..bf27bfc8578 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -178,6 +178,10 @@ class Play(object): returns any variables that were included with the role """ orig_path = template(self.basedir,role,self.vars) + if '+' in orig_path and '://' in orig_path: + # dependency name pointing to SCM URL + # assume role name is last part of the URL + orig_path = orig_path.split('/')[-1] role_vars = {} if type(orig_path) == dict: @@ -412,6 +416,8 @@ class Play(object): role_name = role['role'] else: role_name = role + if '+' in role_name and '://' in role_name: + role_name = role_name.split('/')[-1] role_names.append(role_name) if os.path.isfile(task):