mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 13:52:54 +00:00
Add shell_plugins to abstract shell-specific functions out of runner, add winrm connection plugin, add initial Windows modules.
This commit is contained in:
@@ -119,7 +119,7 @@ class ActionModule(object):
|
||||
|
||||
# fix file permissions when the copy is done as a different user
|
||||
if self.runner.sudo and self.runner.sudo_user != 'root':
|
||||
self.runner._low_level_exec_command(conn, "chmod a+r %s" % xfered, tmp)
|
||||
self.runner._remote_chmod(conn, 'a+r', xfered, tmp)
|
||||
|
||||
# run the copy module
|
||||
module_args = "%s src=%s dest=%s original_basename=%s" % (module_args, pipes.quote(xfered), pipes.quote(dest), pipes.quote(os.path.basename(src)))
|
||||
|
||||
@@ -37,7 +37,7 @@ class ActionModule(object):
|
||||
tmp = self.runner._make_tmp_path(conn)
|
||||
|
||||
(module_path, is_new_style, shebang) = self.runner._copy_module(conn, tmp, module_name, module_args, inject, complex_args=complex_args)
|
||||
self.runner._low_level_exec_command(conn, "chmod a+rx %s" % module_path, tmp)
|
||||
self.runner._remote_chmod(conn, 'a+rx', module_path, tmp)
|
||||
|
||||
return self.runner._execute_module(conn, tmp, 'async_wrapper', module_args,
|
||||
async_module=module_path,
|
||||
|
||||
@@ -169,7 +169,7 @@ class ActionModule(object):
|
||||
# This is kind of optimization - if user told us destination is
|
||||
# dir, do path manipulation right away, otherwise we still check
|
||||
# for dest being a dir via remote call below.
|
||||
if dest.endswith("/"):
|
||||
if dest.endswith("/"): # CCTODO: Fixme for powershell
|
||||
dest_file = os.path.join(dest, source_rel)
|
||||
else:
|
||||
dest_file = dest
|
||||
@@ -186,7 +186,7 @@ class ActionModule(object):
|
||||
return ReturnData(conn=conn, result=result)
|
||||
else:
|
||||
# Append the relative source location to the destination and retry remote_md5.
|
||||
dest_file = os.path.join(dest, source_rel)
|
||||
dest_file = os.path.join(dest, source_rel) # CCTODO
|
||||
remote_md5 = self.runner._remote_md5(conn, tmp_path, dest_file)
|
||||
|
||||
if remote_md5 != '1' and not force:
|
||||
@@ -228,7 +228,7 @@ class ActionModule(object):
|
||||
|
||||
# fix file permissions when the copy is done as a different user
|
||||
if self.runner.sudo and self.runner.sudo_user != 'root' and not raw:
|
||||
self.runner._low_level_exec_command(conn, "chmod a+r %s" % tmp_src, tmp_path)
|
||||
self.runner._remote_chmod(conn, 'a+r', tmp_src, tmp_path)
|
||||
|
||||
if raw:
|
||||
# Continue to next iteration if raw is defined.
|
||||
|
||||
@@ -59,7 +59,7 @@ class ActionModule(object):
|
||||
source = os.path.expanduser(source)
|
||||
|
||||
if flat:
|
||||
if dest.endswith("/"):
|
||||
if dest.endswith("/"): # CCTODO
|
||||
# if the path ends with "/", we'll use the source filename as the
|
||||
# destination filename
|
||||
base = os.path.basename(source)
|
||||
|
||||
@@ -106,7 +106,8 @@ class ActionModule(object):
|
||||
# transfer the file to a remote tmp location
|
||||
source = source.replace('\x00', '') # why does this happen here?
|
||||
args = args.replace('\x00', '') # why does this happen here?
|
||||
tmp_src = os.path.join(tmp, os.path.basename(source))
|
||||
#tmp_src = os.path.join(tmp, os.path.basename(source)) # CCTODO
|
||||
tmp_src = conn.shell.join_path(tmp, os.path.basename(source))
|
||||
tmp_src = tmp_src.replace('\x00', '')
|
||||
|
||||
conn.put_file(source, tmp_src)
|
||||
@@ -115,14 +116,14 @@ class ActionModule(object):
|
||||
# set file permissions, more permisive when the copy is done as a different user
|
||||
if ((self.runner.sudo and self.runner.sudo_user != 'root') or
|
||||
(self.runner.su and self.runner.su_user != 'root')):
|
||||
cmd_args_chmod = "chmod a+rx %s" % tmp_src
|
||||
chmod_mode = 'a+rx'
|
||||
sudoable = False
|
||||
else:
|
||||
cmd_args_chmod = "chmod +rx %s" % tmp_src
|
||||
self.runner._low_level_exec_command(conn, cmd_args_chmod, tmp, sudoable=sudoable, su=self.runner.su)
|
||||
chmod_mode = '+rx'
|
||||
self.runner._remote_chmod(conn, chmod_mode, tmp_src, tmp, sudoable=sudoable, su=self.runner.su)
|
||||
|
||||
# add preparation steps to one ssh roundtrip executing the script
|
||||
env_string = self.runner._compute_environment_string(inject)
|
||||
env_string = self.runner._compute_environment_string(conn, inject)
|
||||
module_args = env_string + tmp_src + ' ' + args
|
||||
|
||||
handler = utils.plugins.action_loader.get('raw', self.runner)
|
||||
@@ -130,7 +131,7 @@ class ActionModule(object):
|
||||
|
||||
# clean up after
|
||||
if "tmp" in tmp and not C.DEFAULT_KEEP_REMOTE_FILES:
|
||||
self.runner._low_level_exec_command(conn, 'rm -rf %s >/dev/null 2>&1' % tmp, tmp)
|
||||
self.runner._remove_tmp_path(conn, tmp)
|
||||
|
||||
result.result['changed'] = True
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ class ActionModule(object):
|
||||
source = utils.path_dwim(self.runner.basedir, source)
|
||||
|
||||
|
||||
if dest.endswith("/"):
|
||||
if dest.endswith("/"): # CCTODO
|
||||
base = os.path.basename(source)
|
||||
dest = os.path.join(dest, base)
|
||||
|
||||
@@ -114,7 +114,7 @@ class ActionModule(object):
|
||||
|
||||
# fix file permissions when the copy is done as a different user
|
||||
if self.runner.sudo and self.runner.sudo_user != 'root':
|
||||
self.runner._low_level_exec_command(conn, "chmod a+r %s" % xfered, tmp)
|
||||
self.runner._remote_chmod(conn, 'a+r', xfered, tmp)
|
||||
|
||||
# run the copy module
|
||||
module_args = "%s src=%s dest=%s original_basename=%s" % (module_args, pipes.quote(xfered), pipes.quote(dest), pipes.quote(os.path.basename(source)))
|
||||
|
||||
@@ -77,7 +77,7 @@ class ActionModule(object):
|
||||
# fix file permissions when the copy is done as a different user
|
||||
if copy:
|
||||
if self.runner.sudo and self.runner.sudo_user != 'root':
|
||||
self.runner._low_level_exec_command(conn, "chmod a+r %s" % tmp_src, tmp)
|
||||
self.runner._remote_chmod(conn, 'a+r', tmp_src, tmp)
|
||||
module_args = "%s src=%s original_basename=%s" % (module_args, pipes.quote(tmp_src), pipes.quote(os.path.basename(source)))
|
||||
else:
|
||||
module_args = "%s original_basename=%s" % (module_args, pipes.quote(os.path.basename(source)))
|
||||
|
||||
Reference in New Issue
Block a user