第1章 REST API
REST API を使用して、プロバイダー、物理インフラストラクチャープロバイダー、および物理サーバーに関する情報を取得することができます。ご自分の物理インフラストラクチャー内のサーバーに関する情報が必要な場合は、CloudForms REST API を使用することができます。
まずはじめに
REST API を使用するためには、API へのアクセス権限が与えられたユーザーとして、CloudForms Management Engine API にログインする必要があります。デフォルトのユーザーは admin で、パスワードは smartvm です。
以下の URL を使って、CloudForms REST API にアクセスします。
<CloudForms_address>:<port>/api
例:
localhost:3000/api
1.1. プロバイダー情報の取得
すべてのプロバイダーに関する情報を取得するには、以下のリクエスト URL を使用します。
GET <CloudForms_address>:<port>/api/providers
以下のキーを含んだ JSON 応答が返されます。
actions (使用することのできるアクションのリスト) count (プロバイダーの総数) name (URI 名) pages (ページ数) resource (CloudForms によって管理される各プロバイダーの URL のリスト) subcount (返されたプロバイダーの数)
例
プロバイダーに関するすべての情報を取得するには、?expand=resources クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/providers?expand=resources
プロバイダーに関する特定の情報を取得するには (名前および ID 等)、?expand=resources&attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/ api/providers?expand=resources&attributes=id,name
プロバイダーに関する情報をさらに取得するには (ポート、ホスト名、および IP アドレス等)、?expand=resources&attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/providers?expand=resources&attributes=port,hostname,ipaddress
Lenovo 物理インフラストラクチャープロバイダーに関する情報だけを取得するには、すべてのプロバイダーリソースに対して ?expand=resources&filter[]=type=<provider_type> 属性を使用します。以下に例を示します。
GET localhost:3000/api/providers?expand=resources&filter[]=type=ManageIQ::Providers::Lenovo::PhysicalInfraManager
1.2. ID によるプロバイダー情報の取得
特定のプロバイダーに関する情報を取得するには、以下のリクエスト URL を使用します。ここで、<provider_ID> はプロバイダーに固有の識別子です。
GET <CloudForms_address>:<port>/api/providers/<provider_ID>
以下のキーを含んだ JSON 応答が返されます。
href id name created_on updated_on guid zone_id type last_refresh_date tenant_id enabled options actions
例
プロバイダーに関する特定の情報を取得するには (名前および ID 等)、?attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/providers/<provider_ID>?expand=resources&attributes=id,name
プロバイダーに関する情報をさらに取得するには (ポート、ホスト名、および IP アドレス等)、?attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/providers/<provider_ID>?expand=resources &attributes=port,hostname,ipaddress
1.3. 物理インフラストラクチャープロバイダーに関する操作の実施
REST API を使用して、物理インフラストラクチャープロバイダーの作成、修正、および削除などの操作を実施することができます。
メモ: 物理インフラストラクチャープロバイダーに関する操作を実施するには、任意のツールまたはライブラリーを用いて基本認証を作成し、REST API を使用する際には CloudForms インスタンス用のユーザー名およびパスワードを使用する必要があります。
1.3.1. Lenovo 物理インフラストラクチャープロバイダーの作成
Lenovo 物理インフラストラクチャープロバイダーを作成するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/providers
リクエストボディー
{
"action": "create",
"credentials": {
"password": "<PASSWORD>",
"userid": "<USERNAME>"
},
"hostname": "<LENOVO XCLARITY ADMINISTRATOR ADDRESS>",
"name": "<NAME>",
"port": "<THE SERVICE PORT>",
"type": "ManageIQ::Providers::Lenovo::PhysicalInfraManager"
}1.3.2. Lenovo 物理インフラストラクチャープロバイダーのプロパティー修正
Lenovo 物理インフラストラクチャープロバイダーのプロパティーを修正するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/providers
リクエストボディー
{
"action":"edit",
"credentials": {
"password":"<new_passowrd>",
"userid":"<new_user_name>"
},
"hostname":"<New_Lenovo_XClarity_Administrator_address>",
"name":"<new_provider_name>",
"port":"<new_service_port>"
}1.3.3. すべてのプロバイダーに関する情報の更新
すべてのプロバイダーに関する情報を更新するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/providers
リクエストボディー
{
"action":"refresh"
}1.3.4. 物理インフラストラクチャープロバイダーの削除
特定のプロバイダーを削除する方法:
以下のリクエスト URL を使用して DELETE リクエストを送信する。
DELETE <CloudForms_address>:<port>/api/providers/<provider_ID>
以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信する。
POST <CloudForms_address>:<port>/api/providers/<provider_ID>
リクエストボディー
{ "action":"delete" }
1.3.5. 複数の物理インフラストラクチャープロバイダーに関する操作の実施
複数の物理インフラストラクチャープロバイダーに関する操作を実施するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/providers
リクエストボディー
{
"action":"<action>",
"resources": [{
"href":"<provider_ID>"
},
{
"href":"<provider_ID>"
}]
}1.4. 物理サーバー情報の取得
すべての物理サーバーに関する情報を取得するには、以下のリクエスト URL を使用します。
GET <CloudForms_address>:<port>/api/physical_servers
以下のキーを含んだ JSON 応答が返されます。
actions (使用することのできるアクションのリスト) count (物理サーバーの数) name (URI 名) pages (ページ数) resource (各物理サーバーの URL のリスト) subcount (返された物理サーバーの数)
例
物理サーバーに関するすべての情報を取得するには、?expand=resources クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/physical_servers?expand=resources
物理サーバーに関する特定の情報を取得するには (名前および ID 等)、?expand=resources&attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/physical_servers?expand=resources&attributes=id,name
物理サーバーに関する情報をさらに取得するには (ファームウェア、ネットワーク、ゲストデバイス、およびアセット詳細など)、?expand=resources&attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/physical_servers?expand=resources&attributes= hardware.firmwares,hardware.networks,hardware.guest_devices,hardware.assets_details
特定の物理サーバーに関する情報だけを取得するには、すべての物理サーバーリソースに対して ?expand=resources&filter[]=name=<server_name> クエリー属性を使用します。以下に例を示します。
GET localhost:3000/api/physical_servers?expand=resources&filter[]=name=Server1-20127X5462
1.5. ID による物理サーバー情報の取得
特定の物理サーバーに関する情報を取得するには、以下のリクエスト URL を使用します。
GET <CloudForms_address>:<port>/api/physical_servers/<server_ID>
以下のキーを含んだ JSON 応答が返されます。
actions created_at ems_id ems_ref field_replaceable_unit health_state hostname href location_led_state machine_type manufacturer model name power_state product_name serial_number type uid_ems updated_at vendor
例
物理サーバーに関する特定の情報を取得するには (名前および ID 等)、?expand=resources&attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/physical_servers/<server_ID>?expand=resources&attributes=id,name
物理サーバーに関する情報をさらに取得するには (ファームウェア、ネットワーク、ゲストデバイス、およびアセット詳細など)、?expand=resources&attributes=<attribute_list> クエリーパラメーターを使用します。以下に例を示します。
GET localhost:3000/api/physical_servers/<server_ID>?expand=resources &attributes=hardware.firmwares,hardware.networks,hardware.guest_devices,hardware.assets_details
1.6. 物理サーバーに関する操作の実施
REST API を使用して、物理サーバーの電源オン/オフ、再起動、およびロケーション LED の状態変更などの管理タスクを実施することができます。
メモ: 物理サーバーに関する操作を実施するには、任意のツールまたはライブラリーを用いて基本認証を作成し、REST API を使用する際には CloudForms インスタンス用のユーザー名およびパスワードを使用する必要があります。
1.6.1. 物理サーバーの電源オン
特定の物理サーバーの電源をオンにするには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
リクエストボディー
{
"action":"power_on"
}1.6.2. 物理サーバーの電源オフ
オペレーティングシステムを終了して特定の物理サーバーの電源をオフにするには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
リクエストボディー
{
"action":"power_off"
}1.6.3. 物理サーバーの即時電源オフ
特定の物理サーバーの電源を直ちにオフにするには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
リクエストボディー
{
"action":"power_off_now"
}1.6.4. 物理サーバーの再起動
オペレーティングシステムを終了して特定の物理サーバーを再起動するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
リクエストボディー
{
"action":"restart"
}1.6.5. 物理サーバーの即時再起動
特定の物理サーバーを直ちに再起動するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
リクエストボディー
{
"action":"restart_now"
}1.6.6. 物理サーバーロケーション LED 状態の点滅への変更
特定のサーバーについてロケーション LED の状態を点滅に変更するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/physical_servers/<server_ID>
リクエストボディー
{
"action":"blink_loc_led"
}1.6.7. 複数の物理サーバーに関する操作の実施
複数の物理サーバーに関する操作を実施するには、以下のリクエスト URL および JSON リクエストボディーを使用して POST リクエストを送信します。
POST <CloudForms_address>:<port>/api/physical_servers
リクエストボディー
{
"action":"<action>",
"resources": [{
"href":"<server_ID>"
},
{
"href":"<server_ID>"
}]
}
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.