This commit is contained in:
pneerincx 2020-12-09 18:19:32 +01:00
parent 6343dbdcff
commit 931326fb70

View file

@ -33,7 +33,13 @@ class ActionModule(ActionBase):
def _get_absolute_path(self, path): def _get_absolute_path(self, path):
original_path = path original_path = path
if path.startswith('rsync://'): #
# Check if we have a local relative path and do not process
# * remote paths (some.server.domain:/some/remote/path/...)
# * URLs (rsync://...)
# * local absolute paths (/some/local/path/...)
#
if ':' in path or path.startswith('/'):
return path return path
if self._task._role is not None: if self._task._role is not None:
@ -73,8 +79,7 @@ class ActionModule(ActionBase):
if host not in C.LOCALHOST: if host not in C.LOCALHOST:
return self._format_rsync_rsh_target(host, path, user) return self._format_rsync_rsh_target(host, path, user)
if ':' not in path and not path.startswith('/'): path = self._get_absolute_path(path=path)
path = self._get_absolute_path(path=path)
return path return path
def _process_remote(self, task_args, host, path, user, port_matches_localhost_port): def _process_remote(self, task_args, host, path, user, port_matches_localhost_port):
@ -103,8 +108,7 @@ class ActionModule(ActionBase):
task_args['_substitute_controller'] = True task_args['_substitute_controller'] = True
return self._format_rsync_rsh_target(host, path, user) return self._format_rsync_rsh_target(host, path, user)
if ':' not in path and not path.startswith('/'): path = self._get_absolute_path(path=path)
path = self._get_absolute_path(path=path)
return path return path
def _override_module_replaced_vars(self, task_vars): def _override_module_replaced_vars(self, task_vars):
@ -348,10 +352,8 @@ class ActionModule(ActionBase):
else: else:
# Still need to munge paths (to account for roles) even if we aren't # Still need to munge paths (to account for roles) even if we aren't
# copying files between hosts # copying files between hosts
if not src.startswith('/'): src = self._get_absolute_path(path=src)
src = self._get_absolute_path(path=src) dest = self._get_absolute_path(path=dest)
if not dest.startswith('/'):
dest = self._get_absolute_path(path=dest)
_tmp_args['src'] = src _tmp_args['src'] = src
_tmp_args['dest'] = dest _tmp_args['dest'] = dest