salt.sdb.rest

Generic REST API SDB Module

maintainer:

SaltStack

maturity:

New

platform:

all

New in version 2015.8.0.

This module allows access to a REST interface using an sdb:// URI.

Like all REST modules, the REST module requires a configuration profile to be configured in either the minion or master configuration file. This profile requires very little. In the example:

my-rest-api:
  driver: rest
  urls:
    url: https://api.github.com/
  keys:
    url: https://api.github.com/users/{{user}}/keys
    backend: requests

The driver refers to the REST module, and must be set to rest in order to use this driver. Each of the other items inside this block refers to a separate set of HTTP items, including a URL and any options associated with it. The options used here should match the options available in salt.utils.http.query().

In order to call the urls item in the example, the following reference can be made inside a configuration file:

github_urls: sdb://my-rest-api/urls

Key/Value pairs may also be used with this driver, and merged into the URL using the configured renderer (jinja, by default). For instance, in order to use the keys item in the example, the following reference can be made:

github_urls: sdb://my-rest-api/keys?user=myuser

This will cause the following URL to actually be called:

https://api.github.com/users/myuser/keys

Key/Value pairs will NOT be passed through as GET data. If GET data needs to be sent to the URL, then it should be configured in the SDB configuration block. For instance:

another-rest-api:
  driver: rest
  user_data:
    url: https://api.example.com/users/
    params:
      user: myuser
salt.sdb.rest.get(key, service=None, profile=None)

Get a value from the REST interface

salt.sdb.rest.query(key, value=None, service=None, profile=None)

Get a value from the REST interface

salt.sdb.rest.set_(key, value, service=None, profile=None)

Set a key/value pair in the REST interface