Merge pull request #2279 from dorfsmay/fetch-fail_on_missing

Added a fail_on_missing option to fetch.
pull/2345/merge
Michael DeHaan 12 years ago
commit b2c8ed9cc2

@ -46,6 +46,8 @@ class ActionModule(object):
options.update(utils.parse_kv(module_args))
source = options.get('src', None)
dest = options.get('dest', None)
fail_on_missing = options.get('fail_on_missing', False)
fail_on_missing = utils.boolean(fail_on_missing)
if source is None or dest is None:
results = dict(failed=True, msg="src and dest are required")
return ReturnData(conn=conn, result=results)
@ -73,7 +75,10 @@ class ActionModule(object):
result = dict(msg="unable to calculate the md5 sum of the remote file", file=source, changed=False)
return ReturnData(conn=conn, result=result)
if remote_md5 == '1':
result = dict(msg="the remote file does not exist, not transferring, ignored", file=source, changed=False)
if fail_on_missing:
result = dict(failed=True, msg="the remote file does not exist", file=source)
else:
result = dict(msg="the remote file does not exist, not transferring, ignored", file=source, changed=False)
return ReturnData(conn=conn, result=result)
if remote_md5 == '2':
result = dict(msg="no read permission on remote file, not transferring, ignored", file=source, changed=False)

@ -7,8 +7,9 @@ short_description: Fetches a file from remote nodes
description:
- This module works like M(copy), but in reverse. It is used for fetching
files from remote machines and storing them locally in a file tree,
organized by hostname. Note that if the source file is missing, it
returns status=ok.
organized by hostname. Note that this module was originally written to
transfer log files that were not necessarily present, therefore, by
default, if the source file is missing, it does not fail ;
version_added: "0.2"
options:
src:
@ -26,6 +27,12 @@ options:
C(/backup/host.example.com/etc/profile)
required: true
default: null
fail_on_missing:
description:
- Makes it fails when the source file is missing.
required: false
choices: [ "yes", "no" ]
default: "no"
examples:
- code: "fetch: src=/var/log/messages dest=/home/logtree"
description: "Example from Ansible Playbooks"

Loading…
Cancel
Save