5.3. インベントリー API を使用してカスタムの staleness と削除の制限を設定する
Insights Host Inventory API を使用して、カスタムの staleness および削除の制限を設定できます。システムにカスタムの staleness および削除の設定がされていない場合、Insights はデフォルト値を使用して、システムの状態が stale かどうか、または自動的に削除する必要があるかどうかを判断します。
デフォルトでは、システムが 14 日間以上 stale 状態にある場合、自動削除の対象となります。スケジュールされたシステムプロセスは 1 時間ごとに実行され、削除制限に達した stale 状態のホストはインベントリーから自動的に削除されます。
5.3.1. システムの staleness プロパティー
Insights API を使用してカスタムの staleness および削除の制限を設定すると、標準以外の結果になる可能性があります。予期しない結果が発生した場合は、システムのデフォルトの staleness および削除の制限に戻してください。
Insights API を使用して、staleness オブジェクトを /api//inventory/v1/account/staleness
API エンドポイントに渡すことで、システムの状態間の許容時間を変更できます。
staleness オブジェクトは、システムの staleness プロパティーの値が含まれる API ペイロード (JSON オブジェクト) です。プロパティーの値を変更すると、インベントリー内のすべてのシステムでそのプロパティーの変更がトリガーされます。
staleness オブジェクトには次のプロパティーが含まれます。
-
conservative_time_to_stale
—stale_warning
がオンになるまでの非アクティブ期間。デフォルト: 29 時間 (104400 秒)。 -
conservative_time_to_stale_warning
—stale_warning
が表示される期間。デフォルト: 7 日間 (604800 秒)。 -
conservative_time_to_delete
— システムがデータベースから削除されるまでの残り時間。デフォルト: 14 日間 (1209600 秒)。
Insights API を使用してデフォルト値を変更するには、カスタムの staleness オブジェクトを作成し、変更するプロパティーの時間値を編集します。
UI 内の staleness の時間の値は日数で表されますが、API オブジェクト内の時間は秒数で表されます。
conventional_time_to_stale
の値は、conventional_time_to_stale_warning
より小さくなければなりません。conventional_time_to_stale_warning
の値は、conventional_time_to_delete
の値よりも小さくなければなりません。
5.3.2. 利用可能な API 操作
Managed Inventory API は次の操作を提供します。
- GET/account/staleness — システムインベントリーに設定されているカスタムの staleness と削除の値を読み取ります
- GET/account/staleness/defaults — カスタムの staleness が設定されていない場合に使用されるデフォルトの staleness 値を返します
- POST/account/staleness — システムインベントリーのカスタムの staleness と削除の値を設定します
- PATCH/account/staleness — カスタムの staleness および削除の値を更新します
- DELETE/account/staleness — カスタムの staleness 値を削除します
カスタム設定を初めて作成する場合は、POST 操作を使用して設定を作成します。カスタム設定を作成すると、PATCH 操作を使用して値を変更できます。DELETE を使用して設定を削除すると、システムはデフォルトの staleness 設定に戻ります。
5.3.3. Insights API カタログとドキュメントを使用してデフォルト値を確認する
前提条件
- 使用したいプログラミング言語 (例: Python) がシステムにインストールされている。
- API 呼び出しを実行するアプリケーションまたはシステムで認証用にサービスアカウントをセットアップおよび設定した。認証の詳細は、Insights API を使用した認証の設定 を参照してください。
- サービスアカウントまたはオフラインアクセストークンから取得したアクセストークンがある。
-
staleness:staleness:read
RBAC 権限がある。
手順
- Web ブラウザーで Red Hat Insights API Catalog を開きます。
- カタログから Managed Inventory を選択します。Insights Host Inventory REST Interface ページが表示されます。
- Operations リストの下で、GET /account/staleness/defaults の横にあるドロップダウン矢印をクリックします。操作の説明には、サーバーからの予想されるレスポンスが含まれます。さらに、ページの右側のパネルでは、GET 操作の API 呼び出しの例が複数の言語で生成されます。
- パネルでドロップダウンをクリックし、オプションのリストから希望する言語 (例: Python) を選択します。パネルには、Python 構文でフォーマットされた GET 操作のサンプルコードが表示されます。
サンプルコードをコピーし、GET コマンドを呼び出す Python コードファイルに貼り付けます。以下に例を示します。
import requests url = "https://console.redhat.com/account/staleness/defaults" headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json" } response = requests.get(url, headers=headers) print(response.json())
import requests url = "https://console.redhat.com/account/staleness/defaults" headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json" } response = requests.get(url, headers=headers) print(response.json())
Copy to Clipboard Copied! - <token> の代わりに認証用のアクセストークンを貼り付けます。
- コードを実行します。
サーバーがレスポンス 200 を返した場合、API 呼び出しは成功しています。成功したレスポンスとオプションの操作の説明に加えて、サーバーはリクエストされたデータを返します。レスポンスは次のようになります。
{ "id": "system_default", "org_id": "7931872", "conventional_time_to_stale": 104400, "conventional_time_to_stale_warning": 604800, "conventional_time_to_delete": 1209600, "created": null, "updated": null }
{
"id": "system_default",
"org_id": "7931872",
"conventional_time_to_stale": 104400,
"conventional_time_to_stale_warning": 604800,
"conventional_time_to_delete": 1209600,
"created": null,
"updated": null
}
コードが 200 以外のレスポンスを返す場合は、レスポンスコード を参照して、API 呼び出しがどのように失敗したか、および失敗の原因を修正する方法を確認してください。
5.3.4. Legacy API ドキュメントを使用してデフォルト値を確認する
前提条件
- Red Hat Hybrid Cloud Console にログインしている。
- クエリーを実行するために必要な権限がある。
-
staleness:staleness:read
RBAC 権限がある。
手順
- Hybrid Cloud Console の API ドキュメントページ に移動します。API ドキュメントページが表示されます。
- サービスのリストから Managed Inventory を選択します。Detail ページが表示され、https://console.redhat.com/api/inventory/v1 エンドポイントを使用して実行できる操作が表示されます。
- GET/accounts/staleness/defaults 操作の横にあるドロップダウン矢印をクリックします。GET リクエストに入力する必要はないため、パラメーターのリストには No parameters と表示されます。
- Try It Out をクリックします。このページには、成功したサーバーレスポンスの形式が表示されます。
-
Execute をクリックします。このページには、サーバーへの
curl
リクエスト、リクエスト URL、およびサーバーレスポンスが表示されます。 -
後で再利用するために
curl
リクエストをクリップボードにコピーするには、curl
リクエストの右側にあるクリップボードアイコンをクリックします。必要に応じて、テキストエディターに貼り付けて保存します。 - サーバーレスポンスをクリップボードにコピーするには、右上隅のクリップボードアイコンをクリックします。必要に応じて、テキストエディターに貼り付けて保存します。
サーバーレスポンスを JSON ファイルとしてダウンロードするには、Download をクリックします。
注記サーバーが 403 レスポンスまたはその他の失敗したレスポンスを返す場合は、正しい RBAC 権限があることを確認してから、リクエストを再試行してください。
オプション: サーバーレスポンスをクリアしてコマンドを再試行するには、Clear をクリックします。
5.3.5. Insights API カタログとドキュメントを使用してカスタム staleness オブジェクトを作成する
前提条件
- 使用したいプログラミング言語 (例: Python) がシステムにインストールされている。
- API 呼び出しを実行するアプリケーションまたはシステムで認証用にサービスアカウントをセットアップおよび設定した。認証の詳細は、Insights API を使用した認証の設定 を参照してください。
- サービスアカウントまたはオフラインアクセストークンから取得したアクセストークンがある。
-
staleness:staleness:write
RBAC 権限がある。
手順
- Web ブラウザーで Red Hat Insights API Catalog を開きます。
- カタログから Managed Inventory を選択します。Insights Host Inventory REST Interface ページが表示されます。
- POST/account/staleness 操作の横にあるドロップダウン矢印をクリックします。操作の説明には、API 呼び出しを調整するために使用できるパラメーターと、サーバーからの予想されるレスポンスが含まれます。さらに、ページの右側のパネルでは、POST リクエストの API 呼び出しの例が複数の言語で生成されます。
- パネルでドロップダウンをクリックし、オプションのリストから希望する言語 (例: Python) を選択します。パネルには、Python 構文でフォーマットされた POST リクエストのサンプルコードが表示されます。
サンプルコードをコピーし、POST リクエストを呼び出す Python コードファイルに貼り付けます。以下に例を示します。
import requests url = "https://console.redhat.com/account/staleness" payload = { "conventional_time_to_delete": 1, "conventional_time_to_stale": 1, "conventional_time_to_stale_warning": 1, } headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json())
import requests url = "https://console.redhat.com/account/staleness" payload = { "conventional_time_to_delete": 1, "conventional_time_to_stale": 1, "conventional_time_to_stale_warning": 1, } headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json())
Copy to Clipboard Copied! - サンプルに示されている値 1 の代わりに、使用するカスタム staleness の時間を秒単位で追加します。API の 1 という値は 1 日ではなく 1 秒に相当することに注意してください。
- <token> の代わりに認証用のアクセストークンを貼り付けます。
コードを実行します。
サーバーがレスポンス 201 を返した場合、API 呼び出しは成功しています。
5.3.6. 従来の API ドキュメントを使用してカスタム staleness オブジェクトを作成する
前提条件
- Red Hat Hybrid Cloud Console にログインしている。
- クエリーを実行するために必要な権限がある。
-
staleness:staleness:write
RBAC 権限がある。
手順
- Hybrid Cloud Console の API ドキュメントページ に移動します。API ドキュメントページが表示されます。
- サービスのリストから Managed Inventory を選択します。Detail ページが表示され、link:https://console.redhat.com/api/inventory/v1 エンドポイントを使用して実行できる操作が表示されます。
- POST/accounts/staleness 操作の横にあるドロップダウン矢印をクリックします。
- Try It Out をクリックします。このページには、成功したサーバーレスポンスの形式が表示されます。
- リクエストボディーの各パラメーターの数値 1 の代わりに、カスタム staleness の値を追加します。API の 1 の値は 1 日ではなく 1 秒に相当することに注意してください。
-
Execute をクリックします。このページには、サーバーへの
curl
リクエスト、リクエスト URL、およびサーバーレスポンスが表示されます。 -
curl
リクエストをクリップボードにコピーするには、curl
リクエストの右側にあるクリップボードアイコンをクリックします。 - サーバーレスポンスをクリップボードにコピーするには、右上隅のクリップボードアイコンをクリックします。
サーバーレスポンスを JSON ファイルとしてダウンロードするには、Download をクリックします。
注記サーバーが 403 レスポンスまたはその他の失敗したレスポンスを返す場合は、正しい RBAC 権限があることを確認してから、リクエストを再試行してください。
オプション: サーバーレスポンスをクリアしてコマンドを再試行するには、Clear をクリックします。