1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Add parameters to get_url for the url username/password

Fixes #6928
This commit is contained in:
James Cammarata 2014-04-23 13:44:36 -05:00
parent 3a20291838
commit 89fa9b7305
3 changed files with 32 additions and 9 deletions

View file

@ -69,6 +69,8 @@ Other notable changes:
* regex_replace filter plugin added * regex_replace filter plugin added
* added an inventory script for Docker * added an inventory script for Docker
* added an inventory script for Abiquo * added an inventory script for Abiquo
* the get_url module now accepts url_username and url_password as parameters, so sites which require
authentication no longer need to have them embedded in the url
* ... to be filled in from changelogs ... * ... to be filled in from changelogs ...
* *

View file

@ -200,6 +200,8 @@ def url_argument_spec():
http_agent = dict(default='ansible-httpget'), http_agent = dict(default='ansible-httpget'),
use_proxy = dict(default='yes', type='bool'), use_proxy = dict(default='yes', type='bool'),
validate_certs = dict(default='yes', type='bool'), validate_certs = dict(default='yes', type='bool'),
url_username = dict(required=False),
url_password = dict(required=False),
) )
@ -247,13 +249,20 @@ def fetch_url(module, url, data=None, headers=None, method=None,
ssl_handler = SSLValidationHandler(module, hostname, port) ssl_handler = SSLValidationHandler(module, hostname, port)
handlers.append(ssl_handler) handlers.append(ssl_handler)
if parsed[0] != 'ftp' and '@' in parsed[1]: if parsed[0] != 'ftp':
url_username = module.params.get('url_username', '')
if url_username:
username = url_username
password = module.params.get('url_password', '')
netloc = parsed[1]
elif '@' in parsed[1]:
credentials, netloc = parsed[1].split('@', 1) credentials, netloc = parsed[1].split('@', 1)
if ':' in credentials: if ':' in credentials:
username, password = credentials.split(':', 1) username, password = credentials.split(':', 1)
else: else:
username = credentials username = credentials
password = '' password = ''
parsed = list(parsed) parsed = list(parsed)
parsed[1] = netloc parsed[1] = netloc

View file

@ -90,6 +90,18 @@ options:
required: false required: false
default: 'yes' default: 'yes'
choices: ['yes', 'no'] choices: ['yes', 'no']
url_username:
description:
- The username for use in HTTP basic authentication. This parameter can be used
without C(url_password) for sites that allow empty passwords.
required: false
version_added: '1.6'
url_password:
description:
- The password for use in HTTP basic authentication. If the C(url_username)
parameter is not specified, the C(url_password) parameter will not be used.
required: false
version_added: '1.6'
others: others:
description: description:
- all arguments accepted by the M(file) module also work here - all arguments accepted by the M(file) module also work here