API Guide
Reference documentation for using Satellite's Representational State Transfer (REST) API
Edition 1.0
Abstract
Chapter 1. Introduction to Red Hat Satellite API Copy linkLink copied to clipboard!
1.1. The Red Hat Satellite API Copy linkLink copied to clipboard!
Note
https://satellite6.example.com/apidoc/v2.html
(replace satellite6.example.com with the host name of your Satellite Server). Be aware that even though versions 1 and 2 of the Satellite 6 API are available, Red Hat only supports version 2.
- Broad client support: Any programming language, framework, or system with support for HTTP protocol can use the API;
- Self descriptive: Client applications require minimal knowledge of the Red Hat Satellite infrastructure as many details are discovered at runtime;
- Resource based model: The resource based REST model provides a natural way to manage a virtualization platform.
- integrate with enterprise IT systems;
- integrate with third-party applications;
- perform automated maintenance or error checking tasks;
- automate repetitive tasks with scripts.
1.2. Representational State Transfer Copy linkLink copied to clipboard!
GET
, POST
, PUT
, and DELETE
. This provides a stateless communication between the client and server where each request acts independent of any other request and contains all necessary information to complete the request.
1.3. Satellite API Compared to Hammer CLI Tool Copy linkLink copied to clipboard!
-d
option to inspect API calls issued by Hammer, for example hammer -d organization list
). Changes in the API are automatically reflected in Hammer, while scripts using the API directly have to be updated manually.
Chapter 2. API Reference Copy linkLink copied to clipboard!
https://satellite6.example.com/apidoc/v2.html
(replace satellite6.example.com with the host name of your Satellite Server). Be aware that even though versions 1 and 2 of the Satellite 6 API are available, Red Hat only supports version 2.
2.1. Understanding the API Syntax Copy linkLink copied to clipboard!
HTTP_VERB API_ROUTE
HTTP_VERB API_ROUTE
http://satellite6.example.com/apidoc/v2/hosts.html
for some examples. If you are already familiar with API syntax and the curl
command you can skip this section.
curl
manual page show the following basic syntax: curl [options] [URL...]
curl [options] [URL...]
-X, --request command
, where command is an HTTP verb.
Using the GET HTTP Verb
GET /api/hosts
with the curl
syntax results in: curl -X GET https://satellite6.example.com/api/hosts
curl -X GET https://satellite6.example.com/api/hosts
-u
option, and the -k
option to skip SSL peer certificate verification checks:
:parameter
. For example: GET /api/hosts/:id
GET /api/hosts/:id
id
.
Note
v2
in the URL for API calls.
Using the POST HTTP Verb
-d, --data
option followed by the quoted JSON formatted data enclosed in braces {}
. Alternatively, the unquoted JSON formatted data can be enclosed in a file, and specified using the curl
command's @
option. For example, -d @file.json
.
json_verify
tool and the json_reformat
tool.
json_verify
tool, you can check the validity of a JSON file as follows:
json_verify < test_file.json
$ json_verify < test_file.jsonjson_verify < test_file.jsonjson_verify < test_file.json
json.tool
: curl API_call | python -m json.tool
curl API_call | python -m json.tool
json_reformat
tool: curl API_call | json_reformat
curl API_call | json_reformat
POST /katello/api/activation_keys
POST /katello/api/activation_keys
POST /katello/api/activation_keys
command:
curl -X POST -k -u sat_username:sat_password \ -d @file_of_json-formatted_data \ https://satellite6.example.com/katello/api/activation_keys
curl -X POST -k -u sat_username:sat_password \
-d @file_of_json-formatted_data \
https://satellite6.example.com/katello/api/activation_keys
activation-key.json
, with contents as follows:
{"organization_id":1, "name":"TestKey", "description":"Just for testing"}
{"organization_id":1, "name":"TestKey", "description":"Just for testing"}
Using the PUT HTTP Verb
-d, --data
option followed by the quoted JSON formatted data enclosed in braces {}
. Alternatively, the unquoted JSON formatted data can be enclosed in a file, and specified using the curl
command's @
option. For example, -d @file.json
.
PUT /katello/api/activation_keys/:id
PUT /katello/api/activation_keys/:id
curl -X PUT -k -u sat_username:sat_password \ -d @file_of_json-formatted_data \ https://satellite6.example.com/katello/api/activation_keys/:id
curl -X PUT -k -u sat_username:sat_password \
-d @file_of_json-formatted_data \
https://satellite6.example.com/katello/api/activation_keys/:id
{"organization_id":1, "name":"TestKey", "description":"Just for testing","max_hosts":"10" }
{"organization_id":1, "name":"TestKey", "description":"Just for testing","max_hosts":"10" }
Using the DELETE HTTP Verb
curl -X DELETE -k -u sat_username:sat_password \ https://satellite6.example.com/katello/api/activation_keys/:id
curl -X DELETE -k -u sat_username:sat_password \
https://satellite6.example.com/katello/api/activation_keys/:id
Relating API Error Messages to the API Reference
Nested_Resource.Attribute_Name
Nested_Resource.Attribute_Name
Resource[Nested_Resource_attributes][Attribute_Name_id]
Resource[Nested_Resource_attributes][Attribute_Name_id]
2.2. Understanding the JSON Response Format Copy linkLink copied to clipboard!
json.tool
module gives a more human readable format.
JSON Response Format for Collections
GET /api/domains
. The output was piped through json.tool
to make the results section easier to read.
total
— The total number of objects without any search parameters.subtotal
— The number of objects returned with the given search parameters (if there is no search, then subtotal is equal to total).page
— The page number.per_page
— The maximum number of objects returned per page.limit
— The specified number of objects to return in a collection response.offset
— The number of objects skipped before returning a collection.search
— The search string based onscoped_scoped
syntax.sort
by
— The field that the collection is sorted by.order
— The sort order, either ASC for ascending or DESC for descending.
results
— The collection of objects.
JSON Response Format for Single Objects
:id
or :name
, is required in the GET request. Note that :name
cannot always be used as a unique identifier, but :id
can always be used. The format for a single-object JSON response consists of only the object’s attributes.
GET /api/domains/23
or GET /api/domains/qa.lab.example.com
.
Chapter 3. Authenticating API Calls Copy linkLink copied to clipboard!
3.1. Using SSL Authentication Copy linkLink copied to clipboard!
- Obtain a certificate from the Satellite Server with which you want to communicate (satellite6.example.com) using one of the following options:
- To obtain a certificate using SSH, run the following command:
scp root@satellite6.example.com:/var/www/html/pub/katello-server-ca.crt ./
$ scp root@satellite6.example.com:/var/www/html/pub/katello-server-ca.crt ./scp root@satellite6.example.com:/var/www/html/pub/katello-server-ca.crt ./scp root@satellite6.example.com:/var/www/html/pub/katello-server-ca.crt ./
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - If you execute the command directly on the Satellite Server, obtain a certificate from the locally available copy by running the following command:
cp /var/www/html/pub/katello-server-ca.crt ./
$ cp /var/www/html/pub/katello-server-ca.crt ./
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - To obtain a certificate using HTTP, run the following command:
curl -O http://satellite6.example.com/pub/katello-server-ca.crt
$ curl -O http://satellite6.example.com/pub/katello-server-ca.crtcurl -O http://satellite6.example.com/pub/katello-server-ca.crtcurl -O http://satellite6.example.com/pub/katello-server-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Warning
Retrieving a certificate using an unencrypted HTTP connection might present a security risk.
- Use the certificate on your client as a certificate authority to verify the identity of the Satellite Server:
curl -X GET -u sat_username:sat_password \ -H "Accept:application/json" --cacert katello-server-ca.crt \ https://satellite6.example.com/katello/api/organizations
$ curl -X GET -u sat_username:sat_password \curl -X GET -u sat_username:sat_password \curl -X GET -u sat_username:sat_password \curl -X GET -u sat_username:sat_password \curl -X GET -u sat_username:sat_password \ -H "Accept:application/json" --cacert katello-server-ca.crt \ https://satellite6.example.com/katello/api/organizationshttps://satellite6.example.com/katello/api/organizationshttps://satellite6.example.com/katello/api/organizations
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GET
is the default action and therefore-X GET
attribute can be omitted here. - Create a Network Security Services (NSS) database to store the certificate:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow If the NSS database already exists you will be prompted for the password as follows:Enter Password or Pin for "NSS Certificate DB":
Enter Password or Pin for "NSS Certificate DB":
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Use the following command to permanently include the certificate in the NSS database:
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "Red Hat Satellite" \ -i katello-server-ca.crt
$ certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "Red Hat Satellite" \ -i katello-server-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This imports the certificate into the NSS database, which means you can omit the--cacert
option for each request. You can test this as follows:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. Using HTTP Authentication Copy linkLink copied to clipboard!
Important
3.3. Using OAuth Authentication Copy linkLink copied to clipboard!
3.3.1. Configuring OAuth Copy linkLink copied to clipboard!
/etc/foreman/settings.yaml
configuration file and can be viewed in the web UI by going to → → . The is the token to be used by all OAuth clients. Certain values in the web UI cannot be changed. These values can only be changed by running the satellite-installer
script again with the new options. Note that any manual changes to the file will be lost when upgrading. Enter the following command to see all the OAuth related installer options:
satellite-installer --full-help | grep oauth
# satellite-installer --full-help | grep oauth
false
in the /etc/foreman/settings.yaml
file. If you want to specify the user under which the request is made, change this configuration option to true
. This allows clients to send a FOREMAN-USER header with the login of an existing Foreman user.
Important
3.3.2. Making an OAuth Request Copy linkLink copied to clipboard!
curl
is shown here to aid in understanding how it works.
Example 3.1. OAuth Request Example Using curl
curl 'https://satellite6.example.com/api/architectures' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json,version=2' \ -H 'FOREMAN-USER: User1' \ -H 'Authorization: OAuth oauth_version="1.0",oauth_consumer_key="secretkey",oauth_signature_method="hmac-sha1",oauth_timestamp=1321473112,oauth_signature=Il8hR8/ogj/XVuOqMPB9qNjSy6E='
$ curl 'https://satellite6.example.com/api/architectures' \curl 'https://satellite6.example.com/api/architectures' \curl 'https://satellite6.example.com/api/architectures' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json,version=2' \
-H 'FOREMAN-USER: User1' \-H 'FOREMAN-USER: User1' \-H 'FOREMAN-USER: User1' \
-H 'Authorization: OAuth oauth_version="1.0",oauth_consumer_key="secretkey",oauth_signature_method="hmac-sha1",oauth_timestamp=1321473112,oauth_signature=Il8hR8/ogj/XVuOqMPB9qNjSy6E='-H 'Authorization: OAuth oauth_version="1.0",oauth_consumer_key="secretkey",oauth_signature_method="hmac-sha1",oauth_timestamp=1321473112,oauth_signature=Il8hR8/ogj/XVuOqMPB9qNjSy6E='-H 'Authorization: OAuth oauth_version="1.0",oauth_consumer_key="secretkey",oauth_signature_method="hmac-sha1",oauth_timestamp=1321473112,oauth_signature=Il8hR8/ogj/XVuOqMPB9qNjSy6E='
oauth_timestamp
change. Also, the signature reflects every parameter, HTTP method, and URI change. Therefore it is recommend to use an OAuth client library to construct all OAuth parameters.
Chapter 4. Getting Started with the Red Hat Satellite API Copy linkLink copied to clipboard!
url = 'https://satellite6.example.com/api/v2/' capsule_url = 'https://capsule.example.com:8443/api/v2/' katello_url = 'https://satellite6.example.com/katello/api/v2/'
url = 'https://satellite6.example.com/api/v2/'
capsule_url = 'https://capsule.example.com:8443/api/v2/'
katello_url = 'https://satellite6.example.com/katello/api/v2/'
/etc/rhsm/rhsm.conf
file, in the port
entry of the [server] section. You can use these values to fully automate your scripts, removing any need to verify which ports to use.
4.1. API Examples Using Curl Copy linkLink copied to clipboard!
curl
to perform various tasks using the Satellite API.
4.1.1. Performing Simple Queries Copy linkLink copied to clipboard!
curl
to search for information about your Satellite deployment. These examples include both the actual command and some sample output, and example values for user names and passwords. Expect different results for each deployment. These examples also use the python -m json.tool
command to format the output.
Note
-k
(insecure) option to bypass certificate checks.
-u username:password
or, if you do not include the password, the command prompts you to enter it. Red Hat recommends that you do not include the password as part of the command, because it then becomes part of your shell history and might present a security risk. These examples include the password only for the sake of simplicity.
-s
(silent) option with curl
that you will not see a progress meter or any error messages.
The following is a basic query that returns a list of resources. Such requests return a list of data wrapped in metadata, while other request types only return the actual object.
Example 4.1. Listing Users
The following query returns information for the host satellite6.example.com
:
The following query returns all facts for the host satellite6.example.com
:
The following query returns all hosts that match the pattern "example":
The following query returns all hosts in the "production" environment:
The following query returns all hosts with a model name "RHEV Hypervisor":
4.1.2. Creating and Modifying Resources Copy linkLink copied to clipboard!
Accept:version=2
in the request header. The URL specification takes precedence.
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X POST \ -u username:password -k \ -d json-formatted-data https://satellite6.example.com
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X POST \
-u username:password -k \
-d json-formatted-data https://satellite6.example.com
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X POST -u sat_username:sat_password \ -k -d "{\"architecture\":{\"name\":\"i686\"}}" \ https://satellite6.example.com/api/architectures
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X POST -u sat_username:sat_password \
-k -d "{\"architecture\":{\"name\":\"i686\"}}" \
https://satellite6.example.com/api/architectures
{"name":"i686","id":3,"created_at":"2015-10-29T13:21:09Z","updated_at":"2015-10-29T13:21:09Z","operatingsystems":[],"images":[]}
{"name":"i686","id":3,"created_at":"2015-10-29T13:21:09Z","updated_at":"2015-10-29T13:21:09Z","operatingsystems":[],"images":[]}
hammer
on the Satellite Server to verify the results:
Example 4.2. Creating a New User
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X POST \ -u sat_username:sat_password -k \ -d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \ https://satellite6.example.com/api/users
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X POST \
-u sat_username:sat_password -k \-u sat_username:sat_password -k \-u sat_username:sat_password -k \-u sat_username:sat_password -k \-u sat_username:sat_password -k \
-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \
https://satellite6.example.com/api/usershttps://satellite6.example.com/api/usershttps://satellite6.example.com/api/users
4.1.2.1. Uploading Content to the Satellite Server Copy linkLink copied to clipboard!
curl
with the Satellite 6 API to upload and import large files to your Satellite Server. This process involves four steps:
- Create an upload request.
- Upload the content.
- Import the content.
- Delete the upload request.
Procedure 4.1. Uploading Content to the Satellite Server
- Create the upload request. Ensure you modify the example parameters to suit your deployment:
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X POST \ -u sat_username:sat_password -k -d "{}" \ https://satellite6.example.com/katello/api/repositories/3/content_uploads
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X POST \ -u sat_username:sat_password -k -d "{}" \ https://satellite6.example.com/katello/api/repositories/3/content_uploads
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This command returns theupload_id
similar to the following:{"upload_id":"0be156b1-f373-4cad-89d0-924f8f4491d2","_href":"/pulp/api/v2/content/uploads/0be156b1-f373-4cad-89d0-924f8f4491d2/"}
{"upload_id":"0be156b1-f373-4cad-89d0-924f8f4491d2","_href":"/pulp/api/v2/content/uploads/0be156b1-f373-4cad-89d0-924f8f4491d2/"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Upload your content. Ensure you use the correct MIME type when you upload data. The "application/json" MIME type is used for the majority of requests to Satellite 6. Combine the
upload_id
, MIME type, and other parameters to upload content:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - After you have uploaded the content to the Satellite Server, you need to import it into the appropriate repository. Until you complete this step, the Satellite Server will not be aware of the new content:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - After you have successfully uploaded and imported your content, you can delete the upload request. This frees any temporary disk space that was used during the upload:
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://satellite6.example.com/katello/api/repositories/3/content_uploads/0be156b1-f373-4cad-89d0-924f8f4491d2
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://satellite6.example.com/katello/api/repositories/3/content_uploads/0be156b1-f373-4cad-89d0-924f8f4491d2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Example 4.3. Uploading Content Larger than 30 MB
- Download the sample module:
wget https://forgeapi.puppetlabs.com/v3/files/theforeman-foreman-5.0.1.tar.gz?_ga=1.267255502.1792403825.1430297670 -O theforeman-foreman-5.0.1.tar.gz
$ wget https://forgeapi.puppetlabs.com/v3/files/theforeman-foreman-5.0.1.tar.gz?_ga=1.267255502.1792403825.1430297670 -O theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Split the module into 50,000 byte chunks:split --bytes 50000 --numeric-suffixes --suffix-length=1 theforeman-foreman-5.0.1.tar.gz foreman_module.
$ split --bytes 50000 --numeric-suffixes --suffix-length=1 theforeman-foreman-5.0.1.tar.gz foreman_module.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow View the resulting files:ls -la theforeman-foreman-5.0.1.tar.gz foreman_module.*
$ ls -la theforeman-foreman-5.0.1.tar.gz foreman_module.* -rw-r--r--. 1 root root 50000 Nov 4 04:42 foreman_module.0 -rw-r--r--. 1 root root 32928 Nov 4 04:42 foreman_module.1 -rw-r--r--. 1 root root 82928 Nov 4 04:41 theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create a new upload request (this is the equivalent of
cat
on the Satellite Server).Copy to Clipboard Copied! Toggle word wrap Toggle overflow The above command returns an upload ID:{"upload_id":"9585528f-07ad-4bb1-9c80-ccece249b2b7","_href":"/pulp/api/v2/content/uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7/"}
{"upload_id":"9585528f-07ad-4bb1-9c80-ccece249b2b7","_href":"/pulp/api/v2/content/uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7/"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Upload the file chunks that you created in Step 1. Notice the use of the
offset
parameter in this example and how it relates to the file size:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Import the complete upload to the repository:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Delete the upload request:
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://ibm-vm01.example.com/katello/api/repositories/2/content_uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://ibm-vm01.example.com/katello/api/repositories/2/content_uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Log in to the Satellite Server to check if the file was transferred correctly:
ls -la /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz
$ ls -la /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz -rw-r--r--. 1 apache apache 82928 Nov 4 04:55 /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Compare the files:cmp /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz theforeman-foreman-5.0.1.tar.gz
$ cmp /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $?
$ echo $? 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3. Overriding Smart Class Parameters Copy linkLink copied to clipboard!
https://satellite6.example.com/apidoc/v2/smart_class_parameters/update.html
.
GET /api/smart_class_parameters
. Using curl
, the command is as follows:
curl -X GET -s -k -u sat_username:sat_password \ https://satellite6.example.com/api/smart_class_parameters
$ curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \
https://satellite6.example.com/api/smart_class_parametershttps://satellite6.example.com/api/smart_class_parametershttps://satellite6.example.com/api/smart_class_parameters
curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameters
$ curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameters
puppetclass_name
and key
, which enables you to search for a specific parameter. For example, using the -d, --data
option to pass URL encoded data:
curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'
$ curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'
GET /api/smart_class_parameters/63
. Using curl
, the command would be:
curl -X GET -s -k -u sat_username:sat_password \ https://satellite6.example.com/api/smart_class_parameters/63
$ curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \
https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -s -k -u sat_username:sat_password \ -d '{"smart_class_parameter":{"override":true}}' \ https://satellite6.example.com/api/smart_class_parameters/63
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \
-d '{"smart_class_parameter":{"override":true}}' \
https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -s -k -u sat_username:sat_password \ -d '{"smart_class_parameter":{"override_value":{"match":"hostgroup=Test","value":"2.4.6"}}}' \ https://satellite6.example.com/api/smart_class_parameters/63
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \
-d '{"smart_class_parameter":{"override_value":{"match":"hostgroup=Test","value":"2.4.6"}}}' \
https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63
https://satellite6.example.com/apidoc/v2/override_values.html
.
curl -X DELETE -s -u sat_username:sat_password \ https://satellite6.example.com/api/smart_class_parameters/63/override_values/3
$ curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \
https://satellite6.example.com/api/smart_class_parameters/63/override_values/3https://satellite6.example.com/api/smart_class_parameters/63/override_values/3https://satellite6.example.com/api/smart_class_parameters/63/override_values/3
4.1.3.1. Modifying a Smart Class Parameter Using an External File Copy linkLink copied to clipboard!
Procedure 4.2. Modifying a Smart Class Parameter Using an External File
- Search for the Puppet Class by name, in this case,
motd
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Each Smart Class Parameter has an ID that is global for the same Satellite instance. Thecontent
parameter of themotd
class hasid=3
in this Satellite Server. Do not confuse this with the Puppet Class ID which appears just before the Puppet Class name. - Use the parameter ID
3
to get the information specific to themotd
parameter and redirect the output to a file, for example,output_file.json
:curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X GET \ -u sat_user:sat_passwd -k \ "https://satellite6.example.com/api/smart_class_parameters/3 \ | python -m json.tool > output_file.json
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X GET \ -u sat_user:sat_passwd -k \ "https://satellite6.example.com/api/smart_class_parameters/3 \"https://satellite6.example.com/api/smart_class_parameters/3 \"https://satellite6.example.com/api/smart_class_parameters/3 \ | python -m json.tool > output_file.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Copy the file created in the previous step to a new file for editing, for example,
changed_file.json
. Open the file in an editor and modify the desired values. In this example, we wish to change the content parameter of themotd
module, which requires changing theoverride
option fromfalse
totrue
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - After editing the file, verify that it looks as follows and then save the changes:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Use a PUT command as follows to apply the changes to Satellite Server:
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X PUT -u $user:$passwd \ -d @changed_file.json \ -k "https://satellite6.example.com/api/smart_class_parameters/3
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X PUT -u $user:$passwd \ -d @changed_file.json \ -k "https://satellite6.example.com/api/smart_class_parameters/3-k "https://satellite6.example.com/api/smart_class_parameters/3-k "https://satellite6.example.com/api/smart_class_parameters/3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.4. Applying Errata to a Host or Host Collection Copy linkLink copied to clipboard!
curl
with the PUT command to apply errata to a host, host group, or host collection. The following is the basic syntax of a PUT request:
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -u sat_username:sat_password -k \ -d json-formatted-data https://satellite6.example.com
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-u sat_username:sat_password -k \
-d json-formatted-data https://satellite6.example.com
https://satellite6.example.com/apidoc/v2.html
) to find a URL to use for applying Errata. You can use the Satellite web UI to help discover the format for the search query. Navigate to → and select a host collection. Go to → and notice the search query box contents. For example, for a Host Collection called my-collection the search box contains host_collection="my-collection"
. This will be used in the example below for Host Collections.
Example 4.4. Applying Errata to a Host
/katello/api/hosts/bulk/install_content
, is used to show the format required for a simple search.
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -u sat_username:sat_password -k \ -d "{\"organization_id\":1,\"included\":{\"search\":\"my-host\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-u sat_username:sat_password -k \
-d "{\"organization_id\":1,\"included\":{\"search\":\"my-host\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content
Example 4.5. Applying Errata to a Host Collection
host_collection="my-collection"
as seen in the Satellite web UI.
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -u sat_username:sat_password -k \ -d "{\"organization_id\":1,\"included\":{\"search\":\"host_collection=\\\"my-collection\\\"\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-u sat_username:sat_password -k \
-d "{\"organization_id\":1,\"included\":{\"search\":\"host_collection=\\\"my-collection\\\"\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content
4.2. API Examples Using Ruby Copy linkLink copied to clipboard!
Important
4.2.1. Creating Objects Using Ruby Copy linkLink copied to clipboard!
4.2.2. Using Apipie Bindings Copy linkLink copied to clipboard!
4.3. API Examples Using Python Copy linkLink copied to clipboard!
Important
4.3.1. Creating Objects Using Python Copy linkLink copied to clipboard!
4.3.2. Running Queries Using Python Copy linkLink copied to clipboard!
sat6api.py
and then add the following content:
./sat6api.py
from the command line to display the results.
4.4. Using Extended Searches Copy linkLink copied to clipboard!
os_description
, which you can use in your API query as follows:
4.5. Using Searches with Pagination Control Copy linkLink copied to clipboard!
per_page
and page
pagination parameters to limit the search results returned by an API search query. The per_page
parameter specifies the amount per page and the page
parameter specifies which page, as calculated by the per_page
parameter, to return.
per_page
value has a default of 20 which applies when you specify the page
parameter.
Example 4.6. Listing Content Views
curl -X GET --user sat_username:sat_password \ "https://satellite6.example.com/katello/api/content_views?per_page=10&page=3"
$ curl -X GET --user sat_username:sat_password \
"https://satellite6.example.com/katello/api/content_views?per_page=10&page=3"
Example 4.7. Listing Activation Keys
curl -X GET --user sat_username:sat_password \ "https://satellite6.example.com/katello/api/activation_keys?organization_id=1&per_page=30&page=2"
$ curl -X GET --user sat_username:sat_password \
"https://satellite6.example.com/katello/api/activation_keys?organization_id=1&per_page=30&page=2"
Example 4.8. Returning Multiple Pages
for i in `seq 1 3`; do curl -X GET --user sat_username:sat_password \ "https://satellite6.example.com/katello/api/content_views?per_page=5&page=$i"; done
$ for i in `seq 1 3`; do curl -X GET --user sat_username:sat_password \
"https://satellite6.example.com/katello/api/content_views?per_page=5&page=$i"; done
4.6. Working with Life Cycle Environments Copy linkLink copied to clipboard!
prior_id
parameter.
https://satellite6.example.com/apidoc/v2/lifecycle_environments.html
. The API routes include /katello/api/environments
and /katello/api/organizations/:organization_id/environments
.
1
, as follows:
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X GET \ -u sat_user:sat_password -k \ https://satellite6.example.com/katello/api/organizations/1/environments | python -m json.tool
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X GET \
-u sat_user:sat_password -k \-u sat_user:sat_password -k \-u sat_user:sat_password -k \
https://satellite6.example.com/katello/api/organizations/1/environments | python -m json.toolhttps://satellite6.example.com/katello/api/organizations/1/environments | python -m json.toolhttps://satellite6.example.com/katello/api/organizations/1/environments | python -m json.tool
1
, is used as the starting point for creating Life Cycle Environments.
Procedure 4.3. Creating Linked Life Cycle Environments
- Choose an existing Life Cycle Environment that you want to use as a starting point. List the environment using its ID, in this case the environment with ID
1
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create a new Life Cycle Environment using the
prior
option set to1
:- Create a JSON file, for example,
life-cycle.json
, with the following contents:{"organization_id":1,"label":"api-dev","name":"API Development","prior":1}
- Enter a command as follows:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
In the command output you can see the ID for this Life Cycle Environment is2
, and the Life Cycle Environment prior to this one is1
. This signifies that Life Cycle Environment1
and2
are linked. The Life Cycle Environment ID2
is used when creating a successor to this environment. - Create another Life Cycle Environment, using the
prior
option set to2
:- Edit the previously created
life-cycle.json
, updating thelabel
,name
, andprior
values:{"organization_id":1,"label":"api-qa","name":"API QA","prior":2}
- Enter a command as follows:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
In the command output you can see the ID for this Life Cycle Environment is3
, and the Life Cycle Environment prior to this one is2
. This signifies that Life Cycle Environment2
and3
are linked.
Updating a Life Cycle Environment
Deleting a Life Cycle Environment
curl -X DELETE -s -k -u sat_user:sat_password https://satellite6.example.com/katello/api/environments/:id
curl -X DELETE -s -k -u sat_user:sat_password https://satellite6.example.com/katello/api/environments/:id
Appendix A. API Response Codes Copy linkLink copied to clipboard!
Response | Explanation |
---|---|
200 OK | For a successful request action: show, index, update, or delete (GET, PUT, DELETE requests). |
201 Created | For a successful create action (POST request). |
301 Moved Permanently | Redirect when Satellite is restricted to use HTTPS and HTTP is attempted. |
400 Bad Request | A required parameter is missing or the search query has invalid syntax. |
401 Unauthorized | Failed to authorize the user (for example, incorrect credentials). |
403 Forbidden | The user has insufficient permissions to perform the action or read the resource, or the action is unsupported in general. |
404 Not Found | The record with the given ID does not exist. It can appear in show and delete actions when the requested record does not exist; or in create, update and delete actions when one of the associated records does not exist. |
409 Conflict | Could not delete the record due to existing dependencies (for example, host groups with hosts). |
415 Unsupported Media Type | The content type of the HTTP request is not JSON. |
422 Unprocessable Entity | Failed to create an entity due to some validation errors. Applies to create or update actions only. |
500 Internal Server Error | Unexpected internal server error. |
503 Service Unavailable | The server is not running. |
Appendix B. API Permissions Matrix Copy linkLink copied to clipboard!
Permission Name | Actions | Resource Type |
---|---|---|
view_activation_keys |
| Katello::ActivationKey |
create_activation_keys |
| Katello::ActivationKey |
edit_activation_keys |
| Katello::ActivationKey |
destroy_activation_keys |
| Katello::ActivationKey |
logout |
| |
view_architectures |
| |
create_architectures |
| |
edit_architectures |
| |
destroy_architectures |
| |
view_audit_logs |
| |
view_authenticators |
| |
create_authenticators |
| |
edit_authenticators |
| |
destroy_authenticators |
| |
view_bookmarks |
| |
create_bookmarks |
| |
edit_bookmarks |
| |
destroy_bookmarks |
| |
download_bootdisk |
| |
manage_capsule_content |
| SmartProxy |
view_capsule_content |
| SmartProxy |
view_compute_profiles |
| |
create_compute_profiles |
| |
edit_compute_profiles |
| |
destroy_compute_profiles |
| |
view_compute_resources |
| |
create_compute_resources |
| |
edit_compute_resources |
| |
destroy_compute_resources |
| |
view_compute_resources_vms |
| |
create_compute_resources_vms |
| |
edit_compute_resources_vms |
| |
destroy_compute_resources_vms |
| |
power_compute_resources_vms |
| |
console_compute_resources_vms |
| |
view_config_groups |
| |
create_config_groups |
| |
edit_config_groups |
| |
destroy_config_groups |
| |
view_config_reports |
| |
destroy_config_reports |
| |
upload_config_reports |
| |
view_containers |
| Container |
commit_containers |
| Container |
create_containers |
| Container |
destroy_containers |
| Container |
power_compute_resources_vms |
| ComputeResource |
view_content_hosts |
| Katello::System |
create_content_hosts |
| Katello::System |
edit_content_hosts |
| Katello::System |
destroy_content_hosts |
| Katello::System |
view_content_views |
| Katello::ContentView |
create_content_views |
| Katello::ContentView |
edit_content_views |
| Katello::ContentView |
destroy_content_views |
| Katello::ContentView |
publish_content_views |
| Katello::ContentView |
promote_or_remove_content_views |
| Katello::ContentView |
export_content_views |
| Katello::ContentView |
access_dashboard |
| |
view_discovered_hosts |
| Host |
submit_discovered_hosts |
| Host |
auto_provision_discovered_hosts |
| Host |
provision_discovered_hosts |
| Host |
edit_discovered_hosts |
| Host |
destroy_discovered_hosts |
| Host |
view_discovery_rules |
| DiscoveryRule |
create_discovery_rules |
| DiscoveryRule |
edit_discovery_rules |
| DiscoveryRule |
execute_discovery_rules |
| DiscoveryRule |
destroy_discovery_rules |
| DiscoveryRule |
view_domains |
| |
create_domains |
| |
edit_domains |
| |
destroy_domains |
| |
view_environments |
| |
create_environments |
| |
edit_environments |
| |
destroy_environments |
| |
import_environments |
| |
view_external_usergroups |
| |
create_external_usergroups |
| |
edit_external_usergroups |
| |
destroy_external_usergroups |
| |
view_external_variables |
| |
create_external_variables |
| |
edit_external_variables |
| |
destroy_external_variables |
| |
view_facts |
| |
upload_facts |
| |
view_filters |
| |
create_filters |
| |
edit_filters |
| |
destroy_filters |
| |
view_arf_reports |
| |
destroy_arf_reports |
| |
create_arf_reports |
| |
view_policies |
| ForemanOpenscap::Policy |
edit_policies |
| ForemanOpenscap::Policy |
create_policies |
| ForemanOpenscap::Policy |
destroy_policies |
| ForemanOpenscap::Policy |
assign_policies |
| ForemanOpenscap::Policy |
view_scap_contents |
| ForemanOpenscap::ScapContent |
view_scap_contents |
| ForemanOpenscap::ScapContent |
edit_scap_contents |
| ForemanOpenscap::ScapContent |
create_scap_contents |
| ForemanOpenscap::ScapContent |
destroy_scap_contents |
| ForemanOpenscap::ScapContent |
edit_hosts |
| Host |
edit_hostgroups |
| Host |
view_job_templates |
| JobTemplate |
create_job_templates |
| JobTemplate |
edit_job_templates |
| |
edit_job_templates |
| |
edit_remote_execution_features |
| RemoteExecutionFeature |
destroy_job_templates |
| JobTemplate |
lock_job_templates |
| JobTemplate |
create_job_invocations |
| JobInvocation |
view_job_invocations |
| JobInvocation |
execute_template_invocation | TemplateInvocation | |
filter_autocompletion_for_template_invocation |
| TemplateInvocation |
view_foreman_tasks |
| ForemanTasks::Task |
edit_foreman_tasks |
| ForemanTasks::Task |
create_recurring_logics | ForemanTasks::RecurringLogic | |
view_recurring_logics |
| ForemanTasks::RecurringLogic |
edit_recurring_logics |
| ForemanTasks::RecurringLogic |
view_globals |
| |
create_globals |
| |
edit_globals |
| |
destroy_globals |
| |
view_gpg_keys |
| Katello::GpgKey |
create_gpg_keys |
| Katello::GpgKey |
edit_gpg_keys |
| Katello::GpgKey |
destroy_gpg_keys |
| Katello::GpgKey |
view_host_collections |
| Katello::HostCollection |
create_host_collections |
| Katello::HostCollection |
edit_host_collections |
| Katello::HostCollection |
destroy_host_collections |
| Katello::HostCollection |
edit_classes |
| |
create_params |
| |
edit_params |
| |
destroy_params |
| |
view_hostgroups |
| |
create_hostgroups |
| |
edit_hostgroups |
| |
destroy_hostgroups |
| |
view_hosts |
| |
create_hosts |
| |
edit_hosts |
| |
destroy_hosts |
| |
build_hosts |
| |
power_hosts |
| |
console_hosts |
| |
ipmi_boot |
| |
puppetrun_hosts |
| |
search_repository_image_search |
| Docker/ImageSearch |
view_images |
| |
create_images |
| |
edit_images |
| |
destroy_images |
| |
view_lifecycle_environments |
| Katello::KTEnvironment |
create_lifecycle_environments |
| Katello::KTEnvironment |
edit_lifecycle_environments |
| Katello::KTEnvironment |
destroy_lifecycle_environments |
| Katello::KTEnvironment |
promote_or_remove_content_views_to_environments | Katello::KTEnvironment | |
view_locations |
| |
create_locations |
| |
edit_locations |
| |
destroy_locations |
| |
assign_locations |
| |
view_mail_notifications |
| |
view_media |
| |
create_media |
| |
edit_media |
| |
destroy_media |
| |
view_models |
| |
create_models |
| |
edit_models |
| |
destroy_models |
| |
view_operatingsystems |
| |
create_operatingsystems |
| |
edit_operatingsystems |
| |
destroy_operatingsystems |
| |
view_organizations |
| |
create_organizations |
| |
edit_organizations |
| |
destroy_organizations |
| |
assign_organizations |
| |
view_ptables |
| |
create_ptables |
| |
edit_ptables |
| |
destroy_ptables |
| |
lock_ptables |
| |
view_plugins |
| |
view_products |
| Katello::Product |
create_products |
| Katello::Product |
edit_products |
| Katello::Product |
destroy_products |
| Katello::Product |
sync_products |
| Katello::Product |
export_products |
| Katello::Product |
view_provisioning_templates |
| |
create_provisioning_templates |
| |
edit_provisioning_templates |
| |
destroy_provisioning_templates |
| |
deploy_provisioning_templates |
| |
lock_provisioning_templates |
| |
user_logout |
| |
my_account |
| |
api_status |
| |
view_puppetclasses |
| |
create_puppetclasses |
| |
edit_puppetclasses |
| |
destroy_puppetclasses |
| |
import_puppetclasses |
| |
view_realms |
| |
create_realms |
| |
edit_realms |
| |
destroy_realms |
| |
view_search |
| |
view_cases |
| |
attachments |
| |
configuration |
| |
app_root |
| |
view_log_viewer |
| |
logs |
| |
rh_telemetry_api |
| |
rh_telemetry_view |
| |
rh_telemetry_configurations |
| |
view_registries |
| DockerRegistry |
view_registries |
| DockerRegistry |
create_registries |
| DockerRegistry |
destroy_registries |
| DockerRegistry |
view_roles |
| |
create_roles |
| |
edit_roles |
| |
destroy_roles |
| |
access_settings |
| |
view_smart_proxies |
| |
create_smart_proxies |
| |
edit_smart_proxies |
| |
destroy_smart_proxies |
| |
view_smart_proxies_autosign |
| |
create_smart_proxies_autosign |
| |
destroy_smart_proxies_autosign |
| |
view_smart_proxies_puppetca |
| |
edit_smart_proxies_puppetca |
| |
destroy_smart_proxies_puppetca |
| |
view_statistics |
| |
view_subnets |
| |
create_subnets |
| |
edit_subnets |
| |
destroy_subnets |
| |
import_subnets |
| |
view_subscriptions |
| Organization |
attach_subscriptions |
| Organization |
unattach_subscriptions |
| Organization |
import_manifest |
| Organization |
delete_manifest |
| Organization |
view_sync_plans |
| Katello::SyncPlan |
create_sync_plans |
| Katello::SyncPlan |
edit_sync_plans |
| Katello::SyncPlan |
destroy_sync_plans |
| Katello::SyncPlan |
view_tasks |
| |
view_trends |
| |
create_trends |
| |
edit_trends |
| |
destroy_trends |
| |
update_trends |
| |
my_organizations |
| |
view_usergroups |
| |
create_usergroups |
| |
edit_usergroups |
| |
destroy_usergroups |
| |
view_users |
| |
create_users |
| |
edit_users |
| |
destroy_users |
|