How to use the ansible.module_utils.urls.fetch_url function in ansible

To help you get started, we’ve selected a few ansible examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ansible / ansible / lib / ansible / modules / packaging / os / dnf.py View on Github external
def fetch_rpm_from_url(self, spec):
        # FIXME: Remove this once this PR is merged:
        #   https://github.com/ansible/ansible/pull/19172

        # download package so that we can query it
        package_name, dummy = os.path.splitext(str(spec.rsplit('/', 1)[1]))
        package_file = tempfile.NamedTemporaryFile(dir=self.module.tmpdir, prefix=package_name, suffix='.rpm', delete=False)
        self.module.add_cleanup_file(package_file.name)
        try:
            rsp, info = fetch_url(self.module, spec)
            if not rsp:
                self.module.fail_json(
                    msg="Failure downloading %s, %s" % (spec, info['msg']),
                    results=[],
                )
            data = rsp.read(BUFSIZE)
            while data:
                package_file.write(data)
                data = rsp.read(BUFSIZE)
            package_file.close()
        except Exception as e:
            self.module.fail_json(
                msg="Failure downloading %s, %s" % (spec, to_native(e)),
                results=[],
            )
github ReconInfoSec / ansible-graylog-modules / library / graylog_index_sets.py View on Github external
def delete(module, base_url, headers, id):

    url = base_url + "/%s" % (id)

    response, info = fetch_url(module=module, url=url, headers=json.loads(headers), method='DELETE')

    if info['status'] != 204:
        module.fail_json(msg="Fail: %s" % ("Status: " + str(info['msg']) + ", Message: " + str(info['body'])))

    try:
        content = to_text(response.read(), errors='surrogate_or_strict')
    except AttributeError:
        content = info.pop('body', '')

    return info['status'], info['msg'], content, url
github ReconInfoSec / ansible-graylog-modules / library / graylog_streams.py View on Github external
def create_rule(module, base_url, headers):

    url = "/".join([base_url, module.params['stream_id'], "rules"])

    payload = {}

    for key in ['field', 'type', 'value', 'inverted', 'description']:
        if module.params[key] is not None:
            payload[key] = module.params[key]

    response, info = fetch_url(module=module, url=url, headers=json.loads(headers), method='POST', data=module.jsonify(payload))

    if info['status'] != 201:
        module.fail_json(msg="Fail: %s" % ("Status: " + str(info['msg']) + ", Message: " + str(info['body'])))

    try:
        content = to_text(response.read(), errors='surrogate_or_strict')
    except AttributeError:
        content = info.pop('body', '')

    return info['status'], info['msg'], content, url
github ansible / ansible / lib / ansible / modules / remote_management / stacki / stacki_host.py View on Github external
def do_request(self, module, url, payload=None, headers=None, method=None):
        res, info = fetch_url(module, url, data=payload, headers=headers, method=method)

        if info['status'] != 200:
            self.module.fail_json(changed=False, msg=info['msg'])

        return res
github ReconInfoSec / ansible-graylog-modules / library / graylog_ldap.py View on Github external
def delete(module, base_url, headers):

    url = base_url + "/settings"

    response, info = fetch_url(module=module, url=url, headers=json.loads(headers), method='DELETE')

    if info['status'] != 204:
        module.fail_json(msg="Fail: %s" % ("Status: " + str(info['msg']) + ", Message: " + str(info['body'])))

    try:
        content = to_text(response.read(), errors='surrogate_or_strict')
    except AttributeError:
        content = info.pop('body', '')

    return info['status'], info['msg'], content, url
github ansible / ansible / lib / ansible / modules / notification / hall.py View on Github external
def send_request_to_hall(module, room_token, payload):
    headers = {'Content-Type': 'application/json'}
    payload=module.jsonify(payload)
    api_endpoint = HALL_API_ENDPOINT % (room_token)
    response, info = fetch_url(module, api_endpoint, data=payload, headers=headers)
    if info['status'] != 200:
        secure_url = HALL_API_ENDPOINT % ('[redacted]')
        module.fail_json(msg=" failed to send %s to %s: %s" % (payload, secure_url, info['msg']))
github ansible / ansible / lib / ansible / modules / web_infrastructure / jenkins_script.py View on Github external
def is_csrf_protection_enabled(module):
    resp, info = fetch_url(module,
                           module.params['url'] + '/api/json',
                           timeout=module.params['timeout'],
                           method='GET')
    if info["status"] != 200:
        module.fail_json(msg="HTTP error " + str(info["status"]) + " " + info["msg"], output='')

    content = to_native(resp.read())
    return json.loads(content).get('useCrumbs', False)
github ansible / ansible / lib / ansible / module_utils / online.py View on Github external
def send(self, method, path, data=None, headers=None):
        url = self._url_builder(path)
        data = self.module.jsonify(data)

        if headers is not None:
            self.headers.update(headers)

        resp, info = fetch_url(
            self.module, url, data=data, headers=self.headers, method=method,
            timeout=self.module.params.get('api_timeout')
        )

        # 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:
            self.module.fail_json(msg=info['msg'])

        return Response(resp, info)
github ansible / ansible / lib / ansible / modules / extras / notification / typetalk.py View on Github external
def do_request(module, url, params, headers=None):
    data = urllib.urlencode(params)
    if headers is None:
        headers = dict()
    headers = dict(headers, **{
        'User-Agent': 'Ansible/typetalk module',
    })
    r, info = fetch_url(module, url, data=data, headers=headers)
    if info['status'] != 200:
        exc = ConnectionError(info['msg'])
        exc.code = info['status']
        raise exc
    return r
github ansible / ansible / lib / ansible / module_utils / scaleway.py View on Github external
def send(self, method, path, data=None, headers=None, params=None):
        url = self._url_builder(path=path, params=params)
        self.warn(url)
        data = self.module.jsonify(data)

        if headers is not None:
            self.headers.update(headers)

        resp, info = fetch_url(
            self.module, url, data=data, headers=self.headers, method=method,
            timeout=self.module.params.get('api_timeout')
        )

        # 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:
            self.module.fail_json(msg=info['msg'])

        return Response(resp, info)