title | layout | canonical |
---|---|---|
PuppetDB 1.3 » API » v2 » Querying Nodes |
default |
/puppetdb/latest/api/query/v2/nodes.html |
Nodes can be queried by making an HTTP request to the /nodes
REST
endpoint with a JSON-formatted parameter called query
.
This will return all nodes matching the given query. Deactivated nodes
aren't included in the response. There must be an Accept
header
containing application/json
.
query
: Required. A JSON array of query predicates, in prefix form, conforming to the format described below.
The query
parameter is a similar format to resource queries.
Only queries against "name"
and facts are currently supported.
Fact terms must be of the form ["fact", <fact name>]
.
Node query supports all available operators. Inequality operators are only supported for fact queries, but regular expressions are supported for both name and facts.
Inequality operators are strictly arithmetic, and will ignore any fact values which are not numeric.
Note that nodes which are missing a fact referenced by a not
query will match
the query.
This query will return nodes whose kernel is Linux and whose uptime is less than 30 days:
["and",
["=", ["fact", "kernel"], "Linux"],
[">", ["fact", "uptime_days"], 30]]
If no query
parameter is supplied, all nodes will be returned.
The response is a JSON array of hashes of the form:
{"name": <string>,
"deactivated": <timestamp>,
"catalog_timestamp": <timestamp>,
"facts_timestamp": <timestamp>,
"report_timestamp": <timestamp>}
The array is sorted alphabetically by name
.
You can use curl
to query information about nodes like so:
curl -H "Accept: application/json" 'http://localhost:8080/v2/nodes'
curl -G -H "Accept: application/json" 'http://localhost:8080/v2/nodes' --data-urlencode 'query=["=", ["fact", "kernel"], "Linux"]'
This will return status information for the given node, active or
not. There must be an Accept
header containing application/json
.
The response is the same format as for the /v1/status endpoint.
This will return the facts for the given node. Facts from deactivated
nodes aren't included in the response. There must be an Accept
header containing application/json
.
query
: Optional. A JSON array containing the query in prefix notation. The syntax and semantics are identical to thequery
parameter for the/v2/facts
route. When supplied, the query is assumed to supply additional criteria that can be used to return a subset of the information normally returned by this route.
The response is the same format as for the /v2/facts endpoint.
This will return facts with the given name for the given node. Facts
from deactivated nodes aren't included in the response. There must be
an Accept
header containing application/json
.
query
: Optional. A JSON array containing the query in prefix notation. The syntax and semantics are identical to thequery
parameter for the/v2/facts
route. When supplied, the query is assumed to supply additional criteria that can be used to return a subset of the information normally returned by this route.
The response is the same format as for the /v2/facts endpoint.
This will return facts with the given name and value for the given
node. Facts from deactivated nodes aren't included in the
response. There must be an Accept
header containing
application/json
.
query
: Optional. A JSON array containing the query in prefix notation. The syntax and semantics are identical to thequery
parameter for the/v2/facts
route. When supplied, the query is assumed to supply additional criteria that can be used to return a subset of the information normally returned by this route.
The response is the same format as for the /v2/facts endpoint.
This will return the resources for the given node. Resources from
deactivated nodes aren't included in the response. There must be an
Accept
header containing application/json
.
query
: Optional. A JSON array containing the query in prefix notation. The syntax and semantics are identical to thequery
parameter for the/v2/resources
route. When supplied, the query is assumed to supply additional criteria that can be used to return a subset of the information normally returned by this route.
The response is the same format as for the /v2/resources endpoint.
This will return the resources of the indicated type for the given
node. Resources from deactivated nodes aren't included in the
response. There must be an Accept
header containing
application/json
.
This endpoint behaves identically to the
/v2/resources/<TYPE>
endpoint, except the resources
returned include only those belonging to the node given in the URL
for this route.
This will return the resource of the indicated type and title for the
given node. Resources from deactivated nodes aren't included in the
response. There must be an Accept
header containing
application/json
.
This endpoint behaves identically to the
/v2/resources/<TYPE>
endpoint, except the resources
returned include only those belonging to the node given in the URL
for this route.