diff --git a/bin/ansible-galaxy b/bin/ansible-galaxy index 5b1b815133e..075fbd6a6f5 100755 --- a/bin/ansible-galaxy +++ b/bin/ansible-galaxy @@ -780,7 +780,7 @@ def execute_install(args, options, parser): # we're done with the temp file, clean it up os.unlink(tmp_file) # install dependencies, if we want them - if not no_deps: + if not no_deps and installed: if not role_data: role_data = get_role_metadata(role.get("name"), options) role_dependencies = role_data['dependencies'] @@ -792,12 +792,15 @@ def execute_install(args, options, parser): else: dep = ansible.utils.role_yaml_parse(dep) if not get_role_metadata(dep["name"], options): - print '- adding dependency: %s' % dep["name"] - roles_left.append(dep) + if dep not in roles_left: + print '- adding dependency: %s' % dep["name"] + roles_left.append(dep) + else: + print '- dependency %s already pending installation.' % dep["name"] else: print '- dependency %s is already installed, skipping.' % dep["name"] if not tmp_file or not installed: - if tmp_file: + if tmp_file and installed: os.unlink(tmp_file) print "- %s was NOT installed successfully." % role.get("name") exit_without_ignore(options)