Fix galaxy role upgrade

It is necessary to pass the --force flag to ansible-galaxy to ensure roles are
upgraded during kayobe control host upgrade.
This commit is contained in:
Mark Goddard 2017-09-11 11:47:22 +01:00
parent cb4e45b971
commit e7e4344509
2 changed files with 6 additions and 2 deletions

View File

@ -127,7 +127,9 @@ class ControlHostUpgrade(KayobeAnsibleMixin, VaultMixin, Command):
def take_action(self, parsed_args):
self.app.LOG.debug("Upgrading Kayobe control host")
utils.galaxy_install("ansible/requirements.yml", "ansible/roles")
# Use force to upgrade roles.
utils.galaxy_install("ansible/requirements.yml", "ansible/roles",
force=True)
playbooks = _build_playbook_list("bootstrap")
self.run_kayobe_playbooks(parsed_args, playbooks)
playbooks = _build_playbook_list("kolla-ansible")

View File

@ -36,11 +36,13 @@ def yum_install(packages):
sys.exit(e.returncode)
def galaxy_install(role_file, roles_path):
def galaxy_install(role_file, roles_path, force=False):
"""Install Ansible roles via Ansible Galaxy."""
cmd = ["ansible-galaxy", "install"]
cmd += ["--roles-path", roles_path]
cmd += ["--role-file", role_file]
if force:
cmd += ["--force"]
try:
run_command(cmd)
except subprocess.CalledProcessError as e: