Lenovo 物理インフラストラクチャープロバイダー REST API

Red Hat CloudForms 4.6

Lenovo 物理インフラストラクチャープロバイダー REST API リファレンス

Red Hat CloudForms ドキュメントチーム

Lenovo ドキュメント

概要

本書は、Lenovo 物理インフラストラクチャープロバイダー REST API のリファレンスです。
本書に関する改善のご意見をお持ちの場合や、誤りにお気付きになった場合には、http://bugzilla.redhat.com から Bugzilla レポートの提出をお願いします。Product に Red Hat CloudForms Management Engine を選択し、Component には Documentation を選択してください。セクション番号、ガイド名、および CloudForms のバージョン等の詳細をお知らせいただくと、箇所の特定が容易になります。

第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>"
   }]
}