Merge "Add backward compatibility for old ansible_runner releases"

This commit is contained in:
Zuul 2020-04-01 11:14:05 +00:00 committed by Gerrit Code Review
commit bc1ef1ce8f
1 changed files with 21 additions and 5 deletions

View File

@ -15,6 +15,7 @@
import ansible_runner import ansible_runner
import logging import logging
import pkg_resources
import pwd import pwd
import os import os
import six import six
@ -35,6 +36,12 @@ try:
except NameError: except NameError:
FileExistsError = OSError FileExistsError = OSError
try:
version = pkg_resources.get_distribution("ansible_runner").version
backward_compat = (version < '1.4.4')
except pkg_resources.DistributionNotFound:
backward_compat = False
class Ansible(object): class Ansible(object):
@ -309,22 +316,29 @@ class Ansible(object):
elif 'ANSIBLE_CONFIG' not in env and ansible_cfg: elif 'ANSIBLE_CONFIG' not in env and ansible_cfg:
env['ANSIBLE_CONFIG'] = ansible_cfg env['ANSIBLE_CONFIG'] = ansible_cfg
envvars = self._encode_envvars(env=env)
r_opts = { r_opts = {
'private_data_dir': workdir, 'private_data_dir': workdir,
'project_dir': playbook_dir,
'inventory': self._inventory(inventory, ansible_artifact_path), 'inventory': self._inventory(inventory, ansible_artifact_path),
'envvars': self._encode_envvars(env=env),
'playbook': playbook, 'playbook': playbook,
'verbosity': verbosity, 'verbosity': verbosity,
'quiet': quiet, 'quiet': quiet,
'extravars': extravars, 'extravars': extravars,
'fact_cache': ansible_artifact_path,
'fact_cache_type': 'jsonfile',
'artifact_dir': workdir, 'artifact_dir': workdir,
'rotate_artifacts': 256, 'rotate_artifacts': 256,
'ident': '' 'ident': ''
} }
if not backward_compat:
r_opts.update({
'envvars': envvars,
'project_dir': playbook_dir,
'fact_cache': ansible_artifact_path,
'fact_cache_type': 'jsonfile'
})
else:
parallel_run = False
if skip_tags: if skip_tags:
r_opts['skip_tags'] = skip_tags r_opts['skip_tags'] = skip_tags
@ -346,7 +360,9 @@ class Ansible(object):
# is merged and released. After this PR has been # is merged and released. After this PR has been
# made available to us, this line should be removed. # made available to us, this line should be removed.
runner_config.env['ANSIBLE_STDOUT_CALLBACK'] = \ runner_config.env['ANSIBLE_STDOUT_CALLBACK'] = \
r_opts['envvars']['ANSIBLE_STDOUT_CALLBACK'] envvars['ANSIBLE_STDOUT_CALLBACK']
if backward_compat:
runner_config.env.update(envvars)
runner = ansible_runner.Runner(config=runner_config) runner = ansible_runner.Runner(config=runner_config)
status, rc = runner.run() status, rc = runner.run()