第2章 比較レポート API
比較レポートの目的は、リクエストされたシステムのシステムプロファイルを取得して、それらのファクトをインベントリーサービスからプルし、それらのファクトを比較レポートに変換することです。システムの情報の取得が必要なだけで比較情報が不要な場合は、インベントリー API を直接使用できます。
現在、Web ユーザーインターフェイスまたは API のいずれかを使用してシステムを比較する場合は、45 のシステム制限があります。一度に 45 を超えるシステムを比較するリクエストでは、400 エラーが発生することがあります。このようなリクエストは API インフラストラクチャーによって設定されるタイムアウト制限に到達することがあります。
例
以下の例では、GET メソッドを使用してシステム設定を比較するために、compare_report API を使用してインベントリーに登録されているシステムと対話します。このリクエストは最新のシステム状態を取得し、指定のシステム ID のインベントリーサービスからデータを使用し、比較レポートを生成します。
リクエスト:
GET api/drift/v1/comparison_report?system_ids[]=<UUID>&system_ids[]=<UUID>
openapi: 3.0.1 info: version: "1.0" title: Drift Backend Service description: Service that returns differences between systems. license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html servers: - url: "/api/drift/v1" paths: /comparison_report: parameters: - $ref: '#/components/parameters/rhIdentityHeader' get: summary: fetch comparison report description: "Fetch a comparison report for given system IDs. This will only fetch the most current system state using data from inventory service." operationId: drift.views.v1.comparison_report parameters: - name: system_ids[] in: query schema: type: array items: type: string format: uuid required: true description: list of system IDs to generate report for
レスポンス:
'200': description: a comparison report for the given system IDs content: application/json: schema: $ref: "#/components/schemas/ComparisonReport" examples: jsonObject: summary: A sample comparison report externalValue: "https://git.io/fhQ00" '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/InternalServerError'
例
以下の例では、comparison_report API を使用してイベントリーに登録されているシステムと対話し、JSON ファイルを POST メソッドを使用した入力として提供し、システムの比較を行います。
API 経由で POST メソッドを使用してシステムを比較する場合、システム制限はありません。
リクエスト:
$ curl -k -u username:password -X POST --header "Content-Type: application/json" https://cloud.redhat.com/api/drift/v1/comparison_report -d @/directory/example-uuid-file.json
JSON ファイルの内容の例。
{"system_ids": ["UUID1", "UUID2", "UUID3"]}
2.1. システムのみのレポートクエリー
API を使用してシステムのみのレポートをクエリーできます。
GET api/drift/v1/comparison_report?system_ids[]=55e47a1d-05d7-4abb-963 a-ba513a0a57ad&system_ids[]=....