検索

3.6. サービス

download PDF

サービスは、API がサポートするオブジェクトで取得、更新、削除、および実行を行うサーバーの一部です。

関連するサービスには、以下の 2 つのタイプがあります。

オブジェクトのコレクションを管理するサービス
これらのサービスは、既存のオブジェクトの一覧を表示し、新規オブジェクトを追加できます。たとえば、Vms サービスは、システムで利用可能な仮想マシンのコレクションを管理します。
特定のオブジェクトを管理するサービス
これらのサービスは、特定のオブジェクトでアクションの取得、更新、および削除、および実行を行います。たとえば、Vm サービスは特定の仮想マシンを管理します。

各サービスは、サーバー内の特定の パス からアクセスできます。たとえば、システムで利用可能な仮想マシンのコレクションを管理するサービスは、パス /vms に、仮想マシン 123 を管理するサービスは、パス /vms/123 にあります。

種類が何であってもサービスには、実行できる操作を表す メソッド のセットがあります。オブジェクトのコレクションを管理するサービスは通常、listadd メソッドをサポートします。特定のオブジェクトを管理するサービスには、通常、getupdate メソッド、および remove メソッドがあります。さらに、サービスには、あまり一般的ではない操作を表す action メソッドも含まれることがあります。たとえば、Vm サービスには、仮想マシンの起動に使用される start メソッドがあります。

通常のメソッドでは、メソッドの名前と HTTP メソッドの名前の間で直接マッピングされます。

メソッド名HTTP メソッド

add

POST

get

GET

list

GET

更新

PUT

remove

DELETE

HTTP 要求で使用されるパスは、接頭辞が /ovirt-engine/api のサービスのパスです。

たとえば、仮想マシンを 一覧表示 するリクエストは、HTTP GET メソッドとパス /vms を使用して、以下のように指定します。

GET /ovirt-engine/api/vms

アクションメソッドの場合には、HTTP メソッドは常に POST になり、メソッドの名前が接尾辞としてパスに追加されます。たとえば、仮想マシン 123 を起動する要求は、HTTP POST メソッドとパス /vms/123/start を使用して以下のように指定します。

POST /ovirt-engine/api/vms/123/start

メソッドごとにパラメーターセットがあります。

パラメーターは 2 つのカテゴリーに分類されます。

主なパラメーター
主要なパラメーターは、取得、追加、または更新するオブジェクトまたはコレクションに対応します。これは addgetlistupdate メソッドにのみ適用され、1 メソッドごとにこのような主要パラメーターは 1 つだけ存在します。
セカンダリーパラメーター
残りのパラメーター。

たとえば、仮想マシンを追加する操作 (こちら を参照) には、vmclone、および clone_permissions の 3 つのパラメーターがあります。追加するオブジェクトを記述するため、主要パラメーターは vm です。clone および clone_permissions パラメーターはセカンダリーパラメーターです。

入力に使用する主要パラメーターは、HTTP 要求の本文に含める必要があります。たとえば、仮想マシンを追加する場合は、Vm タイプの vm パラメーターをリクエスト本文に含める必要があります。つまり、すべての HTTP の情報が含まれる、仮想マシン追加の完全な要求は、以下のようになります。

POST /ovirt-engine/api/vms HTTP/1.1
Host: myengine.example.com
Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
Content-Type: application/xml
Accept: application/xml

<vm>
  <name>myvm</name>
  <description>My VM</description>
  <cluster>
    <name>Default</name>
  </cluster>
  <template>
    <name>Blank</name>
  </template>
</vm>

出力に使用すると、主要なパラメーターは応答ボディーに含まれます。たとえば、仮想マシンを追加する場合、vm パラメーターは応答ボディーに含まれます。そのため、完全な応答ボディーは以下のようになります。

HTTP/1.1 201 Created
Content-Type: application/xml

<vm href="/ovirt-engine/api/vms/123" id="123">
  <name>myvm</name>
  <description>My VM</description>
  ...
</vm>

セカンダリーパラメーターは (後に説明している action メソッドを除く) 入力のみが可能で、クエリーパラメーターとして組み込む必要があります。たとえば、clone パラメーターが true に設定された仮想マシンを追加する場合に、完全な要求は以下のようになります。

POST /ovirt-engine/api/vms?clone=true HTTP/1.1
Host: myengine.example.com
Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
Content-Type: application/xml
Accept: application/xml

<vm>
  <name>myvm</name>
  <description>My VM</description>
  <cluster>
    <name>Default</name>
  </cluster>
  <template>
    <name>Blank</name>
  </template>
</vm>

action メソッドにはセカンダリーパラメーターだけが含まれます。これらは入出力に使用でき、action 要素でラップされたリクエスト本文に含める必要があります。たとえば、仮想マシンを起動する action メソッド (こちら を参照) には、仮想マシンの起動方法を記述する vm パラメーターと、ゲスト OS を設定するために cloud-init を使用するかどうかを指定する use_cloud_init パラメーターがあります。そのため、XML を使用する場合には、cloud-init を使用して仮想マシン 123 を起動する完全な要求は以下のようになります。

POST /ovirt-engine/api/vms/123/start HTTP/1.1
Host: myengine.example.com
Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
Content-Type: application/xml
Accept: application/xml

<action>
  <use_cloud_init>true</use_cloud_init>
  <vm>
    <initialization>
      <nic_configurations>
        <nic_configuration>
          <name>eth0</name>
          <on_boot>true</on_boot>
          <boot_protocol>static</boot_protocol>
          <ip>
            <address>192.168.0.100</address>
            <netmask>255.255.255.0</netmask>
            <gateway>192.168.0.1</netmask>
          </ip>
        </nic_configuration>
      </nic_configurations>
      <dns_servers>192.168.0.1</dns_servers>
    </initialization>
  </vm>
</action>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.