mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Command module changes for v2 compatibility
This commit is contained in:
parent
0af631499a
commit
d07378ceac
1 changed files with 13 additions and 47 deletions
|
@ -154,12 +154,22 @@ def main():
|
||||||
|
|
||||||
# the command module is the one ansible module that does not take key=value args
|
# the command module is the one ansible module that does not take key=value args
|
||||||
# hence don't copy this one if you are looking to build others!
|
# hence don't copy this one if you are looking to build others!
|
||||||
module = CommandModule(argument_spec=dict())
|
module = AnsibleModule(
|
||||||
|
argument_spec=dict(
|
||||||
|
_raw_params = dict(),
|
||||||
|
_uses_shell = dict(type='bool', default=False),
|
||||||
|
chdir = dict(),
|
||||||
|
executable = dict(),
|
||||||
|
creates = dict(),
|
||||||
|
removes = dict(),
|
||||||
|
warn = dict(type='bool', default=True),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
shell = module.params['shell']
|
shell = module.params['_uses_shell']
|
||||||
chdir = module.params['chdir']
|
chdir = module.params['chdir']
|
||||||
executable = module.params['executable']
|
executable = module.params['executable']
|
||||||
args = module.params['args']
|
args = module.params['_raw_params']
|
||||||
creates = module.params['creates']
|
creates = module.params['creates']
|
||||||
removes = module.params['removes']
|
removes = module.params['removes']
|
||||||
warn = module.params['warn']
|
warn = module.params['warn']
|
||||||
|
@ -232,48 +242,4 @@ def main():
|
||||||
from ansible.module_utils.basic import *
|
from ansible.module_utils.basic import *
|
||||||
from ansible.module_utils.splitter import *
|
from ansible.module_utils.splitter import *
|
||||||
|
|
||||||
# only the command module should ever need to do this
|
|
||||||
# everything else should be simple key=value
|
|
||||||
|
|
||||||
class CommandModule(AnsibleModule):
|
|
||||||
|
|
||||||
def _handle_aliases(self):
|
|
||||||
return {}
|
|
||||||
|
|
||||||
def _check_invalid_arguments(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def _load_params(self):
|
|
||||||
''' read the input and return a dictionary and the arguments string '''
|
|
||||||
args = MODULE_ARGS
|
|
||||||
params = copy.copy(OPTIONS)
|
|
||||||
params['shell'] = False
|
|
||||||
if "#USE_SHELL" in args:
|
|
||||||
args = args.replace("#USE_SHELL", "")
|
|
||||||
params['shell'] = True
|
|
||||||
|
|
||||||
items = split_args(args)
|
|
||||||
|
|
||||||
for x in items:
|
|
||||||
quoted = x.startswith('"') and x.endswith('"') or x.startswith("'") and x.endswith("'")
|
|
||||||
if '=' in x and not quoted:
|
|
||||||
# check to see if this is a special parameter for the command
|
|
||||||
k, v = x.split('=', 1)
|
|
||||||
v = unquote(v.strip())
|
|
||||||
if k in OPTIONS.keys():
|
|
||||||
if k == "chdir":
|
|
||||||
v = os.path.abspath(os.path.expanduser(v))
|
|
||||||
if not (os.path.exists(v) and os.path.isdir(v)):
|
|
||||||
self.fail_json(rc=258, msg="cannot change to directory '%s': path does not exist" % v)
|
|
||||||
elif k == "executable":
|
|
||||||
v = os.path.abspath(os.path.expanduser(v))
|
|
||||||
if not (os.path.exists(v)):
|
|
||||||
self.fail_json(rc=258, msg="cannot use executable '%s': file does not exist" % v)
|
|
||||||
params[k] = v
|
|
||||||
# Remove any of the above k=v params from the args string
|
|
||||||
args = PARAM_REGEX.sub('', args)
|
|
||||||
params['args'] = args.strip()
|
|
||||||
|
|
||||||
return (params, params['args'])
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Reference in a new issue