Lenovo 物理インフラストラクチャープロバイダー REST API
Lenovo 物理インフラストラクチャープロバイダー REST API リファレンス
概要
第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>"
}]
}