Enable the use of a non-standard module-path for ansible.

This mirror the puppet hook.

Closes-Bug: #1651825
Change-Id: I19006c531591e9c02a95448007707c3f4a013633
This commit is contained in:
Sofer Athlan-Guyot 2016-12-21 12:31:50 +01:00
parent e7d7ad2e1c
commit 7e98f208ed
2 changed files with 27 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')
modulepath = c['options'].get('modulepath')
fn = os.path.join(WORKING_DIR, '%s_playbook.yaml' % c['id'])
vars_filename = os.path.join(WORKING_DIR, '%s_variables.json' % c['id'])
@ -80,6 +81,10 @@ def main(argv=sys.argv):
if tags:
cmd.insert(3, '--tags')
cmd.insert(4, tags)
if modulepath:
cmd.insert(3, '--module-path')
cmd.insert(4, modulepath)
log.debug('Running %s' % (' '.join(cmd),))
try:
subproc = subprocess.Popen(cmd, stdout=subprocess.PIPE,

View File

@ -47,6 +47,17 @@ class HookAnsibleTest(common.RunScriptTest):
'config': 'the ansible playbook'
}
data_modulepath = data.copy()
data_modulepath.update({
'options': {'modulepath': '/opt/ansible:/usr/share/ansible'},
})
data_tags_modulepath = data.copy()
data_tags_modulepath.update({
'options': {'modulepath': '/opt/ansible:/usr/share/ansible',
'tags': 'abc,def'},
})
def setUp(self):
super(HookAnsibleTest, self).setUp()
self.hook_path = self.relative_path(
@ -78,6 +89,17 @@ class HookAnsibleTest(common.RunScriptTest):
def test_hook_tags(self):
self._hook_run(data=self.data_tags, options=['--tags', 'abc,def'])
def test_hook_modulepath(self):
self._hook_run(data=self.data_modulepath,
options=['--module-path',
'/opt/ansible:/usr/share/ansible'])
def test_hook_tags_modulepath(self):
self._hook_run(data=self.data_tags_modulepath,
options=['--module-path',
'/opt/ansible:/usr/share/ansible',
'--tags', 'abc,def'])
def _hook_run(self, data=None, options=None):
self.env.update({