Ensure that when transferring a file to a directory the name of the file is the correct basename and not 'source'.

reviewable/pr18780/r1
Michael DeHaan 12 years ago
parent b31c133739
commit 03f41c1cec

@ -83,6 +83,7 @@ def main():
# not checking because of daisy chain to file module # not checking because of daisy chain to file module
argument_spec = dict( argument_spec = dict(
src = dict(required=False), src = dict(required=False),
original_basename = dict(required=False), # used to handle 'dest is a directory' via template, a slight hack
content = dict(required=False), content = dict(required=False),
dest = dict(required=True), dest = dict(required=True),
backup = dict(default=False, type='bool'), backup = dict(default=False, type='bool'),
@ -95,6 +96,7 @@ def main():
dest = os.path.expanduser(module.params['dest']) dest = os.path.expanduser(module.params['dest'])
backup = module.params['backup'] backup = module.params['backup']
force = module.params['force'] force = module.params['force']
original_basename = module.params.get('original_basename',None)
if not os.path.exists(src): if not os.path.exists(src):
module.fail_json(msg="Source %s failed to transfer" % (src)) module.fail_json(msg="Source %s failed to transfer" % (src))
@ -109,6 +111,8 @@ def main():
module.exit_json(msg="file already exists", src=src, dest=dest, changed=False) module.exit_json(msg="file already exists", src=src, dest=dest, changed=False)
if (os.path.isdir(dest)): if (os.path.isdir(dest)):
basename = os.path.basename(src) basename = os.path.basename(src)
if original_basename:
basename = original_basename
dest = os.path.join(dest, basename) dest = os.path.join(dest, basename)
if os.access(dest, os.R_OK): if os.access(dest, os.R_OK):
md5sum_dest = module.md5(dest) md5sum_dest = module.md5(dest)

Loading…
Cancel
Save