Chapter 3. Baselines API
Baselines are a set of facts that can be created and managed by using the API.
The following command-line examples demonstrate how to use the baselines API to create and manage baselines. You can create baselines from scratch, or by copying from a system inventory ID, from a baseline ID, and from an historical system profile ID.
3.1. Creating a new baseline from scratch
You can create a new baseline from scratch.
An example of a create.json
file follows:
{ "baseline_facts": [ { "name": "fact name 1", "value": "fact value 1" }, { "name": "fact name 2", "value": "fact value 2" }, { "name": "category 1", "values": [ { "name": "sub fact name 1", "value": "sub fact value 1" } ] } ], "display_name": "demo baseline" }
The following examples show a CURL command using POST with the JSON data method for creating a new baseline from scratch.
Request:
$ curl -u username:password https://cloud.redhat.com/api/system-baseline/v1/baselines -X POST -d @create.json -H "content-type: application/json"
Response:
{ "account": "[account number]", "baseline_facts": [ { "name": "category 1", "values": [ { "name": "sub fact name 1", "value": " sub fact value 1" } ] }, {:context: {parent-context} "name": "fact name 1", "value": "fact value 1" }, { "name": "fact name 2" "value": "fact value 2" } ], "created": "2020-05-18T20:25:36.328741Z", "display_name": "demo baseline", "fact_count": 3, "id": "9565f205-5816-43b4-953e-a29fed8b40ec", "updated": "2020-05-18T20:25:36.328745Z" }
3.2. Copying an existing system to create a new baseline
You can copy an existing system to create a new baseline by using the API.
An example create-from-inv.json
file follows:
{"inventory_uuid": "<UUID>", "display_name": "from-inv1"}
Request:
$ curl -k -X POST -d @create-from-inv.json https://username:password@cloud.redhat.com/api/system-baseline/v1/baselines -H 'content-type: application/json'
Response:
Note that some of the facts have been removed from the response to improve readability.
{ [ { "Name": "number_of_sockets", "Value": "1" }, { "Name": "cores_per_socket", "Value": "1" }, { "Name": "number_of_cpus", "Value": "None" }, { "Name": "system_memory", "Value": "488.35 MiB" } ], "Created": "2019-08-27T15:34:38.504298Z", "Display_name": "from-inv1", "Fact_count": 20, "Id": "UUID", "Updated": "2019-08-27T15:34:38.504298Z" }
3.3. Copying an existing baseline to create a new baseline
You can copy an existing baseline to create a new baseline by using the API, by using the GET and POST methods.
Obtain the list of existing baseline IDs via GET:
$ curl -X GET https://username:password@cloud.redhat.com/api/system-baseline/v1/baselines-H ‘content-type: application/json’
- Select the baseline ID you want to copy from to create a new baseline.
Create a new baseline using the selected baseline ID via the POST method. You must provide a new display name; otherwise it will result in a 400 error.
$ curl -X POST https://username:password@cloud.redhat.com/api/system-baseline/v1/baselines/<ID>?display_name=copied-from-baseline-name
3.4. Copying a historical system profile to create a new baseline
You can copy a historical system profile to create a new baseline via API.
An example create-from-hsp.json
file follows:
{"hsp_uuid": "<UUID>", "display_name": "from-hsp1"}
Request:
$ curl -k -X POST -d @create-from-hsp.json https://username:password@cloud.redhat.com/api/system-baseline/v1/baselines-H 'content-type: application/json'
Response:
Note that some of the facts have been removed from the response to improve readability.
{ [ { "Name": "number_of_sockets", "Value": "1" }, { "Name": "cores_per_socket", "Value": "1" }, { "Name": "number_of_cpus", "Value": "None" }, { "Name": "system_memory", "Value": "488.35 MiB" } ], "Created": "2019-08-27T15:34:38.504298Z", "Display_name": "from-inv1", "Fact_count": 20, "HSP_uuid": "UUID", "Updated": "2019-08-27T15:34:38.504298Z" }
3.5. Sorting baselines
You can sort baselines by using the API GET method by appending order_by
and order_how
parameters.
-
order_by
parameter accepts the following values:display_name
,created_on
, andupdated
-
order_how
parameter accepts the following values for sorting the results:ASC
(ascending) andDESC
(descending)
By default, results are sorted by alphabetical order on display name.
Request:
$ curl -X GET https://username:password@cloud.redhat.com/api/system-baseline/v1/baselines?order_by=created_on&order_how=DESC
3.6. Editing a baseline
You can edit a baseline by using the API, by using the curl
command.
$ curl -u username:password https://cloud.redhat.com/api/system-baseline/v1$/baselines/[uuid]
3.7. Exporting baselines
You can export baselines as a CSV file by using the API GET method.
$ curl -X GET https://username:password@cloud.redhat.com/api/system-baseline/v1/baselines -H ‘accept: text/csv’
3.8. Deleting a baseline
You can delete a baseline by using the API.
Use the following curl command to delete a baseline via the API.
$ curl -u username:password https://cloud.redhat.com/api/system-baseline/v1/baselines/[ID] -X DELETE