Add --skip-tags to ansible hook

We recently added --tags, but exposing --skip-tags can also
be useful (we want to use it in tripleo to optionally skip
validation tasks when resuming upgrades from a failed state).

Change-Id: I18214f80be9f3ad6c2d385fc00f3b786d3e7dda3
This commit is contained in:
Steven Hardy 2017-01-23 16:09:55 +00:00
parent e96dc0ecf6
commit 93517603eb
2 changed files with 38 additions and 0 deletions

View File

@ -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)

View File

@ -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({