Ensure proper error when fetch_url returns status -1
When using a file:// or ftp:// URL the normal provisions that a non-200 status code means error have been disabled. But the common error status -1 from fetch_url is not properly returning an error message. This fix ensures that if the status code returns -1, we return a proper error message. This fixes #3563
This commit is contained in:
parent
6a3969ca6b
commit
c22e383836
1 changed files with 5 additions and 1 deletions
|
@ -226,10 +226,14 @@ def url_get(module, url, dest, use_proxy, last_mod_time, force, timeout=10, head
|
||||||
if info['status'] == 304:
|
if info['status'] == 304:
|
||||||
module.exit_json(url=url, dest=dest, changed=False, msg=info.get('msg', ''))
|
module.exit_json(url=url, dest=dest, changed=False, msg=info.get('msg', ''))
|
||||||
|
|
||||||
# create a temporary file and copy content to do checksum-based replacement
|
# Exceptions in fetch_url may result in a status -1, the ensures a proper error to the user in all cases
|
||||||
|
if info['status'] == -1:
|
||||||
|
module.fail_json(msg=info['msg'], url=url, dest=dest)
|
||||||
|
|
||||||
if info['status'] != 200 and not url.startswith('file:/') and not (url.startswith('ftp:/') and info.get('msg', '').startswith('OK')):
|
if info['status'] != 200 and not url.startswith('file:/') and not (url.startswith('ftp:/') and info.get('msg', '').startswith('OK')):
|
||||||
module.fail_json(msg="Request failed", status_code=info['status'], response=info['msg'], url=url, dest=dest)
|
module.fail_json(msg="Request failed", status_code=info['status'], response=info['msg'], url=url, dest=dest)
|
||||||
|
|
||||||
|
# create a temporary file and copy content to do checksum-based replacement
|
||||||
if tmp_dest != '':
|
if tmp_dest != '':
|
||||||
# tmp_dest should be an existing dir
|
# tmp_dest should be an existing dir
|
||||||
tmp_dest_is_dir = os.path.isdir(tmp_dest)
|
tmp_dest_is_dir = os.path.isdir(tmp_dest)
|
||||||
|
|
Loading…
Reference in a new issue