mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-26 04:11:25 -07:00
* include source file in error message * win_copy: Fix for idempotency This patch fixes an idempotency issue with win_copy. Without this patch files would always be considered changed (unless the copy operation failed). It also fixes the resulting output cfr. what was deocumented.
93 lines
2.9 KiB
Python
93 lines
2.9 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# (c) 2015, Jon Hawkesworth (@jhawkesworth) <figs@unity.demon.co.uk>
|
|
#
|
|
# This file is part of Ansible
|
|
#
|
|
# Ansible is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Ansible is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
ANSIBLE_METADATA = {'status': ['stableinterface'],
|
|
'supported_by': 'core',
|
|
'version': '1.0'}
|
|
|
|
DOCUMENTATION = r'''
|
|
---
|
|
module: win_copy
|
|
version_added: "1.9.2"
|
|
short_description: Copies files to remote locations on windows hosts.
|
|
description:
|
|
- The M(win_copy) module copies a file on the local box to remote windows locations.
|
|
options:
|
|
src:
|
|
description:
|
|
- Local path to a file to copy to the remote server; can be absolute or relative.
|
|
If path is a directory, it is copied recursively. In this case, if path ends
|
|
with "/", only inside contents of that directory are copied to destination.
|
|
Otherwise, if it does not end with "/", the directory itself with all contents
|
|
is copied. This behavior is similar to Rsync.
|
|
required: true
|
|
dest:
|
|
description:
|
|
- Remote absolute path where the file should be copied to. If src is a directory,
|
|
this must be a directory too. Use \\ for path separators.
|
|
required: true
|
|
author: "Jon Hawkesworth (@jhawkesworth)"
|
|
'''
|
|
|
|
EXAMPLES = r'''
|
|
- name: Copy a single file
|
|
win_copy:
|
|
src: /srv/myfiles/foo.conf
|
|
dest: c:\Temp\foo.conf
|
|
|
|
- name: Copy files/temp_files to c:\temp
|
|
win_copy:
|
|
src: files/temp_files/
|
|
dest: c:\Temp
|
|
'''
|
|
RETURN = r'''
|
|
dest:
|
|
description: destination file/path
|
|
returned: changed
|
|
type: string
|
|
sample: c:\Temp
|
|
src:
|
|
description: source file used for the copy on the target machine
|
|
returned: changed
|
|
type: string
|
|
sample: "/home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source"
|
|
checksum:
|
|
description: sha1 checksum of the file after running copy
|
|
returned: success
|
|
type: string
|
|
sample: "6e642bb8dd5c2e027bf21dd923337cbb4214f827"
|
|
size:
|
|
description: size of the target, after execution
|
|
returned: changed (single files only)
|
|
type: int
|
|
sample: 1220
|
|
operation:
|
|
description: whether a single file copy took place or a folder copy
|
|
returned: changed (single files only)
|
|
type: string
|
|
sample: "file_copy"
|
|
original_basename:
|
|
description: basename of the copied file
|
|
returned: changed (single files only)
|
|
type: string
|
|
sample: "foo.txt"
|
|
'''
|
|
|