Commit e45a0fd6 by Yves Dorfsman

Added a fail_on_missing option to fetch.

parent 6d419831
......@@ -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"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment