API ガイド
Red Hat Satellite の Representational State Transfer (REST) API 使用ガイド
概要
第1章 Red Hat Satellite API について リンクのコピーリンクがクリップボードにコピーされました!
1.1. Red Hat Satellite API リンクのコピーリンクがクリップボードにコピーされました!
注記
https://satellite6.example.com/apidoc/v2.html (satellite6.example.com は Satellite サーバーのホスト名に置き換えてください) の Satellite サーバーからご利用いただけます。提供されている Satellite 6 API のバージョンは 1 と 2 ですが、Red Hat がサポートしているのはバージョン 2 のみである点に注意してください。
- 幅広いクライアントサポート: HTTP 対応のあらゆるプログラミング言語/フレームワーク/システムで使用することが可能です。
- 自己記述型: 詳しい情報の多くは実行時に確認できるため、クライアントアプリケーションに必要な仮想化インフラストラクチャーの知識は最小限で済みます。
- リソースベースのモデル: リソースベースの REST モデルにより仮想化プラットフォームを自然な形で管理することが可能です。
- エンタープライズ IT システムとの統合
- サードパーティー製のアプリケーションとの統合
- 自動メンテナンスやエラーチェックなどのタスクの実行
- スクリプトによる反復タスクの自動化
1.2. Representational State Transfer リンクのコピーリンクがクリップボードにコピーされました!
GET、POST、PUT、DELETE などの HTTP の標準メソッドで操作を実行します。これにより、クライアントとサーバー間のステートレスな通信が提供され、各要求は他の要求に依存せずに機能し、その要求を完了するために必要な情報をすべて含みます。
1.3. Hammer CLI ツールと Satellite API の比較 リンクのコピーリンクがクリップボードにコピーされました!
hammer -d organization list など、Hammer で発行した API の呼び出しを検査するには -d オプションを使用します)。API での変更は自動的に Hammer に適用されますが、API を直接使用するスクリプトは手動で更新する必要があります。
第2章 API リファレンス リンクのコピーリンクがクリップボードにコピーされました!
https://satellite6.example.com/apidoc/v2.html (satellite6.example.com は Satellite サーバーのホスト名に置き換えてください) の Satellite サーバーからご利用いただけます。提供されている Satellite 6 API のバージョンは 1 と 2 ですが、Red Hat がサポートしているのはバージョン 2 のみである点に注意してください。
2.1. API 構文の理解 リンクのコピーリンクがクリップボードにコピーされました!
HTTP_VERB API_ROUTE
HTTP_VERB API_ROUTE
http://satellite6.example.com/apidoc/v2/hosts.html の API リファレンスドキュメントの HOST セクションを参照してください。API 構文および curl コマンドに精通している場合にはこの章を飛ばして次に進んでください。
curl の man ページでは curl [options] [URL...]
curl [options] [URL...]
-X, --request command などが含まれます。command は HTTP の動詞に置き換えてください。
HTTP 動詞 (GET) の使用
GET /api/hosts など、API HOST セクションの例と、curl 構文を組み合わせると、curl -X GET https://satellite6.example.com/api/hosts
curl -X GET https://satellite6.example.com/api/hosts
-u オプションで名前を、-k オプションで SSL のピア証明書検証を省略する必要があります。
:parameter などのように、コロンが先頭にきてその後に用語が含まれるというものがあります。以下に例を示します。GET /api/hosts/:id
GET /api/hosts/:id
id で終わります。
注記
v2 を使用する必要はありません。
HTTP 動詞 (POST) の使用
-d, --data オプションの後に、{} カッコで閉じた JSON 形式の引用データを指定します。引用なしの JSON 形式のデータをファイルに指定することもできますが、その際は curl コマンドの @ オプションで指定します (例: -d @file.json)。
json_verify ツールと json_reformat ツールが提供されています。
json_verify ツールを使用すると、以下のように JSON ファイルの妥当性を確認することができます。
json_verify < test_file.json
$ json_verify < test_file.json
json.tool で、curl API_call | python -m json.tool
curl API_call | python -m json.tool
curl API_call | json_reformat
curl API_call | json_reformat
json_reformat ツールを使用してください。出力形式は「JSON 応答形式の理解」で説明しています。
POST /katello/api/activation_keys
POST /katello/api/activation_keys
POST /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
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 などのテストファイルを作成します。
{"organization_id":1, "name":"TestKey", "description":"Just for testing"}
{"organization_id":1, "name":"TestKey", "description":"Just for testing"}
HTTP 動詞 (PUT) の使用
-d, --data オプションの後に、{} カッコで閉じた JSON 形式の引用データを指定します。引用なしの JSON 形式のデータをファイルに指定することもできますが、その際は curl コマンドの @ オプションで指定します (例: -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" }
HTTP 動詞 (DELETE) の使用
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
API エラーメッセージと API リファレンスの関連付け
Nested_Resource.Attribute_Name
Nested_Resource.Attribute_Name
Resource[Nested_Resource_attributes][Attribute_Name_id]
Resource[Nested_Resource_attributes][Attribute_Name_id]
2.2. JSON 応答形式の理解 リンクのコピーリンクがクリップボードにコピーされました!
json.tool モジュールにかけると、人間がより判読しやすい形式で出力されます。
コレクション用の JSON 応答形式
GET /api/domains を使用した場合のドメイン一覧のコレクション JSON 応答形式です。出力は、結果セクションがより簡単に確認できるように json.tool でパイプしています。
total— 検索パラメーターなしのオブジェクトの合計数subtotal— 検索パラメーターを指定して返されたオブジェクト数 (検索がない場合には、累計は合計と同じになります)page— ページ数per_page— ページごとに返す最大数limit— コレクションの応答で返すオブジェクトの指定数offset— コレクションを返す前に省略するオブジェクト数search—scoped_scopedの構文をベースにした検索文字列sortby— コレクションをソートするためのフィールドorder— ソート順 (ASC は昇順、DESC は降順)
results— オブジェクトのコレクション
単一オブジェクトの JSON 応答形式
:id または :name が必要です。:name は一意識別子として常に使用できるわけではありませんが、:id は常に使用できる点に注意してください。単一オブジェクトの JSON 応答形式には、オブジェクトの属性のみが含まれます。
GET /api/domains/23 または GET /api/domains/qa.lab.example.com を使用時の単一オブジェクト JSON 応答形式です。
第3章 API 呼び出しの認証 リンクのコピーリンクがクリップボードにコピーされました!
3.1. SSL 認証の使用 リンクのコピーリンクがクリップボードにコピーされました!
- 以下のオプションの 1 つを使用して、通信する Satellite サーバー (satellite6.example.com) からの証明書を取得します。
- SSH を使用して証明書を取得するには、以下のコマンドを実行します。
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 - Satellite サーバーで直接コマンドを実行する場合は、以下のコマンドを実行してローカルで利用可能なコピーから証明書を取得します。
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 - HTTP を使用して証明書を取得するには、以下のコマンドを実行します。
curl -O http://satellite6.example.com/pub/katello-server-ca.crt
$ curl -O http://satellite6.example.com/pub/katello-server-ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告
暗号化されていない HTTP 接続を使用して証明書を取得すると、セキュリティーリスクにさらされる可能性があります。
- クライアント上の証明書を証明局として使用して、Satellite サーバーの ID を検証します。
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 \ -H "Accept:application/json" --cacert katello-server-ca.crt \ https://satellite6.example.com/katello/api/organizationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow GETはデフォルトのアクションであるため、-X GET属性はここでは省略可能です。 - Network Security Services (NSS) データベースを作成して証明書を保存します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NSS データベースがすでに存在する場合には、以下のようにパスワードが求められます。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 - 以下のコマンドを使用して、NSS データベースに永続的に証明書を追加します。
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.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、NSS データベースに証明書がインポートされ、要求ごとに--cacertオプションを指定する必要がなくなります。これは、以下のようにテストできます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. HTTP 認証の使用 リンクのコピーリンクがクリップボードにコピーされました!
重要
3.3. OAuth 認証の使用 リンクのコピーリンクがクリップボードにコピーされました!
3.3.1. OAuth の認証 リンクのコピーリンクがクリップボードにコピーされました!
/etc/foreman/settings.yaml の設定ファイルに保存されており、 → → の順に移動して Web UI から表示できます。 とは、すべての OAuth クライアントが使用するトークンのことです。Web UI の特定の値は変更できません。これらの値は satellite-installer スクリプトに新しいオプションを指定しなおして実行しなければ変更できません。ファイルを手動で変更した内容はアップグレード時に失われてしまう点に注意してください。以下のコマンドを実行して、OAuth 関連のインストーラーオプションをすべて表示します。
satellite-installer --full-help | grep oauth
# satellite-installer --full-help | grep oauth
/etc/foreman/settings.yaml の を false に設定します。要求を行ったユーザーを指定するには、この設定オプションを true に設定します。これにより、クライアントは FOREMAN-USER ヘッダーに既存の Foreman ユーザーのログインを指定して送信することができます。
重要
3.3.2. OAuth 要求の作成 リンクのコピーリンクがクリップボードにコピーされました!
curl を使用した OAuth 要求がどのように機能するか理解いただけるように一例を紹介しています。
例3.1 curl を使用した OAuth 要求の例
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' \
-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='
oauth_timestamp を変更すると変更されるはずです。また、署名はすべてのパラメーター、HTTP メソッド、URI の変更に反映されます。そのため、OAuth クライアントライブラリーを使用して OAuth パラメーターを構築することを推奨します。
第4章 Red Hat Satellite API の使用開始 リンクのコピーリンクがクリップボードにコピーされました!
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 ファイルにある [server] セクションの port エントリーをもとに、API にアクセスする際に必要な、正しいポートを判断することができます。これらの値を使用して、スクリプトを完全に自動化して、使用するポートを検証する必要性をなくすことができます。
4.1. curl を使用した API の例 リンクのコピーリンクがクリップボードにコピーされました!
curl を使用して Satellite API でさまざまなタスクを実行する方法について説明します。
4.1.1. シンプルなクエリーの実行 リンクのコピーリンクがクリップボードにコピーされました!
curl を使用して Satellite デプロイメントの情報を検索する方法を説明します。以下の例には、実際のコマンドと、サンプルの出力、ユーザー名やパスワードの値の例などが含まれます。デプロイメントごとに結果は異なります。また、以下の例では python -m json.tool コマンドを使用して出力をフォーマットしています。
注記
-k (セキュアではありません) オプションを使用して証明書チェックを省略することができます。
-u username:password の形式を使用するか、パスワードを追加していない場合にはコマンドでパスワードの入力が求められます。コマンドの一部としてパスワードを追加すると shell の履歴に残り、セキュリティーリスクとなる可能性があるため、Red Hat ではこれは推奨していません。以下の例では、単純化の目的としてのみ、パスワードをコマンドに含めています。
curl で -s (サイレント) オプションを使用する場合は、進捗バーやエラーメッセージが表示されないので注意してください。
以下は、リソースの一覧を返す基本的なクエリーです。このような要求は、メタデータでラップされたデータ一覧を返しますが、他の要求タイプでは実際のオブジェクトのみを返します。
例4.1 ユーザーの一覧表示
以下のクエリーは、ホスト satellite6.example.com の情報を返します。
以下のクエリーは、ホスト satellite6.example.com の全ファクトを返します。
以下のクエリーは、「example」というパターンと一致するホストをすべて返します。
以下のクエリーは、「production」環境内の全ホストを返します。
以下のクエリーでは、「RHEV Hypervisor」というモデル名を持つホストがすべて返されます。
以下のクエリーでは、host1.example.com という名前のホストが削除されます。
curl -k -u sat_username:sat_password -X DELETE https://satellite6.example.com/api/v2/hosts/host1.example.com
curl -k -u sat_username:sat_password -X DELETE https://satellite6.example.com/api/v2/hosts/host1.example.com
4.1.2. リソースの作成および変更 リンクのコピーリンクがクリップボードにコピーされました!
Accept:version=2 を使用するのと同じです。URL の指定が優先されます。
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 を使用して結果を検証することも可能です。
例4.2 新しいユーザーの作成
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 \
-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
4.1.2.1. Satellite サーバーへのコンテンツのアップロード リンクのコピーリンクがクリップボードにコピーされました!
curl を使用して、Satellite サーバーに大容量ファイルをアップロードしてインポートする方法を説明します。このプロセスには 4 つの手順が含まれます。
- アップロード要求を作成します。
- コンテンツをアップロードします。
- コンテンツをインポートします。
- アップロード要求を削除します。
手順4.1 Satellite サーバーへのコンテンツのアップロード
- アップロード要求を作成します。デプロイメントに適したサンプルパラメーターを変更するようにしてください。
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_uploadsCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、以下のようなupload_idを返します。{"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 - コンテンツをアップロードします。データのアップロード時には、正しい MIME タイプを使用していることを確認します。Satellite 6 に対する要求にはほぼ、「application/json」の MIME タイプが使用されます。
upload_idと MIME タイプ、他のパラメーターを組み合わせてコンテンツをアップロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Satellite サーバーにコンテンツをアップロードした後に、適切なリポジトリーにそのコンテンツをインポートする必要があります。この手順を完了するまで、Satellite サーバーではこの新しいコンテンツは認識されません。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンテンツのアップロードおよびインポートが正常に完了したら、アップロード要求を削除することができます。削除することで、アップロード中に使用した一時的なディスク領域を解放することができます。
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-924f8f4491d2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
例4.3 30 MB よりも大きいコンテンツのアップロード
- サンプルモジュールをダウンロードします。
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.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 50,000 バイトのチャンクにモジュールを分割します。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 結果ファイルを表示します。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
$ 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.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新規アップロード要求を作成します (これは Satellite サーバーでの
catと同じです)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドはアップロード 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 - 手順 1 で作成したファイルのチャンクをアップロードします。以下の例で
offsetパラメーターを使用して、ファイルサイズと関連付けている点に注意してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 完全なアップロードをリポジトリーにインポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - アップロード要求を削除します。
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-ccece249b2b7Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Satellite サーバーにログインして、ファイルが正しく転送されたかどうかを確認します。
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
$ 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.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを比較します。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.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow echo $? 0
$ echo $? 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3. スマートクラスのオーバーライド リンクのコピーリンクがクリップボードにコピーされました!
https://satellite6.example.com/apidoc/v2/smart_class_parameters/update.html にある同梱の API リファレンスで確認できます。
GET /api/smart_class_parameters のようになります。curl を使用する場合のコマンドは以下のようになります。
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 \
https://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_parameters
puppetclass_name と key の 2 つで、特定のパラメーターの検索が可能になります。たとえば、-d オプションと --data オプションを使用して URL のエンコードデータを渡すことができます。
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 です。curl を使用する場合のコマンドは以下のようになります。
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 \
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 \
-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 \
-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 \
-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 \
-d '{"smart_class_parameter":{"override_value":{"match":"hostgroup=Test","value":"2.4.6"}}}' \
https://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 \
https://satellite6.example.com/api/smart_class_parameters/63/override_values/3
4.1.3.1. 外部ファイルを使用したスマートクラスパラメーターの変更 リンクのコピーリンクがクリップボードにコピーされました!
手順4.2 外部ファイルを使用したスマートクラスパラメーターの変更
- 今回は
motdという名前で Puppet クラスを検索します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各スマートクラスパラメーターは、同じ Satellite インスタンスにおいてグローバルな ID となっています。motdクラスのcontentパラメーターは、この Satellite サーバーではid=3です。この ID は、Puppet クラス名の前に表示される Puppet クラス ID と間違わないようにしてください。 - パラメーター ID
3を使用して、motdパラメーター固有の情報を取得して、出力を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 \ | python -m json.tool > output_file.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 以前の手順で作成したファイルを
changed_file.jsonという新しいファイルにコピーして編集します。エディターでファイルを開き、任意の値に変更します。以下の例では、motdモジュールのコンテンツパラメーターを変更します。この際、overrideオプションをfalseからtrueに変更する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルの編集後に、以下のようになっていることを確認して、変更を保存します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のように PUT コマンドを使用して、Satellite サーバーに変更を適用します。
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/3Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.4. エラータのホストまたはホストコレクションへの適用 リンクのコピーリンクがクリップボードにコピーされました!
curl を使用して、エラータをホスト、ホストグループ、またはホストコレクションに適用することができます。以下は、PUT 要求の基本的な構文です。
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) を参照してエラータの適用に使用する URL を検索します。Satellite Web UI を使用すると、検索クエリー形式の検索に役立ちます。 → の順に移動して、ホストコレクションを選択します。 → に移動して、検索クエリーボックスに注目します。たとえば my-collection と呼ばれるホストコレクションでは、検索ボックスに host_collection="my-collection" が含まれます。以下のホストコレクションの例では、これを使用します。
例4.4 ホストへのエラータの適用
/katello/api/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
$ 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
例4.5 ホストコレクションへのエラータの適用
host_collection="my-collection" を渡すのに必要なエスケープレベルに注目してください。
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. Ruby を使用した API の例 リンクのコピーリンクがクリップボードにコピーされました!
重要
4.2.1. Ruby を使用したオブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
4.2.2. Apipie バインディングの使用 リンクのコピーリンクがクリップボードにコピーされました!
4.3. Python を使用した API の例 リンクのコピーリンクがクリップボードにコピーされました!
重要
4.3.1. Python を使用したオブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
4.3.2. Python を使用したクエリーの実行 リンクのコピーリンクがクリップボードにコピーされました!
sat6api.py という実行可能なファイルを作成して、以下の内容を追加します。
./sat6api.py を実行して、結果を表示することができます。
4.4. 詳細検索の使用 リンクのコピーリンクがクリップボードにコピーされました!
os_description で、以下のように API クエリーで使用することができます。
4.5. ページネーション制御のある検索の使用 リンクのコピーリンクがクリップボードにコピーされました!
per_page および page を使用して、API 検索クエリーが返す検索結果を絞り込むことができます。per_page パラメーターは、ページごとの項目数を指定し、page パラメーターは、per_page パラメーターで算出された数値をもとにどのページを返すかを指定します。
page パラメーターが指定されている場合にはper_page のデフォルト値は 20 が適用されます。
例4.6 コンテンツビューの表示
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"
例4.7 アクティベーションキーの表示
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"
例4.8 複数ページを返す設定
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. ライフサイクル環境との作業 リンクのコピーリンクがクリップボードにコピーされました!
prior_id パラメーターを使用します。
https://satellite6.example.com/apidoc/v2/lifecycle_environments.html でライフサイクル環境に関する同梱の API リファレンスを参照できます。API ルートには、/katello/api/environments および /katello/api/organizations/:organization_id/environments が含まれます。
1 に対する現在の全ライフサイクル環境を、以下のように表示することができます。
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 \
https://satellite6.example.com/katello/api/organizations/1/environments | python -m json.tool
1 のデフォルトのライブラリー環境が、ライフサイクル環境作成の開始点として使用されています。
手順4.3 ライフサイクル環境のリンク作成
- 開始点として使用する既存のライフサイクル環境を選択します。その ID を使用して環境を表示します。今回の例では、ID が
1の環境を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1に設定したpriorオプションを使用して、新しいライフサイクル環境を作成します。- 内容が
{"organization_id":1,"label":"api-dev","name":"API Development","prior":1}のlife-cycle.jsonなどの JSON ファイルを作成します。 - 以下のようなコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドの出力では、ライフサイクル環境の ID が2で、その 1 つ前のライフサイクル環境は1であると分かります。これは、1と2がリンクされていることを示します。この環境の後継を作成する場合に、ライフサイクル環境 ID2が使用されます。2に設定したpriorオプションを使用して、別のライフサイクル環境を作成します。- 以前に作成した
life-cycle.jsonを編集して、label、name、priorの値を{"organization_id":1、"label":"api-qa"、"name":"API QA","prior":2}のように更新します。 - 以下のようなコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドの出力では、ライフサイクル環境の ID が3で、その 1 つ前のライフサイクル環境は1であると分かります。これは、2と3がリンクされていることを示します。
ライフサイクル環境の更新
ライフサイクル環境の削除
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
付録A API レスポンスコード リンクのコピーリンクがクリップボードにコピーされました!
| レスポンス | 説明 |
|---|---|
| 200 OK | show、index、update、delete (GET、PUT、DELETE 要求) などの要求アクションに成功した場合 |
| 201 Created | create アクション (POST 要求) に成功した場合 |
| 301 Moved Permanently | Satellite が HTTPS しか使用できないように制限されているにも拘らず、HTTP が試行された時にリダイレクトされる場合 |
| 400 Bad Request | 必要なパラメーターがないか、検索クエリーに無効な構文が含まれている場合 |
| 401 Unauthorized | ユーザー認証に失敗した場合 (認証情報が不正な場合など) |
| 403 Forbidden | ユーザーにアクションの実行、リソースの読み込みなど、十分なパーミッションがないか、アクション自体がサポートされていない場合 |
| 404 Not Found | 指定の ID のレコードが存在しない場合。要求のレコードが存在しない場合には show または delete アクションに、関連のレコードの 1 つが存在しない場合には create、update、delete アクションに表示されることがあります。 |
| 409 Conflict | 既存の依存関係が原因でレコードを削除できない場合 (例: ホストのあるホストグループなど) |
| 415 Unsupported Media Type | HTTP 要求のコンテンツタイプが JSON でない場合 |
| 422 Unprocessable Entity | バリデーションエラーが原因でエンティティーの作成に失敗した場合。アクションの作成または更新にのみ適用されます。 |
| 500 Internal Server Error | 予期しないサーバーエラーが発生した場合 |
| 503 Service Unavailable | サーバーが実行されていない場合 |
付録B API パーミッションの表 リンクのコピーリンクがクリップボードにコピーされました!
| パーミッション名 | アクション | リソースタイプ |
|---|---|---|
| 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 |
| |
| 設定 |
| |
| app_root |
| |
| view_log_viewer |
| |
| ログ |
| |
| 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 |
|