From e7e43445097c35fde1f47e10914b962e55699cd6 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 11 Sep 2017 11:47:22 +0100 Subject: [PATCH] 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. --- kayobe/cli/commands.py | 4 +++- kayobe/utils.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kayobe/cli/commands.py b/kayobe/cli/commands.py index 62aff0fcc..6157a4638 100644 --- a/kayobe/cli/commands.py +++ b/kayobe/cli/commands.py @@ -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") diff --git a/kayobe/utils.py b/kayobe/utils.py index 08d4c1d0b..6e41a0287 100644 --- a/kayobe/utils.py +++ b/kayobe/utils.py @@ -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: