By default ironic-inspector listens on 0.0.0.0:5050, port can be changed in configuration. Protocol is JSON over HTTP.
POST /v1/introspection/<Node ID> initiate hardware introspection for node <Node ID>. All power management configuration for this node needs to be done prior to calling the endpoint (except when Setting IPMI Credentials).
Requires X-Auth-Token header with Keystone token for authentication.
Optional parameters:
Response:
GET /v1/introspection/<Node ID> get hardware introspection status.
Requires X-Auth-Token header with Keystone token for authentication.
Response:
Response body: JSON dictionary with keys:
POST /v1/introspection/<Node ID>/abort abort running introspection.
Requires X-Auth-Token header with Keystone token for authentication.
Response:
GET /v1/introspection/<Node ID>/data get stored data from successful introspection.
Requires X-Auth-Token header with Keystone token for authentication.
Response:
Response body: JSON dictionary with introspection data
Note
We do not provide any backward compatibility guarantees regarding the format and contents of the stored data. Notably, it depends on the ramdisk used and plugins enabled both in the ramdisk and in inspector itself.
POST /v1/introspection/<Node ID>/data/unprocessed to trigger introspection on stored unprocessed data. No data is allowed to be sent along with the request.
Requires X-Auth-Token header with Keystone token for authentication. Requires enabling Swift store in processing section of the configuration file.
Response:
See Introspection Rules for details.
All these API endpoints require X-Auth-Token header with Keystone token for authentication.
POST /v1/rules create a new introspection rule.
Request body: JSON dictionary with keys:
Response
Response body: JSON dictionary with introspection rule representation (the same as above with UUID filled in).
GET /v1/rules list all introspection rules.
Response
Response body: JSON dictionary with key rules - list of short rule representations. Short rule representation is a JSON dictionary with keys:
DELETE /v1/rules delete all introspection rules.
Response
GET /v1/rules/<UUID> get one introspection rule by its <UUID>.
Response
Response body: JSON dictionary with introspection rule representation (see POST /v1/rules above).
DELETE /v1/rules/<UUID> delete one introspection rule by its <UUID>.
Response
POST /v1/continue internal endpoint for the ramdisk to post back discovered data. Should not be used for anything other than implementing the ramdisk. Request body: JSON dictionary with at least these keys:
Optionally the following keys might be provided:
Note
This list highly depends on enabled plugins, provided above are expected keys for the default set of plugins. See Plugins for details.
Note
This endpoint is not expected to be versioned, though versioning will work on it.
Response:
Response body: JSON dictionary. If Setting IPMI Credentials is requested, body will contain the following keys:
If an error happens during request processing, Ironic Inspector returns a response with an appropriate HTTP code set, e.g. 400 for bad request or 404 when something was not found (usually node in cache or node in ironic). The following JSON body is returned:
{
"error": {
"message": "Full error message"
}
}
This body may be extended in the future to include details that are more error specific.
The API supports optional API versioning. You can query for minimum and maximum API version supported by the server. You can also declare required API version in your requests, so that the server rejects request of unsupported version.
Note
Versioning was introduced in Ironic Inspector 2.1.0.
All versions must be supplied as string in form of X.Y, where X is a major version and is always 1 for now, Y is a minor version.
If X-OpenStack-Ironic-Inspector-API-Version header is sent with request, the server will check if it supports this version. HTTP error 406 will be returned for unsupported API version.
All HTTP responses contain X-OpenStack-Ironic-Inspector-API-Minimum-Version and X-OpenStack-Ironic-Inspector-API-Maximum-Version headers with minimum and maximum API versions supported by the server.
Note
Maximum is server API version used by default.
The API supports API discovery. You can query different parts of the API to discover what other endpoints are avaliable.
GET / List API Versions
Response:
Response body: JSON dictionary containing a list of versions, each version contains:
GET /v1 List API v1 resources
Response:
Response body: JSON dictionary containing a list of resources, each resource contains: