Module for making various web calls. Primarily designed for webhooks and the like, but also useful for basic http testing.
New in version 2015.5.0.
New in version 2015.5.0.
Query a resource, and decode the return data.
All keyword arguments are forwarded to
salt.utils.http.query(). The most commonly used kwargs are
summarized below; see the underlying utility for the full reference.
method (default GET), params (query string dict),
data (request body string), data_file (path or salt:// URL
to read body from), data_render / data_renderer to render
the body through a Salt renderer, template_dict of values to
expose when rendering.
header_dict (dict of headers), header_list (list of
Name: value strings), header_file (path or salt:// URL),
header_render / header_renderer to render headers through a
Salt renderer.
username and password for HTTP basic auth, auth for a
pre-built (user, pass) tuple, cert for a client certificate
path or (cert, key) pair.
verify_ssl (default True), ca_bundle to point at an
alternate CA bundle. Set verify_ssl=False only for trusted
development endpoints.
cookies to send a cookie jar, cookie_jar to load/save the
jar from disk, cookie_format (lwp or mozilla),
persist_session and session_cookie_jar to persist a session
across calls.
decode (default False) parses the response body using
decode_type (auto, json, yaml, xml or
plain). decode_body (default True) controls whether to
decode bytes to text at all. text returns the raw text body in
the result, status returns the HTTP status code, headers
returns response headers.
stream (default False) streams the response body.
streaming_callback and header_callback receive chunks as
they arrive.
text_out, headers_out and decode_out are paths to which
the corresponding parts of the response will be written.
formdata (default False) sends a multipart/form-data body.
formdata_fieldname and formdata_filename configure the file
part.
backend (tornado, requests or urllib2),
agent (User-Agent header), port (used when the URL has
no explicit port), handle (default False) returns the raw
backend response object.
raise_error (default True). If False, connection errors
are suppressed and the body of the return will simply be None.
hide_fields is a list of header or form field names whose
values should be redacted in the logged trace output.
test (default False) and test_url allow you to dry-run
the request against a fixture URL without making the real call.
CLI Example:
salt '*' http.query http://somelink.com/
salt '*' http.query http://somelink.com/ method=POST params='{"key1": "val1", "key2": "val2"}'
salt '*' http.query http://somelink.com/ method=POST data='<xml>somecontent</xml>'
Update the local CA bundle file from a URL
New in version 2015.5.0.
CLI Example:
salt '*' http.update_ca_bundle
salt '*' http.update_ca_bundle target=/path/to/cacerts.pem
salt '*' http.update_ca_bundle source=https://example.com/cacerts.pem
If the target is not specified, it will be pulled from the ca_cert
configuration variable available to the minion. If it cannot be found there,
it will be placed at <<FILE_ROOTS>>/cacerts.pem.
If the source is not specified, it will be pulled from the
ca_cert_url configuration variable available to the minion. If it cannot
be found, it will be downloaded from the cURL website, using an http (not
https) URL. USING THE DEFAULT URL SHOULD BE AVOIDED!
merge_files may also be specified, which includes a string or list of
strings representing a file or files to be appended to the end of the CA
bundle, once it is downloaded.
CLI Example:
salt '*' http.update_ca_bundle merge_files=/path/to/mycert.pem
Query a resource until a successful response, and decode the return data
CLI Example:
salt '*' http.wait_for_successful_query http://somelink.com/ wait_for=160 request_interval=1
Docs for previous releases are available on readthedocs.org.
Latest Salt release: 3007.15