mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Merge pull request #15845 from abadger/ziploader-constants
Ship constants to the modules via internal module params rather than a secondary dict
This commit is contained in:
commit
c1cc9f1f23
11 changed files with 42 additions and 39 deletions
|
@ -388,12 +388,6 @@ def _get_shebang(interpreter, task_vars, args=tuple()):
|
||||||
|
|
||||||
return (shebang, interpreter)
|
return (shebang, interpreter)
|
||||||
|
|
||||||
def _get_facility(task_vars):
|
|
||||||
facility = C.DEFAULT_SYSLOG_FACILITY
|
|
||||||
if 'ansible_syslog_facility' in task_vars:
|
|
||||||
facility = task_vars['ansible_syslog_facility']
|
|
||||||
return facility
|
|
||||||
|
|
||||||
def recursive_finder(name, data, py_module_names, py_module_cache, zf):
|
def recursive_finder(name, data, py_module_names, py_module_cache, zf):
|
||||||
"""
|
"""
|
||||||
Using ModuleDepFinder, make sure we have all of the module_utils files that
|
Using ModuleDepFinder, make sure we have all of the module_utils files that
|
||||||
|
@ -539,15 +533,7 @@ def _find_snippet_imports(module_name, module_data, module_path, module_args, ta
|
||||||
py_module_names = set()
|
py_module_names = set()
|
||||||
|
|
||||||
if module_substyle == 'python':
|
if module_substyle == 'python':
|
||||||
# ziploader for new-style python classes
|
params = dict(ANSIBLE_MODULE_ARGS=module_args,)
|
||||||
constants = dict(
|
|
||||||
SELINUX_SPECIAL_FS=C.DEFAULT_SELINUX_SPECIAL_FS,
|
|
||||||
SYSLOG_FACILITY=_get_facility(task_vars),
|
|
||||||
ANSIBLE_VERSION=__version__,
|
|
||||||
)
|
|
||||||
params = dict(ANSIBLE_MODULE_ARGS=module_args,
|
|
||||||
ANSIBLE_MODULE_CONSTANTS=constants,
|
|
||||||
)
|
|
||||||
python_repred_params = to_bytes(repr(json.dumps(params)), errors='strict')
|
python_repred_params = to_bytes(repr(json.dumps(params)), errors='strict')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -697,7 +683,7 @@ def _find_snippet_imports(module_name, module_data, module_path, module_args, ta
|
||||||
# The main event -- substitute the JSON args string into the module
|
# The main event -- substitute the JSON args string into the module
|
||||||
module_data = module_data.replace(REPLACER_JSONARGS, module_args_json)
|
module_data = module_data.replace(REPLACER_JSONARGS, module_args_json)
|
||||||
|
|
||||||
facility = b'syslog.' + to_bytes(_get_facility(task_vars), errors='strict')
|
facility = b'syslog.' + to_bytes(task_vars.get('ansible_syslog_facility', C.DEFAULT_SYSLOG_FACILITY), errors='strict')
|
||||||
module_data = module_data.replace(b'syslog.LOG_USER', facility)
|
module_data = module_data.replace(b'syslog.LOG_USER', facility)
|
||||||
|
|
||||||
return (module_data, module_style, shebang)
|
return (module_data, module_style, shebang)
|
||||||
|
|
|
@ -558,7 +558,7 @@ class AnsibleModule(object):
|
||||||
self.run_command_environ_update = {}
|
self.run_command_environ_update = {}
|
||||||
|
|
||||||
self.aliases = {}
|
self.aliases = {}
|
||||||
self._legal_inputs = ['_ansible_check_mode', '_ansible_no_log', '_ansible_debug', '_ansible_diff', '_ansible_verbosity']
|
self._legal_inputs = ['_ansible_check_mode', '_ansible_no_log', '_ansible_debug', '_ansible_diff', '_ansible_verbosity', '_ansible_selinux_special_fs', '_ansible_version', '_ansible_syslog_facility']
|
||||||
|
|
||||||
if add_file_common_args:
|
if add_file_common_args:
|
||||||
for k, v in FILE_COMMON_ARGUMENTS.items():
|
for k, v in FILE_COMMON_ARGUMENTS.items():
|
||||||
|
@ -782,7 +782,7 @@ class AnsibleModule(object):
|
||||||
(device, mount_point, fstype, options, rest) = line.split(' ', 4)
|
(device, mount_point, fstype, options, rest) = line.split(' ', 4)
|
||||||
|
|
||||||
if path_mount_point == mount_point:
|
if path_mount_point == mount_point:
|
||||||
for fs in self.constants['SELINUX_SPECIAL_FS']:
|
for fs in self._selinux_special_fs:
|
||||||
if fs in fstype:
|
if fs in fstype:
|
||||||
special_context = self.selinux_context(path_mount_point)
|
special_context = self.selinux_context(path_mount_point)
|
||||||
return (True, special_context)
|
return (True, special_context)
|
||||||
|
@ -1175,6 +1175,7 @@ class AnsibleModule(object):
|
||||||
return aliases_results
|
return aliases_results
|
||||||
|
|
||||||
def _check_arguments(self, check_invalid_arguments):
|
def _check_arguments(self, check_invalid_arguments):
|
||||||
|
self._syslog_facility = 'LOG_USER'
|
||||||
for (k,v) in list(self.params.items()):
|
for (k,v) in list(self.params.items()):
|
||||||
|
|
||||||
if k == '_ansible_check_mode' and v:
|
if k == '_ansible_check_mode' and v:
|
||||||
|
@ -1194,6 +1195,15 @@ class AnsibleModule(object):
|
||||||
elif k == '_ansible_verbosity':
|
elif k == '_ansible_verbosity':
|
||||||
self._verbosity = v
|
self._verbosity = v
|
||||||
|
|
||||||
|
elif k == '_ansible_selinux_special_fs':
|
||||||
|
self._selinux_special_fs = v
|
||||||
|
|
||||||
|
elif k == '_ansible_syslog_facility':
|
||||||
|
self._syslog_facility = v
|
||||||
|
|
||||||
|
elif k == '_ansible_version':
|
||||||
|
self.ansible_version = v
|
||||||
|
|
||||||
elif check_invalid_arguments and k not in self._legal_inputs:
|
elif check_invalid_arguments and k not in self._legal_inputs:
|
||||||
self.fail_json(msg="unsupported parameter for module: %s" % k)
|
self.fail_json(msg="unsupported parameter for module: %s" % k)
|
||||||
|
|
||||||
|
@ -1505,7 +1515,6 @@ class AnsibleModule(object):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.params = params['ANSIBLE_MODULE_ARGS']
|
self.params = params['ANSIBLE_MODULE_ARGS']
|
||||||
self.constants = params['ANSIBLE_MODULE_CONSTANTS']
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# This helper used too early for fail_json to work.
|
# This helper used too early for fail_json to work.
|
||||||
print('\n{"msg": "Error: Module unable to locate ANSIBLE_MODULE_ARGS and ANSIBLE_MODULE_CONSTANTS in json data from stdin. Unable to figure out what parameters were passed", "failed": true}')
|
print('\n{"msg": "Error: Module unable to locate ANSIBLE_MODULE_ARGS and ANSIBLE_MODULE_CONSTANTS in json data from stdin. Unable to figure out what parameters were passed", "failed": true}')
|
||||||
|
@ -1514,7 +1523,7 @@ class AnsibleModule(object):
|
||||||
def _log_to_syslog(self, msg):
|
def _log_to_syslog(self, msg):
|
||||||
if HAS_SYSLOG:
|
if HAS_SYSLOG:
|
||||||
module = 'ansible-%s' % os.path.basename(__file__)
|
module = 'ansible-%s' % os.path.basename(__file__)
|
||||||
facility = getattr(syslog, self.constants.get('SYSLOG_FACILITY', 'LOG_USER'), syslog.LOG_USER)
|
facility = getattr(syslog, self._syslog_facility, syslog.LOG_USER)
|
||||||
syslog.openlog(str(module), 0, facility)
|
syslog.openlog(str(module), 0, facility)
|
||||||
syslog.syslog(syslog.LOG_INFO, msg)
|
syslog.syslog(syslog.LOG_INFO, msg)
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,7 @@ def rax_required_together():
|
||||||
|
|
||||||
def setup_rax_module(module, rax_module, region_required=True):
|
def setup_rax_module(module, rax_module, region_required=True):
|
||||||
"""Set up pyrax in a standard way for all modules"""
|
"""Set up pyrax in a standard way for all modules"""
|
||||||
rax_module.USER_AGENT = 'ansible/%s %s' % (module.constants['ANSIBLE_VERSION'],
|
rax_module.USER_AGENT = 'ansible/%s %s' % (module.ansible_version,
|
||||||
rax_module.USER_AGENT)
|
rax_module.USER_AGENT)
|
||||||
|
|
||||||
api_key = module.params.get('api_key')
|
api_key = module.params.get('api_key')
|
||||||
|
|
|
@ -35,6 +35,7 @@ from ansible.compat.six import binary_type, text_type, iteritems, with_metaclass
|
||||||
from ansible import constants as C
|
from ansible import constants as C
|
||||||
from ansible.errors import AnsibleError, AnsibleConnectionFailure
|
from ansible.errors import AnsibleError, AnsibleConnectionFailure
|
||||||
from ansible.executor.module_common import modify_module
|
from ansible.executor.module_common import modify_module
|
||||||
|
from ansible.release import __version__
|
||||||
from ansible.parsing.utils.jsonify import jsonify
|
from ansible.parsing.utils.jsonify import jsonify
|
||||||
from ansible.utils.unicode import to_bytes, to_unicode
|
from ansible.utils.unicode import to_bytes, to_unicode
|
||||||
|
|
||||||
|
@ -570,6 +571,15 @@ class ActionBase(with_metaclass(ABCMeta, object)):
|
||||||
# let module know our verbosity
|
# let module know our verbosity
|
||||||
module_args['_ansible_verbosity'] = display.verbosity
|
module_args['_ansible_verbosity'] = display.verbosity
|
||||||
|
|
||||||
|
# give the module information about the ansible version
|
||||||
|
module_args['_ansible_version'] = __version__
|
||||||
|
|
||||||
|
# set the syslog facility to be used in the module
|
||||||
|
module_args['_ansible_syslog_facility'] = task_vars.get('ansible_syslog_facility', C.DEFAULT_SYSLOG_FACILITY)
|
||||||
|
|
||||||
|
# let module know about filesystems that selinux treats specially
|
||||||
|
module_args['_ansible_selinux_special_fs'] = C.DEFAULT_SELINUX_SPECIAL_FS
|
||||||
|
|
||||||
(module_style, shebang, module_data, module_path) = self._configure_module(module_name=module_name, module_args=module_args, task_vars=task_vars)
|
(module_style, shebang, module_data, module_path) = self._configure_module(module_name=module_name, module_args=module_args, task_vars=task_vars)
|
||||||
if not shebang and module_style != 'binary':
|
if not shebang and module_style != 'binary':
|
||||||
raise AnsibleError("module (%s) is missing interpreter line" % module_name)
|
raise AnsibleError("module (%s) is missing interpreter line" % module_name)
|
||||||
|
|
|
@ -36,7 +36,6 @@ class TestModuleUtilsBasic(unittest.TestCase):
|
||||||
dict(
|
dict(
|
||||||
ANSIBLE_MODULE_ARGS=dict(
|
ANSIBLE_MODULE_ARGS=dict(
|
||||||
foo=False, bar=[1,2,3], bam="bam", baz=u'baz'),
|
foo=False, bar=[1,2,3], bam="bam", baz=u'baz'),
|
||||||
ANSIBLE_MODULE_CONSTANTS=dict()
|
|
||||||
))):
|
))):
|
||||||
from ansible.module_utils import basic
|
from ansible.module_utils import basic
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ empty_invocation = {u'module_args': {}}
|
||||||
@unittest.skipIf(sys.version_info[0] >= 3, "Python 3 is not supported on targets (yet)")
|
@unittest.skipIf(sys.version_info[0] >= 3, "Python 3 is not supported on targets (yet)")
|
||||||
class TestAnsibleModuleExitJson(unittest.TestCase):
|
class TestAnsibleModuleExitJson(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
self.stdin_swap_ctx = swap_stdin_and_argv(stdin_data=args)
|
self.stdin_swap_ctx = swap_stdin_and_argv(stdin_data=args)
|
||||||
self.stdin_swap_ctx.__enter__()
|
self.stdin_swap_ctx.__enter__()
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
|
||||||
def test_exit_json_removes_values(self):
|
def test_exit_json_removes_values(self):
|
||||||
self.maxDiff = None
|
self.maxDiff = None
|
||||||
for args, return_val, expected in self.dataset:
|
for args, return_val, expected in self.dataset:
|
||||||
params = dict(ANSIBLE_MODULE_ARGS=args, ANSIBLE_MODULE_CONSTANTS={})
|
params = dict(ANSIBLE_MODULE_ARGS=args)
|
||||||
params = json.dumps(params)
|
params = json.dumps(params)
|
||||||
|
|
||||||
with swap_stdin_and_argv(stdin_data=params):
|
with swap_stdin_and_argv(stdin_data=params):
|
||||||
|
@ -143,7 +143,7 @@ class TestAnsibleModuleExitValuesRemoved(unittest.TestCase):
|
||||||
expected = copy.deepcopy(expected)
|
expected = copy.deepcopy(expected)
|
||||||
del expected['changed']
|
del expected['changed']
|
||||||
expected['failed'] = True
|
expected['failed'] = True
|
||||||
params = dict(ANSIBLE_MODULE_ARGS=args, ANSIBLE_MODULE_CONSTANTS={})
|
params = dict(ANSIBLE_MODULE_ARGS=args)
|
||||||
params = json.dumps(params)
|
params = json.dumps(params)
|
||||||
with swap_stdin_and_argv(stdin_data=params):
|
with swap_stdin_and_argv(stdin_data=params):
|
||||||
with swap_stdout():
|
with swap_stdout():
|
||||||
|
|
|
@ -43,7 +43,7 @@ except ImportError:
|
||||||
|
|
||||||
class TestAnsibleModuleSysLogSmokeTest(unittest.TestCase):
|
class TestAnsibleModuleSysLogSmokeTest(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
|
|
||||||
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
||||||
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
||||||
|
@ -80,7 +80,7 @@ class TestAnsibleModuleSysLogSmokeTest(unittest.TestCase):
|
||||||
class TestAnsibleModuleJournaldSmokeTest(unittest.TestCase):
|
class TestAnsibleModuleJournaldSmokeTest(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
|
|
||||||
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
||||||
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
||||||
|
@ -129,7 +129,7 @@ class TestAnsibleModuleLogSyslog(unittest.TestCase):
|
||||||
}
|
}
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
||||||
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
||||||
self.stdin_swap.__enter__()
|
self.stdin_swap.__enter__()
|
||||||
|
@ -190,7 +190,7 @@ class TestAnsibleModuleLogJournal(unittest.TestCase):
|
||||||
|
|
||||||
# overriding run lets us use context managers for setup/teardown-esque behavior
|
# overriding run lets us use context managers for setup/teardown-esque behavior
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
||||||
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
||||||
self.stdin_swap.__enter__()
|
self.stdin_swap.__enter__()
|
||||||
|
|
|
@ -62,7 +62,7 @@ class TestAnsibleModuleRunCommand(unittest.TestCase):
|
||||||
if path == '/inaccessible':
|
if path == '/inaccessible':
|
||||||
raise OSError(errno.EPERM, "Permission denied: '/inaccessible'")
|
raise OSError(errno.EPERM, "Permission denied: '/inaccessible'")
|
||||||
|
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
||||||
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
||||||
self.stdin_swap.__enter__()
|
self.stdin_swap.__enter__()
|
||||||
|
|
|
@ -31,7 +31,7 @@ class TestAnsibleModuleExitJson(unittest.TestCase):
|
||||||
def test_module_utils_basic_safe_eval(self):
|
def test_module_utils_basic_safe_eval(self):
|
||||||
from ansible.module_utils import basic
|
from ansible.module_utils import basic
|
||||||
|
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
|
|
||||||
with swap_stdin_and_argv(stdin_data=args):
|
with swap_stdin_and_argv(stdin_data=args):
|
||||||
basic._ANSIBLE_ARGS = None
|
basic._ANSIBLE_ARGS = None
|
||||||
|
|
|
@ -41,7 +41,7 @@ realimport = builtins.__import__
|
||||||
class TestModuleUtilsBasic(unittest.TestCase):
|
class TestModuleUtilsBasic(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
# unittest doesn't have a clean place to use a context manager, so we have to enter/exit manually
|
||||||
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
self.stdin_swap = swap_stdin_and_argv(stdin_data=args)
|
||||||
self.stdin_swap.__enter__()
|
self.stdin_swap.__enter__()
|
||||||
|
@ -288,7 +288,7 @@ class TestModuleUtilsBasic(unittest.TestCase):
|
||||||
req_to = (('bam', 'baz'),)
|
req_to = (('bam', 'baz'),)
|
||||||
|
|
||||||
# should test ok
|
# should test ok
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={"foo": "hello"}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={"foo": "hello"}))
|
||||||
|
|
||||||
with swap_stdin_and_argv(stdin_data=args):
|
with swap_stdin_and_argv(stdin_data=args):
|
||||||
basic._ANSIBLE_ARGS = None
|
basic._ANSIBLE_ARGS = None
|
||||||
|
@ -305,7 +305,7 @@ class TestModuleUtilsBasic(unittest.TestCase):
|
||||||
# FIXME: add asserts here to verify the basic config
|
# FIXME: add asserts here to verify the basic config
|
||||||
|
|
||||||
# fail, because a required param was not specified
|
# fail, because a required param was not specified
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
|
|
||||||
with swap_stdin_and_argv(stdin_data=args):
|
with swap_stdin_and_argv(stdin_data=args):
|
||||||
basic._ANSIBLE_ARGS = None
|
basic._ANSIBLE_ARGS = None
|
||||||
|
@ -322,7 +322,7 @@ class TestModuleUtilsBasic(unittest.TestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
# fail because of mutually exclusive parameters
|
# fail because of mutually exclusive parameters
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={"foo":"hello", "bar": "bad", "bam": "bad"}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={"foo":"hello", "bar": "bad", "bam": "bad"}))
|
||||||
|
|
||||||
with swap_stdin_and_argv(stdin_data=args):
|
with swap_stdin_and_argv(stdin_data=args):
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
|
@ -338,7 +338,7 @@ class TestModuleUtilsBasic(unittest.TestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
# fail because a param required due to another param was not specified
|
# fail because a param required due to another param was not specified
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={"bam": "bad"}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={"bam": "bad"}))
|
||||||
|
|
||||||
with swap_stdin_and_argv(stdin_data=args):
|
with swap_stdin_and_argv(stdin_data=args):
|
||||||
self.assertRaises(
|
self.assertRaises(
|
||||||
|
@ -550,14 +550,13 @@ class TestModuleUtilsBasic(unittest.TestCase):
|
||||||
from ansible.module_utils import basic
|
from ansible.module_utils import basic
|
||||||
basic._ANSIBLE_ARGS = None
|
basic._ANSIBLE_ARGS = None
|
||||||
|
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={"SELINUX_SPECIAL_FS": "nfs,nfsd,foos"}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={'_ansible_selinux_special_fs': "nfs,nfsd,foos"}))
|
||||||
|
|
||||||
with swap_stdin_and_argv(stdin_data=args):
|
with swap_stdin_and_argv(stdin_data=args):
|
||||||
|
|
||||||
am = basic.AnsibleModule(
|
am = basic.AnsibleModule(
|
||||||
argument_spec = dict(),
|
argument_spec = dict(),
|
||||||
)
|
)
|
||||||
print(am.constants)
|
|
||||||
|
|
||||||
def _mock_find_mount_point(path):
|
def _mock_find_mount_point(path):
|
||||||
if path.startswith('/some/path'):
|
if path.startswith('/some/path'):
|
||||||
|
|
|
@ -400,7 +400,7 @@ def test_distribution_version():
|
||||||
|
|
||||||
from ansible.module_utils import basic
|
from ansible.module_utils import basic
|
||||||
|
|
||||||
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}, ANSIBLE_MODULE_CONSTANTS={}))
|
args = json.dumps(dict(ANSIBLE_MODULE_ARGS={}))
|
||||||
with swap_stdin_and_argv(stdin_data=args):
|
with swap_stdin_and_argv(stdin_data=args):
|
||||||
module = basic.AnsibleModule(argument_spec=dict())
|
module = basic.AnsibleModule(argument_spec=dict())
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue