付録B API バージョン 4 の変更点
このセクションでは、API のバージョン 4 以降に導入された下位互換性を確保できない変更を列挙します。
B.1. API バージョン 4.0 での変更点 (バージョン 3.6 の後継)
B.1.1. YAML サポートの削除
YAML のサポートは完全に削除されました。
B.1.2. 複合型の名前変更
次の XML スキーマ複合型の名前が変更されました。
Version 3 | Version 4 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B.1.3. Status
タイプの enum 型への置き換え
現在、さまざまなオブジェクトのステータスは、ステータスを説明する state
文字列と追加の詳細を示す別の detail
文字列を含む Status
タイプを使用して報告されます。たとえば、IO エラーが原因で一時停止している仮想マシンのステータスは、現在次のように報告されています。
<vm> ... <status> <state>paused</state> <detail>eio</detail> </status> ... </vm>
API のバージョン 4 では、この Status
型が削除され、enum 型に置き換えられました。追加の 詳細
文字列が必要な場合は、追加の status_detail
属性に置き換えられています。たとえば、同じ仮想マシンのステータスは次のように報告されます。
<vm> ... <status>paused</status> <status_detail>eio</status_detail> ... </vm>
B.1.4. NIC network
と port_mirroring
プロパティーの削除
NIC network
および port_mirroring
要素は vnic_profile
要素に置き換えられたので、ネットワークおよびポートミラーリング設定を指定する代わりに NIC を作成または更新する場合には、これらは vNIC プロファイルの作成時に指定されていました。
POST /ovirt-engine/api/vnicprofiles
<vnic_profile> <name>myprofile</name> <network id="..."/> <port_mirroring>true</port_mirroring> </vnic_profile>
次に、NIC が作成されるか、既存の vNIC プロファイルを参照します。
PUT /ovirt-engine/api/vms/123/nics/456
<nic> <vnic_profile id="/vnicprofiles/..."> </nic>
古い要素とその意味は後方互換性のために保持されていましたが、現在は完全に削除されています。
network
要素は initialization
要素でまだ使用されているため、XML スキーマから削除されていませんが、NIC の作成または更新時に指定された場合は完全に無視されることに注意してください。
B.1.5. NIC active
プロパティーの削除
NIC の active
プロパティーは、しばらく前に plugged
に置き換えられました。現在は完全に削除されています。
B.1.6. ディスク type
プロパティーの削除
ディスクの type
プロパティーは削除されましたが、XML スキーマに保持され、無視されます。現在は完全に削除されています。
B.1.7. ディスク size
プロパティーの削除
ディスク size
プロパティーは、だいぶ前に provisioned_size
に置き換えられています。現在は完全に削除されています。
B.1.8. VM を単一のホストに固定するためのサポートを削除
バージョン 3.6 より前の API では、VM エンティティーの placement_policy
要素を使用して、VM を単一のホストにピニングすることができました。
PUT /ovirt-engine/api/vms/123
<vm> <placement_policy> <host id="456"/> </placement_policy> <vm>
バージョン 3.6 では、複数のホストをサポートするようにこの機能が強化され、新しい hosts
要素が追加されました。
PUT /ovirt-engine/api/vms/123
<vm> <placement_policy> <hosts> <host id="456"/> <host id="789"/> ... </hosts> </placement_policy> <vm>
後方互換性を維持するために、単一の host
要素が保持されました。4.0 ではこれが削除されたため、単一のホストにピニングする場合でも、アプリケーションは hosts
要素を使用する必要があります。
B.1.9. capabilities.permits
要素の削除
permits のリストは、クラスターレベルごとに異なる可能性があり、かなり前に version
要素に追加されましたが、後方互換性のために、capabilities
要素にも保持されています。
4.0 では、capabilities
サービスが完全に削除され、新しい clusterlevels
サービスに置き換えられました。クラスターレベル 4.0 でサポートされる permits を見つけるには、以下のようなリクエストを使用する必要があります。
GET /ovirt-engine/api/clusterlevels/4.0
結果は、そのクラスターレベルに固有の情報、特にサポートされている一連の permits を含むドキュメントになります。
<cluster_level id="4.0" href="/clusterlevels/4.0"> ... <permits> <permit id="1"> <name>create_vm</name> <administrative>false</administrative> </permit> ... </permits> </cluster_level>
B.1.10. storage_manager
要素の削除
storage_manager
要素は、しばらく前に spm
要素に置き換えられました。古いものは後方互換性のために保持されていましたが、現在は完全に削除されています。
B.1.11. データセンターの storage_type
要素の削除
データセンターは、以前は特定のストレージタイプ (NFS、ファイバーチャネル、iSCSI など) に関連付けられていましたが、しばらくして変更され、ローカルストレージと共有ストレージの 2 つのタイプのみになりました。これを示すために新しい local
要素が導入され、古い storage_type
要素は後方互換性のために保持されました。この古い要素は完全に削除されました。
B.1.12. timezone
要素の削除
タイムゾーンを表す timezone
要素を格納するために使用される VM リソース。この要素は文字列のみを許可していました。
<vm> <timezone>Europe/Madrid</timezone> </vm>
これはエクステンションを許可せず、UTC オフセットを追加する必要があったため、新しい構造化された time_zone
要素に置き換えられました。
<vm> <time_zone> <name>Europe/Madrid</name> <utc_offset>GMT+1</utc_offset> </time_zone> </vm>
古い timezone
要素は保持されていましたが、現在は完全に削除されています。
B.1.13. guest_info
要素の削除
guest_info
要素は、IP アドレスや完全修飾ホスト名など、ゲストエージェントによって収集された情報を保持するために使用されていました。この情報は他の場所でも入手できます。たとえば、IP アドレスは VM リソース内で使用できます。
GET /ovirt-engine/api/vms/123
<vm> <guest_info> <ips> <ip address="192.168.122.30"/> </ips> <fqdn>myvm.example.com</fqdn> </guest_info> </vm>
また、NIC リソース内で、新しい reported_devices
要素を使用します。
GET /ovirt-engine/api/vms/{vm:id}/nics/{nic:id}
<nic> <reported_devices> <reported_device> <name>eth0</name> <mac address="00:1a:4a:b5:4c:94"/> <ips> <ip address="192.168.1.115" version="v4"/> <ip address="fe80::21a:4aff:feb5:4c94" version="v6"/> <ip address="::1:21a:4aff:feb5:4c94" version="v6"/> </ips> </reported_device> </reported_devices> </nic>
さらに、この新しい reported_devices
要素は、複数の IP アドレス、MAC アドレスなど、より完全な情報を提供します。
この重複を取り除くために、guest_info
要素が削除されました。
完全修飾ドメイン名をサポートするために、新しい fqdn
要素が VM リソースに追加されました。
GET /ovirt-engine/api/vms/123
<vm> <fqdn>myvm.example.com</fqdn> </vms>
これには、guest_info.fqdn
に含まれていたものと同じ情報が含まれます。
B.1.14. CPU id
属性の type
要素への置き換え
cpu
要素には、CPU のタイプを示す id
属性がありました。
<cpu id="Intel Nehalem Family"> <architecture>X86_64</architecture> ... </cpu>
これは、id
属性が不透明な識別子に使用される API モデルの残りの要素と矛盾しています。この id
属性は新しい type
要素に置き換えられました。
<cpu> <type>Intel Nehalem Family</type> <architecture>X86_64</architecture> </cpu>
B.1.15. CPU トポロジーで属性の代わりに要素を使用する
以前は、CPU トポロジー要素はそのプロパティーに属性を使用していました。
<cpu> <topology sockets="1" cores="1" threads="1"/> ... </cpu>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<cpu> <topology> <sockets>1<sockets> <cores>1<cores> <threads>1<threads> </topology> ... </cpu>
B.1.16. VCPU ピンで属性の代わりに要素を使用する
以前は、VCPU ピン要素はそのプロパティーに属性を使用していました。
<cpu_tune> <vcpu_pin vcpu="0" cpu_set="0"/> </cpu_tune>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<cpu_tune> <vcpu_pin> <vcpu>0</vcpu> <cpu_set>0</cpu_set> </vcpu_pin> </cpu_tune>
B.1.17. VCPU ピンで属性の代わりに要素を使用する
以前は、version
要素はそのプロパティーに属性を使用していました:
<version major="3" minor="5" ../>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<version> <major>3</minor> <minor>5</minor> ... </version>
B.1.18. メモリーのオーバーコミットで属性の代わりに要素を使用する
以前は、overcommit
要素はそのプロパティーに属性を使用していました。
<memory_policy> <overcommit percent="100"/> ... </memory_policy>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<memory_policy> <overcommit> <percent>100</percent> </overcommit> ... </memory_policy>
B.1.19. console
で属性の代わりに要素を使用する
以前は、console
要素はそのプロパティーに属性を使用していました:
<console enabled="true"/>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<console> <enabled>true</enabled> </console>
B.1.20. VIRTIO SCSI で属性の代わりに要素を使用する
以前は、VIRTIO ISCSI 要素はそのプロパティーに属性を使用していました。
<virtio_scsi enabled="true"/>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<virtio_scsi> <enabled>true</enabled> </virtio_scsi>
B.1.21. 電源管理エージェント type
に属性ではなく要素を使用する
電源管理 type
プロパティーは属性として表されていました。
<agent type="apc"> <username>myuser</username> ... </agent>
これは、API の一般的な慣行に反しています。内部要素に置き換えられました。
<agent> <type>apc</type> <username>myuser</username> ... </agent>
B.1.22. 電源管理エージェントオプションで属性の代わりに要素を使用する
以前は、電源管理エージェントの option 要素は、そのプロパティーに属性を使用していました。
<options> <option name="port" value="22"/> <option name="slot" value="5"/> ... </options>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<options> <option> <name>port</name> <value>22</value> </option> <option> <name>slot</name> <value>5</value> </option> ... </options>
B.1.23. IP アドレスで属性の代わりに要素を使用する
以前は、IP アドレス要素はそのプロパティーに属性を使用していました。
<ip address="192.168.122.1" netmask="255.255.255.0"/>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<ip> <address>192.168.122.1</address> <netmask>255.255.255.0</netmask> </ip>
B.1.24. MAC アドレスで属性の代わりに要素を使用する
以前は、MAC アドレス要素はそのプロパティーに属性を使用していました。
<mac address="66:f2:c5:5f:bb:8d"/>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<mac> <address>66:f2:c5:5f:bb:8d</address> </mac>
B.1.25. ブートデバイスで属性の代わりに要素を使用する
以前は、ブートデバイス要素はそのプロパティーに属性を使用していました。
<boot dev="cdrom"/>
これは、API の一般的な慣行に反しています。それらは内部要素に置き換えられました:
<boot> <dev>cdrom</dev> </boot>
B.1.26. オペレーティングシステム type
に属性の代わりに要素を使用する
オペレーティングシステム type
プロパティーは属性として表されていました。
<os type="other"> ... </os>
これは、API の一般的な慣行に反しています。内部要素に置き換えられました。
<os> <type>other</type> ... </os>
B.1.27. ホストを取得するリクエストからの force
パラメーターの削除
データベースからデータを取得する前に、ホストのデータを更新する (VDSM を呼び出してホストの機能とデバイスをリロードする) 必要があることを示す force
マトリクスパラメーターをサポートするために使用されるホストを取得するリクエスト。
GET /ovirt-engine/api/hosts/123;force
この force
パラメーターは、ホストの refresh
アクションに取って代わられましたが、後方互換性のために保持されています。現在は完全に削除されています。この機能を必要とするアプリケーションは、2 つのリクエストを実行する必要があります。1 つ目は、ホストをリフレッシュするためのリクエストです。
POST /ovirt-engine/api/hosts/123/refresh
<action/>
2 つ目は、force
パラメーターなしでそれを取得するためのリクエストです。
GET /ovirt-engine/api/hosts/123
B.1.28. 非推奨のホスト電源管理設定の削除
ホストの電源管理設定は、以前はホストリソースの一部であり、組み込みの設定要素を使用していました。
<power_management type="apc"> <enabled>true</enabled> <address>myaddress</address> <username>myaddress</username> <options> <option name="port" value="22/> </option name="slot" value="5/> </options> ... </power_management>
これは、複数の電源管理エージェントをサポートするために、少し前に新しい /hosts/123/fenceagents
コレクションを導入することで変更されました。
古い type
属性、古い address
要素、username
要素、password
要素、および power_management
の内部に直接ある agents
要素は、後方互換性のために保持されました。これらの要素はすべて完全に削除されたため、電源管理エージェントをクエリーまたは変更する方法は、現時点では /hosts/123/fenceagents
サブコレクションのみになります。
B.1.29. 複数の boot
の代わりに複数の boot.devices.device
を使用する
これまで、仮想マシンの起動時にブートシーケンスを指定する方法は、それぞれが dev
要素を含む複数の boot
要素を使用することでした。たとえば、仮想マシンが最初に CDROM から起動し、次にハードディスクから起動するように指定するには、以下のリクエストが使用されました。
POST /ovirt-engine/api/vms/123/start
<action> <vm> ... <boot> <dev>cdrom</dev> </boot> <boot> <dev>hd</dev> </boot> </vm> </action>
API の他の部分での一般的な方法は、配列をラッパー要素で表すことです。その場合、そのラッパー要素に boots
という名前を付けることができますが、ここで複数の値を指定できるのはブートシーケンスではなくブートデバイスであるため、あまり意味がありません。この矛盾を修正するために、これは複数のデバイスを含むことができる単一の boot
要素に置き換えられました。
POST /ovirt-engine/api/vms/123/start
<action> <vm> ... <boot> <devices> <device>cdrom</device> <device>hd</device> </devices> </boot> </vm> </action>
B.1.30. disks.clone
と disks.detach_only
要素の削除
これらの要素は実際にはディスクの表現の一部ではなく、仮想マシンを追加および削除する操作のパラメーターです。
新しい仮想マシンのディスクのクローンを作成する必要があることを示すために、disks.clone
要素が使用されました。
POST /ovirt-engine/api/vms
<vm> ... <disks> <clone>true</clone> </disks> <vm>
これは現在削除され、新しい clone
クエリーパラメーターに置き換えられています。
POST /ovirt-engine/api/vms?clone=true
<vm> ... </vm>
disks.detach_only
要素は、仮想マシンの削除時に、ディスクを削除する必要はなく、仮想マシンから切り離すだけであることを指定するために使用されていました。
DELETE /ovirt-engine/api/vms/123
<action> <vm> <disks> <detach_only>true</detach_only> </disks> </vm> </action>
これは削除され、新しい detach_only
クエリーパラメーターに置き換えられました。
DELETE /ovirt-engine/api/vms/123?detach_only=true
B.1.31. 要素 vmpool
の名前を vm_pool
に変更する
仮想マシンのプールを表す要素の名前は、以前は vmpool
および vmpools
でした。複合タイプ (この場合は VmPool
と VmPools
) と要素の名前間での対応を統一するために、vm_pool
と vm_pools
に改名されました。
B.1.32. 複数の logical_unit
の代わりに logical_units
を使用する
ボリュームグループの一部である論理ユニットは、無制限数の logical_unit
要素として報告されていました。たとえば、ストレージドメインの詳細を報告する場合は、以下のようになります。
GET /ovirt-engine/api/storagedomains/123
<storage_domain> ... <storage> ... <volume_group> <logical_unit> <!-- First LU --> </logical_unit> <logical_unit> <!-- Second LU --> </logical_unit> ... </volume_group> </storage> </storage_domain>
要素のリストは常に要素でラップされるため、これは API の通常の慣行に反します。これは現在修正されているため、論理ユニットのリストは logical_units
要素でラップされます。
GET /ovirt-engine/api/storagedomains/123
<storage_domain> ... <storage> ... <volume_group> <logical_units> <logical_unit> <!-- First LU --> </logical_unit> <logical_unit> <!-- Second LU --> </logical_unit> ... </logical_units> </volume_group> </storage> </storage_domain>
B.1.33. snapshots.collapse_snapshots
要素の削除
この要素は実際にはスナップショットの表現の一部ではありませんが、エクスポートストレージドメインから仮想マシンをインポートする操作のパラメーターです。
POST /ovirt-engine/api/storagedomains/123/vms/456/import
<action> <vm> <snapshots> <collapse_snapshots>true</collapse_snapshots> </snapshots> </vm> </action>
これは削除され、新しい collapse_snapshots
クエリーパラメーターに置き換えられました。
POST /ovirt-engine/api/storagedomains/123/vms/456/import?collapse_snapshots=true
<action/>
B.1.34. storage
と host_storage
要素の名前の変更
ホストストレージコレクションは、storage
要素と host_storage
要素、および Storage
と HostStorage
複合型を使用して、ホストに関連付けられたストレージを報告します。
GET /ovirt-engine/api/hosts/123/storage
<host_storage> <storage> ... </storage> <storage> ... </storage> ... </host_storage>
これは、API の残りの部分で使用されるパターンに従っていません。外側の要素は複数形で、内側の要素は同じ名前ですが単数形です。これは、外側の要素として host_storages
を、内側の要素として host_storage
を使用するように変更されました。
GET /ovirt-engine/api/hosts/123/storage
<host_storages> <host_storage> ... </host_storage> <host_storage> ... </host_storage> ... </host_storage>
B.1.35. permissions.clone
要素の削除
この要素は実際にはアクセス許可の表現の一部ではありませんが、仮想マシンまたはテンプレートを作成する操作のパラメーターです。
POST /ovirt-engine/api/vms
<vm> <template id="..."> <permissions> <clone>true</clone> </permissions> </template> </action>
POST /ovirt-engine/api/templates
<template> <vm id="..."> <permissions> <clone>true</clone> </permissions> </vm> </template>
これは削除され、新しい clone_permissions
クエリーパラメーターに置き換えられました。
POST /ovirt-engine/api/vms?clone_permissions=true
<vm> <template id="..."/> </vm>
POST /ovirt-engine/api/templates?clone_permissions=true
<template> <vm id="..."/> </template>
B.1.36. 乱数ジェネレーター source
要素の名前の変更
乱数ジェネレーターのソースは、その使用を反映した名前の要素でラップされた source
要素のコレクションを使用して報告されていました。たとえば、従来は、クラスターの必要な乱数ジェネレーターソースは以下のように報告されていました。
GET /ovirt-engine/api/clusters/123
<cluster> ... <required_rng_sources> <source>random</source> </required_rng_sources> ... </cluster>
また、ホストによってサポートされる乱数ジェネレーターソースは、以下のように報告されていました。
GET /ovirt-engine/api/hosts/123
<host> ... <hardware_information> <supported_rng_sources> <source>random</source> </supported_rng_sources> </hardware_information> ... </host>
これは、コレクションが複数形で名前でラップされ、要素が単数形で同じ名前でラップされる他の API と一貫していません。これは修正されました。必要な乱数ジェネレーターソースは、以下のように報告されるようになりました。
GET /ovirt-engine/api/clusters/123
<cluster> <required_rng_sources> <required_rng_sources>random</required_rng_source> </required_rng_sources> ... </cluster>
また、ホストでサポートされる乱数ジェネレーターソースは、以下のように報告されます。
GET /ovirt-engine/api/hosts/123
<host> ... <hardware_information> <supported_rng_sources> <supported_rng_source>random</supported_rng_source> </supported_rng_sources> </hardware_information> ... </host>
source
だけでなく、required_rng_source
と supported_rng_source
を使用していることに注意してください。
B.1.37. 中間の tag.parent
要素の削除
タグとその親タグの間の関係は、中間の parent
タグを使用して表されていましたが、これには別の tag
要素が含まれていました。
<tag> <name>mytag</name> <parent> <tag id="..." href="..."/> </parent> </tag>
この構造体は単純化され、1 つの parent
要素のみが使用されるようになりました。
<tag> <name>mytag</name> <parent id="..." href="..."/> </tag>
B.1.38. スケジューリングの組み込み名としきい値の削除
これまで、クラスターのスケジューリングポリシーの仕様は、組み込み名としきい値に基づいていました。たとえば、均等に分散 されたスケジューリングポリシーを使用するクラスターは、以下のように表されていました。
<cluster> <name>mycluster</name> <scheduling_policy> <policy>evenly_distributed</policy> <thresholds high="80" duration="120"/> </scheduling_policy> ... </cluster>
このメカニズムは、スケジュールポリシーを任意の名前とプロパティーで定義できるトップレベルの /schedulingpolicies
コレクションに置き換えられました。たとえば、同じスケジューリングポリシーは、最上位コレクションでは次のように表されます。
<scheduling_policy> <name>evenly_distributed</name> <properties> <property> <name>CpuOverCommitDurationMinutes</name> <value>2</value> </property> <property> <name>HighUtilization</name> <value>80</value> </property> </properties> </scheduling_policy>
クラスターの表現は、スケジューリングポリシーをその識別子で参照します。
<cluster> <name>mycluster</name> <scheduling_policy id="..."/> ... </cluster>
後方互換性を維持するために、古い policy
要素および thresholds
要素が保持されました。クラスター内に組み込まれたスケジューリングポリシー表現も保持されました。これらはすべて完全に削除されたため、クラスターを取得、作成、または更新するときにスケジューリングポリシーを参照する唯一の方法は、識別子を使用して既存のポリシーを参照することです。たとえば、クラスターを取得する場合、id
(および href
) のみが入力されます。
GET /ovirt-engine/api/clusters/123
<cluster> ... <scheduling_policy id="..." href="..."/> ... </cluster>
クラスターを作成または更新する場合、id
のみが受け入れられます。
B.1.39. bricks.replica_count
および bricks.stripe_count
の削除
これらの要素は、実際にはブリックのコレクションの表現の一部ではなく、ブリックを追加および削除する操作のパラメーターです。これらは削除され、新しい replica_count
および strip_count
パラメーターに置き換えられました。
POST .../bricks?replica_count=3&stripe_count=2
DELETE .../bricks?replica_count=3
B.1.40. 統計 type
プロパティーの名前を kind
に変更する
統計は、統計の種類 (ゲージ、カウンターなど) を示す type
要素と、値の型 (整数、文字列など) を示す type
属性を使用して表されていました。
<statistic> <type>GAUGE</type> <values type="INTEGER"> <value>...</value> <value>...</value> ... </values> </statistic>
両方の 型
概念の使用を避けるために、最初のものが kind
に置き換えられ、kind
と type
の両方が要素になりました。
<statistic> <kind>gauge</kind> <type>integer</type> <values> <value>...</value> <value>...</value> ... </values> </statistic>
B.1.41. 複数の vcpu_pin
の代わりに複数の vcpu_pins.vcpu_pin
を使用する
これまで、仮想マシンの仮想から物理への CPU ピニングを指定するには、複数の vcpu_pin
要素を使用する方法を使用していました。
<vm> <cpu> <cpu_tune> <vcpu_pin>...</vcpu_pin> <vcpu_pin>...</vcpu_pin> ... </cpu_tune> </cpu> </vm>
API の他の部分の一般的な慣例に準拠するために、これはラッパー要素を使用するように変更され、今回の場合は vcpu_pins
です。
<vm> <cpu> <cpu_tune> <vcpu_pins> <vcpu_pin>...</vcpu_pin> <vcpu_pin>...</vcpu_pin> ... </vcpu_pins> </cpu_tune> </cpu> </vm>
B.1.42. force
パラメーターを使用してデータセンターを強制的に削除する
データセンターを削除する操作では、force
パラメーターがサポートされています。これを使用するために、DELETE
オペレーションはオプションのアクションパラメーターをサポートしていました。
DELETE /ovirt-engine/api/datacenters/123
<action> <force>true</force> </action>
このオプションのアクションパラメーターは、オプションのパラメーターに置き換えられました。
DELETE /ovirt-engine/api/datacenters/123?force=true
B.1.43. force
パラメーターを使用してホストを強制的に削除する
ホストを削除する操作では、force
パラメーターがサポートされています。これを使用するために、DELETE
オペレーションはオプションのアクションパラメーターをサポートしていました。
DELETE /ovirt-engine/api/host/123
<action> <force>true</force> </action>
このオプションのアクションパラメーターは、オプションのパラメーターに置き換えられました。
DELETE /ovirt-engine/api/host/123?force=true
B.1.44. ストレージドメインの強制削除にパラメーターを使用する
ストレージドメインを削除する操作は、force
、destroy
、および host
パラメーターをサポートしています。これらのパラメーターは、本体としてストレージドメインの表現を使用して DELETE
メソッドに渡されていました。
DELETE /ovirt-engine/api/storagedomains/123
<storage_domain> <force>...</force> <destroy>...</destroy> <host id="..."> <name>...</name> </host> </storage_domain>
HTTP DELETE
パラメーターに本文が含まれているべきではなく、ストレージドメインの表現にもストレージドメインの属性ではないものを含めず、操作のパラメーターを含める必要があるため、これには問題がありました。
force
、delete
、および host
属性は同等のパラメーターに置き換えられ、操作では本文を使用できなくなりました。たとえば、force
パラメーターを使用してストレージドメインを正しく削除する方法は次のとおりです。
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&force=true
destroy
パラメーターを使用して削除するには以下を実行します。
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&destroy=true
B.1.45. host
パラメーターを使用したストレージサーバー接続の削除
ストレージサーバー接続を削除する操作は、host
パラメーターをサポートします。これを使用するには、オプションのアクションパラメーターをサポートするために使用される DELETE
メソッドを使用します。
DELETE /ovirt-engine/api/storageconnections/123
<action> <host id="..."> <name>...</name> </host> </action>
このオプションのアクションパラメーターは、オプションのパラメーターに置き換えられました。
DELETE /ovirt-engine/api/storageconnections/123?host=myhost
B.1.46. force
と storage_domain
パラメーターを使用したテンプレートディスクの削除
テンプレートディスクを削除する操作では、force
および storage_domain
パラメーターがサポートされます。このパラメーターを使用するには、オプションのアクションパラメーターのサポートに使用される DELETE
メソッドを使用します。
DELETE /ovirt-engine/api/templates/123/disks/456
<action> <force>...</force> <storage_domain id="..."/> </action>
API のバージョン 4 では、この操作は新しい diskattachments
コレクションに移動され、要求本文はクエリーパラメーター force
および storage_domain
に置き換えられました。
DELETE /ovirt-engine/api/templates/123/disksattachments/456?force=true
DELETE /ovirt-engine/api/templates/123/disksattachments/456?storage_domain=123
B.1.47. VM ディスク API を介してディスクを削除しないでください
/vms/123/disks/456
を削除してエンティティーを削除すると、VM とディスクの間の関係が削除されるので、この操作では VM からディスクを切り離す必要があります。この操作では、システムからディスクを完全に削除できなくなり、ユーザーが間違いを犯しやすく、元に戻せない結果が生じていました。ディスクを削除するには、代わりに /disk/456
API を使用します。
DELETE /ovirt-engine/api/disks/456
B.1.48. force
クエリーパラメーターを使用して、仮想マシンを強制的に削除する
仮想マシンを削除する操作では、force
パラメーターがサポートされています。これを使用するには、オプションのアクションパラメーターをサポートするために使用される DELETE
メソッドを使用します。
DELETE /ovirt-engine/api/vms/123
<action> <force>true</force> </action>
このオプションのアクションパラメーターは、オプションのクエリーパラメーターに置き換えられました。
DELETE /ovirt-engine/api/vms/123?force=true
B.1.49. 複数のブリックを削除するには、DELETE
の代わりに POST
を使用する
複数の Gluster ブリックを削除する操作は、DELETE
メソッドを使用して実装され、ブリックのリストをリクエストの本文として渡します。
DELETE /ovirt-engine/api/clusters/123/glustervolumes/456/bricks
<bricks> <bricks id="..."/> <bricks id="..."/> ... </bricks>
DELETE
メソッドには本体がないため、これは問題であるため、POST
メソッドを使用する新しい 削除
アクションに置き換えられました。
POST /ovirt-engine/api/clusters/123/glustervolumes/456/bricks/remove
<bricks> <bricks id="..."/> <bricks id="..."/> ... </bricks>
B.1.50. Scheduling_policy.policy
要素の削除
この要素は後方互換性のために保持されていました。代わりに Scheduling_policy.name
を使用してください。
POST /ovirt-engine/api/schedulingpolicies
<scheduling_policy> ... <name>policy_name</name> ... </scheduling_policy>
PUT /ovirt-engine/api/schedulingpolicies/123
<scheduling_policy> ... <name>policy_name</name> ... </scheduling_policy>
B.1.51. snapshot.snapshot_type
の追加
Enum は徐々に API に導入されています。これまで文字列だった一部のフィールドは、適切な列挙型に置き換えられます。そのようなフィールドの 1 つが vm.type です。ただし、このフィールドはスナップショットによって継承され、スナップショットタイプは vm タイプとは異なります。そのため、新しいフィールド (snapshot.snapshot_type
) がスナップショットエンティティーに追加されました。
<snapshot> ... <snapshot_type>regular|active|stateless|preview</snapshot_type> ... </snapshot>
B.1.52. VM
からの move
アクションの削除
VM
エンティティーの非推奨の move
アクションは削除されました。代わりに、個々のディスクを移動できます。
B.1.53. reported_configurations.in_sync
を network_attachment
に移動する
API のバージョン 3 では、XML スキーマタイプ ReportedConfigurations
に in_sync
プロパティーがありました。
<network_attachment> <reported_configurations> <in_sync>true</in_sync> <reported_configuration> ... </reported_configuration> ... </reported_configurations> </network_attachment>
リストタイプ (報告された設定のリスト) には属性を指定できないので、API のバージョン 4 で使用される仕様メカニズムでは、これを表現することはできません。それを表現できるようにするために、属性は in_sync を囲む network_attachment
に移動されました。
<network_attachment> <in_sync>true</in_sync> <reported_configurations> <reported_configuration> ... </reported_configuration> ... </reported_configurations> </network_attachment>
B.1.54. capabilities
を clusterlevels
に置き換える
最上位の capabilities
コレクションは、新しい clusterlevels
コレクションに置き換えられました。この新しいコレクションには、各クラスターレベルで使用可能な CPU タイプのリストなど、モデルでは使用できない情報が含まれます。
GET /ovirt-engine/api/clusterlevels
これにより、システムでサポートされている全クラスターレベルの詳細を含め、ClusterLevel
オブジェクトのリストが返されます。
<cluster_levels> <cluster_level id="3.6" href="/clusterlevels/3.6"> <cpu_types> <cpu_type> <name>Intel Nehalem Family</name> <level>2</level> <architecture>x86_64</architecture> </cpu_type> ... </cpu_types> ... </cluster_level> </cluster_levels>
特定の各クラスターレベルには、バージョン自体で識別される独自のサブリソースがあります。
GET /ovirt-engine/api/clusterlevels/3.6
これにより、そのバージョンの詳細が返されます。
<cluster_level id="3.6" href="/clusterlevels/3.6"> <cpu_types> <cpu_type> <name>Intel Nehalem Family</name> <level>2</level> <architecture>x86_64</architecture> </cpu_type> ... </cpu_types> ... </cluster_level>
B.1.55. disks
を diskattachments
に置き換える
バージョン 3 の API 仮想マシンとテンプレートには、接続されているディスクのすべての情報を含む disks
コレクションがありました。API のバージョン 4 では、これらの disks
コレクションは削除され、新しい diskattachments
コレクションに置き換えられました。このコレクションには、ディスクへの参照と、ディスクとディスクが接続されている仮想マシンまたはテンプレートとの関係に固有の属性のみ (interface
と bootable
) が含まれます。
たとえば、仮想マシンに接続されているディスクを見つけるには、以下のようなリクエストを送信します。
GET /ovirt-engine/api/vms/123/diskattachments
以下のような応答が返されます。
<disk_attachments> <disk_attachment href="/vms/123/diskattachments/456" id="456"> <bootable>false</bootable> <interface>virtio</interface> <disk href="/disks/456" id="456"/> <vm href="/vms/123" id="123"/> </disk_attachment> ... <disk_attachments>
ディスクの残りの詳細を見つけるには、提供されたリンクを参照してください。
仮想マシンまたはテンプレートにディスクを追加すると、新しい disk_attachment
要素も使用されます。リクエストが以下のようになります。
POST /ovirt-engine/api/vms/123/diskattachments
ディスクが存在せず、作成する場合は、次の本文を使用します。
<disk_attachment> <bootable>false</bootable> <interface>virtio</interface> <disk> <description>My disk</description> <format>cow</format> <name>mydisk</name> <provisioned_size>1048576</provisioned_size> <storage_domains> <storage_domain> <name>mydata</name> </storage_domain> </storage_domains> </disk> </disk_attachment>
または、ディスクがすでに存在し、ディスクを仮想マシンにアタッチするだけの場合は、次の本文を使用します。
<disk_attachment> <bootable>false</bootable> <interface>virtio</interface> <disk id="456"/> </disk_attachment>
vm.disks
および template.disks
属性には、すべての用途に対して disk_attachments
があることを考慮してください。たとえば、テンプレートを作成するとき、テンプレートのディスクを作成するストレージドメインを指定するために vm.disks
要素が使用されていました。この使用方法も vm.disk_attachments
に置き換えられたため、特定のストレージドメインにディスクを含むテンプレートを作成するリクエストは次のようになります。
<template> <name>mytemplate</name> <vm id="123"> <disk_attachments> <disk_attachment> <disk id="456"> <storage_domains> <storage_domain id="789"/> </storage_domains> </disk> </disk_attachment> ... </disk_attachments> </vm> </template>
B.1.56. iscsi_targets
要素を使用して、未登録のストレージを検出する
API のバージョン 3 では、未登録のストレージドメインを検出する操作は、複数の iscsi_target
を使用して iSCSI ターゲットの一覧を受信していました。
POST /ovirt-engine/api/hosts/123/unregisteredstoragedomaindiscover
<action> <iscsi> <address>myiscsiserver</address> </iscsi> <iscsi_target>iqn.2016-07.com.example:mytarget1</iscsi_target> <iscsi_target>iqn.2016-07.com.example:mytarget2</iscsi_target> </action>
API のバージョン 4 では、この場合の iscsi_target
のようなすべての繰り返し要素は、別の要素 (この場合は iscsi_targets
) でラップされます。したがって、同じリクエストは次のようになります。
POST /ovirt-engine/api/hosts/123/unregisteredstoragedomaindiscover
<action> <iscsi> <address>myiscsiserver</address> </iscsi> <iscsi_targets> <iscsi_target>iqn.2016-07.com.example:mytarget1</iscsi_target> <iscsi_target>iqn.2016-07.com.example:mytarget2</iscsi_target> </iscsi_targets> </action>