Quote -e arg in ansible-playbook-command.sh

When ansible-playbook-command.sh is generated, the argument to -e is an
inlined JSON dict. In order for the script to parse this a s ginle
argument, it needs to be single quoted.

Change-Id: I750d780a8b091804fbde77db3d275c081d13bdf8
Signed-off-by: James Slagle <jslagle@redhat.com>
This commit is contained in:
James Slagle 2021-04-22 21:25:44 -04:00
parent 6568a7953b
commit 1541eaafa9
1 changed files with 4 additions and 1 deletions

View File

@ -696,7 +696,10 @@ def run_ansible_playbook(playbook, inventory, workdir, playbook_dir=None,
for key, value in r_opts['envvars'].items():
f.write('export {}="{}"\n'.format(key, value))
f.write('echo -e "Running Ansible command"\n')
f.write('{} "$@"\n'.format(' '.join(runner_config.command)))
args = '{} "$@"\n'.format(' '.join(runner_config.command))
# Single quote the dict passed to -e
args = re.sub('({.*})', '\'\\1\'', args)
f.write(args)
os.chmod(command_path, 0o750)
try: