From f6aba06ce8a75d79312bbbdd3cd7696029870e0d Mon Sep 17 00:00:00 2001 From: David Galloway Date: Thu, 5 Apr 2018 10:42:02 -0400 Subject: [PATCH] ansible: Add ability to skip tags during ansible task Signed-off-by: David Galloway --- teuthology/task/ansible.py | 6 ++++++ teuthology/test/task/test_ansible.py | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/teuthology/task/ansible.py b/teuthology/task/ansible.py index baf5d5a806..f0ad662f7d 100644 --- a/teuthology/task/ansible.py +++ b/teuthology/task/ansible.py @@ -62,6 +62,8 @@ class Ansible(Task): not, we generate a temporary file to use. tags: A string including any (comma-separated) tags to be passed directly to ansible-playbook. + skip_tags: A string of comma-separated tags that will be skipped by + passing them to ansible-playbook using --skip-tags. vars: A dict of vars to be passed to ansible-playbook via the --extra-vars flag group_vars: A dict with keys matching relevant group names in the @@ -96,6 +98,7 @@ class Ansible(Task): inventory: /path/to/inventory playbook: /path/to/playbook.yml tags: my_tags + skip_tags: my_skipped_tags vars: var1: string_value var2: @@ -353,6 +356,9 @@ class Ansible(Task): tags = self.config.get('tags') if tags: args.extend(['--tags', tags]) + skip_tags = self.config.get('skip_tags') + if skip_tags: + args.extend(['--skip-tags', skip_tags]) return args def teardown(self): diff --git a/teuthology/test/task/test_ansible.py b/teuthology/test/task/test_ansible.py index 790bf2a13f..a255e5e9d7 100644 --- a/teuthology/test/task/test_ansible.py +++ b/teuthology/test/task/test_ansible.py @@ -392,6 +392,17 @@ class TestAnsibleTask(TestTask): assert args.count('--tags') == 1 assert args[args.index('--tags') + 1] == 'user,pubkeys' + def test_build_args_skip_tags(self): + self.task_config.update(dict( + playbook=[], + skip_tags="user,pubkeys" + )) + task = self.klass(self.ctx, self.task_config) + task.setup() + args = task._build_args() + assert args.count('--skip-tags') == 1 + assert args[args.index('--skip-tags') + 1] == 'user,pubkeys' + def test_build_args_no_vars(self): self.task_config.update(dict( playbook=[], -- 2.39.5