From 07833ad5726b7a57a55e7c701cd1624eb25e9890 Mon Sep 17 00:00:00 2001 From: Luke Short Date: Tue, 26 Nov 2019 10:35:48 -0500 Subject: [PATCH] Add config_download_args to the deployment workflow. This will allow additional arguments to be passed directly to the ansible-playbook command. Change-Id: I0637f5c2b149017ae5630c3a93e46c45d7662786 Signed-off-by: Luke Short --- tripleo_common/actions/ansible.py | 5 +++++ tripleo_common/tests/actions/test_ansible.py | 5 +++-- workbooks/deployment.yaml | 2 ++ workbooks/package_update.yaml | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tripleo_common/actions/ansible.py b/tripleo_common/actions/ansible.py index 2d9f36380..5bcf66ea1 100644 --- a/tripleo_common/actions/ansible.py +++ b/tripleo_common/actions/ansible.py @@ -186,6 +186,8 @@ class AnsiblePlaybookAction(base.TripleOAction): 'use_openstack_credentials', False) self.tags = self._kwargs_for_run.pop('tags', None) self.skip_tags = self._kwargs_for_run.pop('skip_tags', None) + self.config_download_args = self._kwargs_for_run.pop( + 'config_download_args', None) self.extra_env_variables = self._kwargs_for_run.pop( 'extra_env_variables', None) self.queue_name = self._kwargs_for_run.pop('queue_name', None) @@ -379,6 +381,9 @@ class AnsiblePlaybookAction(base.TripleOAction): if self.skip_tags: command.extend(['--skip-tags', self.skip_tags]) + if self.config_download_args: + command.extend(self.config_download_args) + if self.extra_env_variables: if not isinstance(self.extra_env_variables, dict): msg = "extra_env_variables must be a dict" diff --git a/tripleo_common/tests/actions/test_ansible.py b/tripleo_common/tests/actions/test_ansible.py index 1aada2428..34cb87f4d 100644 --- a/tripleo_common/tests/actions/test_ansible.py +++ b/tripleo_common/tests/actions/test_ansible.py @@ -54,7 +54,8 @@ class AnsiblePlaybookActionTest(base.TestCase): playbook=self.playbook, limit_hosts=self.limit_hosts, remote_user=self.remote_user, become=self.become, become_user=self.become_user, extra_vars=self.extra_vars, - verbosity=self.verbosity) + verbosity=self.verbosity, config_download_args=['--check', + '--diff']) ansible_config_path = os.path.join(action.work_dir, 'ansible.cfg') mock_write_cfg.return_value = ansible_config_path @@ -79,7 +80,7 @@ class AnsiblePlaybookActionTest(base.TestCase): ansible_playbook_cmd, '-v', pb, '--become', '--become-user', self.become_user, '--extra-vars', json.dumps(self.extra_vars), - env_variables=env, cwd=action.work_dir, + '--check', '--diff', env_variables=env, cwd=action.work_dir, log_errors=processutils.LogErrors.ALL) @mock.patch("tripleo_common.actions.ansible.write_default_ansible_cfg") diff --git a/workbooks/deployment.yaml b/workbooks/deployment.yaml index a08529852..f46586280 100644 --- a/workbooks/deployment.yaml +++ b/workbooks/deployment.yaml @@ -389,6 +389,7 @@ workflows: - playbook_name: deploy_steps_playbook.yaml - deployment_options: {} - skip_tags: "" + - config_download_args: [] tags: - tripleo-common-managed @@ -535,6 +536,7 @@ workflows: execution_id: <% execution().id %> limit_hosts: <% $.nodes and list(task(uuids_to_names).result.instance_info.display_name).join(',') or false %> skip_tags: <% $.skip_tags %> + config_download_args: <% $.config_download_args %> publish: log_path: <% task().result.get('log_path') %> deployment_status: DEPLOY_SUCCESS diff --git a/workbooks/package_update.yaml b/workbooks/package_update.yaml index b60e41d8f..764d50e61 100644 --- a/workbooks/package_update.yaml +++ b/workbooks/package_update.yaml @@ -139,6 +139,7 @@ workflows: - tags: '' - skip_tags: '' - extra_vars: '' + - config_download_args: [] tags: - tripleo-common-managed