diff --git a/heat-config-ansible/install.d/hook-ansible.py b/heat-config-ansible/install.d/hook-ansible.py index 426ee54..b537e11 100755 --- a/heat-config-ansible/install.d/hook-ansible.py +++ b/heat-config-ansible/install.d/hook-ansible.py @@ -51,6 +51,7 @@ def main(argv=sys.argv): variables[input['name']] = input.get('value', '') tags = c['options'].get('tags') + skip_tags = c['options'].get('skip_tags') modulepath = c['options'].get('modulepath') fn = os.path.join(WORKING_DIR, '%s_playbook.yaml' % c['id']) @@ -81,6 +82,9 @@ def main(argv=sys.argv): if tags: cmd.insert(3, '--tags') cmd.insert(4, tags) + if skip_tags: + cmd.insert(3, '--skip-tags') + cmd.insert(4, skip_tags) if modulepath: cmd.insert(3, '--module-path') cmd.insert(4, modulepath) diff --git a/tests/test_hook_ansible.py b/tests/test_hook_ansible.py index 6573a63..0041384 100644 --- a/tests/test_hook_ansible.py +++ b/tests/test_hook_ansible.py @@ -58,6 +58,22 @@ class HookAnsibleTest(common.RunScriptTest): 'tags': 'abc,def'}, }) + data_skip_tags = data.copy() + data_skip_tags.update({'options': {'skip_tags': 'abc,def'}}) + + data_skip_tags_empty = data.copy() + data_skip_tags_empty.update({'options': {'skip_tags': ''}}) + + data_tags_skip_tags = data.copy() + data_tags_skip_tags.update({'options': {'tags': 'abc,def', + 'skip_tags': 'abc'}}) + + data_skip_tags_modulepath = data.copy() + data_skip_tags_modulepath.update({ + 'options': {'modulepath': '/opt/ansible:/usr/share/ansible', + 'skip_tags': 'abc,def'}, + }) + def setUp(self): super(HookAnsibleTest, self).setUp() self.hook_path = self.relative_path( @@ -88,6 +104,18 @@ class HookAnsibleTest(common.RunScriptTest): def test_hook_tags(self): self._hook_run(data=self.data_tags, options=['--tags', 'abc,def']) + def test_hook_skip_tags(self): + self._hook_run(data=self.data_skip_tags, + options=['--skip-tags', 'abc,def']) + + def test_hook_skip_tags_empty(self): + self._hook_run(data=self.data_skip_tags_empty) + + def test_hook_tags_skip_tags(self): + self._hook_run(data=self.data_tags_skip_tags, + options=['--skip-tags', 'abc', + '--tags', 'abc,def']) + def test_hook_modulepath(self): self._hook_run(data=self.data_modulepath, options=['--module-path', @@ -99,6 +127,12 @@ class HookAnsibleTest(common.RunScriptTest): '/opt/ansible:/usr/share/ansible', '--tags', 'abc,def']) + def test_hook_skip_tags_modulepath(self): + self._hook_run(data=self.data_skip_tags_modulepath, + options=['--module-path', + '/opt/ansible:/usr/share/ansible', + '--skip-tags', 'abc,def']) + def _hook_run(self, data=None, options=None): self.env.update({