From: David Galloway Date: Thu, 5 Apr 2018 14:42:02 +0000 (-0400) Subject: ansible: Add ability to skip tags during ansible task X-Git-Tag: 1.1.0~352^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f6aba06ce8a75d79312bbbdd3cd7696029870e0d;p=teuthology.git ansible: Add ability to skip tags during ansible task Signed-off-by: David Galloway --- diff --git a/teuthology/task/ansible.py b/teuthology/task/ansible.py index baf5d5a80..f0ad662f7 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 790bf2a13..a255e5e9d 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=[],