Merge "Add backward compatibility for old ansible_runner releases"
This commit is contained in:
commit
bc1ef1ce8f
|
@ -15,6 +15,7 @@
|
|||
|
||||
import ansible_runner
|
||||
import logging
|
||||
import pkg_resources
|
||||
import pwd
|
||||
import os
|
||||
import six
|
||||
|
@ -35,6 +36,12 @@ try:
|
|||
except NameError:
|
||||
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):
|
||||
|
||||
|
@ -309,22 +316,29 @@ class Ansible(object):
|
|||
elif 'ANSIBLE_CONFIG' not in env and ansible_cfg:
|
||||
env['ANSIBLE_CONFIG'] = ansible_cfg
|
||||
|
||||
envvars = self._encode_envvars(env=env)
|
||||
r_opts = {
|
||||
'private_data_dir': workdir,
|
||||
'project_dir': playbook_dir,
|
||||
'inventory': self._inventory(inventory, ansible_artifact_path),
|
||||
'envvars': self._encode_envvars(env=env),
|
||||
'playbook': playbook,
|
||||
'verbosity': verbosity,
|
||||
'quiet': quiet,
|
||||
'extravars': extravars,
|
||||
'fact_cache': ansible_artifact_path,
|
||||
'fact_cache_type': 'jsonfile',
|
||||
'artifact_dir': workdir,
|
||||
'rotate_artifacts': 256,
|
||||
'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:
|
||||
r_opts['skip_tags'] = skip_tags
|
||||
|
||||
|
@ -346,7 +360,9 @@ class Ansible(object):
|
|||
# is merged and released. After this PR has been
|
||||
# made available to us, this line should be removed.
|
||||
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)
|
||||
|
||||
status, rc = runner.run()
|
||||
|
|
Loading…
Reference in New Issue