Python SDK ガイド
Red Hat Virtualization Python SDK の使用
概要
パート I. Python Sofware Development Kit リンクのコピーリンクがクリップボードにコピーされました!
第1章 概要 リンクのコピーリンクがクリップボードにコピーされました!
-
Version 3 - V3 Python ソフトウェア開発キットは、Red Hat Enterprise Virtualization 3.6 の最新リリースの時点で、Python ソフトウェア開発キットで提供されるクラスおよびメソッド構造との後方互換性を提供します。Red Hat Enterprise Virtualization 3.6 の Python ソフトウェア開発キットを使用して作成されたアプリケーションは、変更せずにこのバージョンで使用できます。
-
Version 4 - V4 Python ソフトウェア開発キットは、更新されたクラス名とメソッド名と署名のセットを提供します。Red Hat Enterprise Virtualization 3.6 の Python ソフトウェア開発キットを使用して作成されたアプリケーションは、このバージョンで使用する前に更新する必要があります。
1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Enterprise Linux 7 がインストールされているシステム。サーバーとワークステーションの両方のバリアントがサポートされています。
- Red Hat Virtualization エンタイトルメントのサブスクリプション。
1.2. Python ソフトウェア開発キットのインストール リンクのコピーリンクがクリップボードにコピーされました!
手順1.1 Python ソフトウェア開発キットのインストール
- 必要なチャンネルを有効にします。
subscription-manager repos --enable=rhel-7-server-rpms subscription-manager repos --enable=rhel-7-server-rhv-4.0-rpms
# subscription-manager repos --enable=rhel-7-server-rpms # subscription-manager repos --enable=rhel-7-server-rhv-4.0-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要なパッケージをインストールします。
- V3 の場合:
yum install ovirt-engine-sdk-python
# yum install ovirt-engine-sdk-pythonCopy to Clipboard Copied! Toggle word wrap Toggle overflow - V4 の場合:
yum install python-ovirt-engine-sdk4
# yum install python-ovirt-engine-sdk4Copy to Clipboard Copied! Toggle word wrap Toggle overflow
/usr/lib/python2.7/site-packages/ovirtsdk/ ディレクトリーにダウンロードされ、Python プロジェクトに追加できるようになりました。
第2章 Python クイックスタートの例 リンクのコピーリンクがクリップボードにコピーされました!
2.1. Python クイックスタートの概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Virtualization エンタイトルメントプールにサブスクライブしているシステムで利用できます。ソフトウェアをダウンロードするためにシステムをサブスクライブする方法は、「Python ソフトウェア開発キットのインストール」 を参照してください。
- Red Hat Virtualization Manager のネットワークインストール。
- ネットワーク接続され、接続された Red Hat Virtualization ホスト。
- 仮想マシンにインストールするためのオペレーティングシステムを含む ISO イメージファイル。
- Red Hat Virtualization 環境を設定する論理オブジェクトと物理オブジェクトの両方に関する実用的な理解。
- Python プログラミング言語の実用的な理解。
id 属性に対してグローバルに一意の識別子 (GUID) を生成します。これらの例の識別子コードは、お使いの Red Hat Virtualization 環境の識別子コードとは異なる場合があります。
ovirtsdk.infrastructure.errors モジュールの pydoc を参照してください。
pydoc ovirtsdk.infrastructure.errors
$ pydoc ovirtsdk.infrastructure.errors
2.2. 例:Python を使用した API エントリーポイントへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
API のエントリーポイントとして機能する API クラスを提供します。
例2.1 Python を使用した API エントリーポイントへのアクセス
API クラスのインスタンスを作成します。接続に成功した場合、メッセージが出力されます。最後に、API クラスの disconnect () メソッドが呼び出され、接続を閉じます。
API クラスのコンストラクターに提供されるパラメーターは以下のとおりです。
接続する Manager の URL。- 認証するユーザーのユーザー
名。 - 認証するユーザーの
パスワード。 - 証明書へのパスである
ca_file。証明書は、Manager の認証局のコピーであることが予想されます。https://[engine-fqdn]ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CAから取得できます。
API クラスのコンストラクターは、他のパラメーターをサポートします。この例では、必須パラメーターのみが使用されています。
Connected to Red Hat Virtualization Manager successfully!
Connected to Red Hat Virtualization Manager successfully!
2.3. 例:Python を使用したデータセンターコレクションの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
API クラスは、datacenters という名前のデータセンターコレクションへのアクセスを提供します。このコレクションには、環境内のすべてのデータセンターが含まれます。
例2.2 Python を使用したデータセンターコレクションの一覧表示
datacenters コレクションのデータセンターを一覧表示しています。また、コレクション内の各データセンターの基本情報も出力します。
Default データセンターのみが存在し、アクティベートされていない環境では、例は次のように出力します。
Default (d8b74b20-c6e1-11e1-87a3-00163e77e2ed)
Default (d8b74b20-c6e1-11e1-87a3-00163e77e2ed)
2.4. 例:Python を使用したクラスターコレクションの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
clusters という名前のクラスターコレクションを提供します。このコレクションには、環境内のすべてのクラスターが含まれます。
例2.3 Python を使用したクラスターコレクションの一覧表示
clusters コレクション内のクラスターを一覧表示します。また、コレクション内の各クラスターの基本情報も出力します。
Default クラスターのみが存在する環境では、例は次のように出力します。
Default (99408929-82cf-4dc7-a532-9d998063fa95)
Default (99408929-82cf-4dc7-a532-9d998063fa95)
2.5. 例:Python を使用した論理ネットワークコレクションの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
API クラスは、ネットワーク という名前の論理ネットワークコレクションへのアクセスを提供し ます。このコレクションには、環境内のすべての論理ネットワークが含まれます。
例2.4 Python を使用した論理ネットワークコレクションの一覧表示
networks コレクション内の論理ネットワークを一覧表示しています。また、コレクション内の各ネットワークに関する基本情報も出力します。
ovirtmgmt (00000000-0000-0000-0000-000000000009)
ovirtmgmt (00000000-0000-0000-0000-000000000009)
2.6. 例:Python を使用したホストコレクションの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
API クラスは hosts という名前のホストコレクションへのアクセスを提供します。このコレクションには、環境内の全ホストが含まれます。
例2.5 Python を使用したホストコレクションの一覧表示
hosts コレクションのホストを一覧表示します。
Atlantic という名前のホストが 1 つしかない環境では、出力例が添付されています。
Atlantic (5b333c18-f224-11e1-9bdd-00163e77e2ed)
Atlantic (5b333c18-f224-11e1-9bdd-00163e77e2ed)
2.7. 例:ISO ストレージドメインでの ISO ファイルの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
API クラスは、storagedomains という名前のストレージドメインコレクションへのアクセスを提供します。このコレクションには、ストレージドメイン内のファイルを記述する files コレクションが含まれています。
例2.6 ISO ストレージドメインの ISO ファイルの一覧表示
2.8. 例:仮想マシンのサイズの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
API クラスは、vms という名前の仮想マシンコレクションへのアクセスを提供します。このコレクションには、仮想マシンに接続されている各ディスクの詳細を記述する disks コレクションが含まれます。
例2.7 仮想マシンのサイズの一覧表示
2.9. 例:Python を使用した NFS データストレージの作成 リンクのコピーリンクがクリップボードにコピーされました!
API クラスは、storagedomains という名前のストレージドメインコレクションへのアクセスを提供します。このコレクションには、環境内のすべてのストレージドメインが含まれます。storagedomains コレクションは、ストレージドメインの追加および削除にも使用できます。
例2.8 Python を使用した NFS データストレージの作成
storagedomains コレクションに追加します。Python に NFS ストレージドメインを追加すると、いくつかの手順に分類できます。
- Datacenter コレクションの
getメソッドを使用して、ストレージをアタッチする必要のあるデータセンターを特定します。dc = api.datacenters.get(name="Default")
dc = api.datacenters.get(name="Default")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ホストコレクションの
getメソッドを使用して、ストレージの割り当てに使用するホストを特定します。h = api.hosts.get(name="Atlantic")
h = api.hosts.get(name="Atlantic")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - NFS ストレージドメインの
Storageパラメーターを定義します。この例では、NFS の場所192.0.43.10/storage/dataが使用されています。s = params.Storage(address="192.0.43.10", path="/storage/data", type_="nfs")
s = params.Storage(address="192.0.43.10", path="/storage/data", type_="nfs")Copy to Clipboard Copied! Toggle word wrap Toggle overflow storagedomainsコレクションのaddメソッドを使用して、ストレージドメインの作成を要求します。Storageパラメーターに加えて、以下を渡す必要があります。- ストレージドメインの名前。
datacentersコレクションから取得したデータセンターオブジェクト。hostコレクションから取得したホストオブジェクト。- 追加されるストレージドメインのタイプ (
data、iso、またはexport)。 - 使用するストレージ形式 (
v1、v2、またはv3)。
add メソッド呼び出しに成功すると、スクリプトが出力されます。
Storage Domain 'data1' added (bd954c03-d180-4d16-878c-2aedbdede566).
Storage Domain 'data1' added (bd954c03-d180-4d16-878c-2aedbdede566).
2.10. 例:Python を使用した NFS ISO ストレージの作成 リンクのコピーリンクがクリップボードにコピーされました!
例2.9 Python を使用した NFS ISO ストレージの作成
storagedomains コレクションに追加します。Python に NFS ストレージドメインを追加すると、いくつかの手順に分類できます。
- Datacenter コレクションの
getメソッドを使用して、ストレージをアタッチする必要のあるデータセンターを特定します。dc = api.datacenters.get( name="Default" )
dc = api.datacenters.get( name="Default" )Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ホストコレクションの
getメソッドを使用して、ストレージの割り当てに使用するホストを特定します。h = api.hosts.get(name="Atlantic")
h = api.hosts.get(name="Atlantic")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - NFS ストレージドメインの
Storageパラメーターを定義します。この例では、NFS の場所192.0.43.10/storage/isoが使用されています。s = params.Storage(address="192.0.43.10", path="/storage/iso", type_="nfs")
s = params.Storage(address="192.0.43.10", path="/storage/iso", type_="nfs")Copy to Clipboard Copied! Toggle word wrap Toggle overflow storagedomainsコレクションのaddメソッドを使用して、ストレージドメインの作成を要求します。Storageパラメーターに加えて、以下を渡す必要があります。- ストレージドメインの名前。
datacentersコレクションから取得したデータセンターオブジェクト。hostコレクションから取得したホストオブジェクト。- 追加されるストレージドメインのタイプ (
data、iso、またはexport)。 - 使用するストレージ形式 (
v1、v2、またはv3)。
add メソッド呼び出しに成功すると、スクリプトが出力されます。
Storage Domain 'iso1' added (789814a7-7b90-4a39-a1fd-f6a98cc915d8).
Storage Domain 'iso1' added (789814a7-7b90-4a39-a1fd-f6a98cc915d8).
2.11. 例:Python を使用したストレージドメインのデータセンターへの接続 リンクのコピーリンクがクリップボードにコピーされました!
例2.10 Python を使用したデータセンターへのストレージドメインの割り当て
data1 という名前のデータストレージドメインと、iso1 という名前の ISO ストレージドメインを デフォルト のデータセンターに割り当てます。attach アクションは、データセンターの storagedomains コレクションの add メソッドによって容易になります。
add メソッドへの呼び出しに成功すると、スクリプトが出力されます。
Attached data storage domain 'data1' to data center 'Default' (Status: maintenance). Attached ISO storage domain 'iso1' to data center 'Default' (Status: maintenance).
Attached data storage domain 'data1' to data center 'Default' (Status: maintenance).
Attached ISO storage domain 'iso1' to data center 'Default' (Status: maintenance).
ステータス は、ストレージドメインをアクティブ化する必要があることを反映しています。
2.12. 例:Python を使用したストレージドメインのアクティブ化 リンクのコピーリンクがクリップボードにコピーされました!
例2.11 Python を使用したストレージドメインのアクティブ化
data1 という名前のデータストレージドメインと、iso1 という名前の ISO ストレージドメインをアクティベートします。どちらのストレージドメインも Default データセンターに割り当てられます。activate アクションは、ストレージドメインの activate メソッドによって容易になります。
成功 すると、スクリプトにより以下が出力されます。
Activated data storage domain 'data1' in data center 'Default' (Status: active). Activated ISO storage domain 'iso1' in data center 'Default' (Status: active).
Activated data storage domain 'data1' in data center 'Default' (Status: active).
Activated ISO storage domain 'iso1' in data center 'Default' (Status: active).
ステータス は、ストレージドメインがアクティブになったことを反映しています。
2.13. 例:Python を使用した仮想マシンの作成 リンクのコピーリンクがクリップボードにコピーされました!
例2.12 Python を使用した仮想マシンの作成
vm1 という名前の仮想マシンを作成します。この例の仮想マシン:
- 512 MB のメモリーが必要です(バイト単位で表されます)。
vm_memory = 512 * 1024 * 1024
vm_memory = 512 * 1024 * 1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow Defaultクラスターにアタッチする必要があるため、Defaultデータセンターに接続されている必要があります。vm_cluster = api.clusters.get(name="Default")
vm_cluster = api.clusters.get(name="Default")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - デフォルトの
Blankテンプレートをベースとする必要があります。vm_template = api.templates.get(name="Blank")
vm_template = api.templates.get(name="Blank")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想ハードディスクドライブから起動する必要があります。
vm_os = params.OperatingSystem(boot=[params.Boot(dev="hd")])
vm_os = params.OperatingSystem(boot=[params.Boot(dev="hd")])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
vms コレクションの add メソッドを使用して仮想マシン自体を作成する前に、仮想マシンパラメーターオブジェクトに統合されます。
追加 要求に成功すると、スクリプトにより以下が出力されます。
Virtual machine 'vm1' added.
Virtual machine 'vm1' added.
2.14. 例:Python を使用した仮想マシン NIC の作成 リンクのコピーリンクがクリップボードにコピーされました!
例2.13 Python を使用した仮想マシン NIC の作成
nic1 という名前の NIC を作成し、vm1 という名前の仮想マシンにアタッチします。この例の NIC は、以下のとおりです。
virtioネットワークデバイスである必要があります。nic_interface = "virtio"
nic_interface = "virtio"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ovirtmgmt管理ネットワークにリンクする必要があります。nic_network = api.networks.get(name="ovirtmgmt")
nic_network = api.networks.get(name="ovirtmgmt")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
nics コレクションの add メソッドを使用して NIC を作成する前に、NIC パラメーターオブジェクトに統合されます。
追加 要求に成功すると、スクリプトにより以下が出力されます。
Network interface 'nic1' added to 'vm1'.
Network interface 'nic1' added to 'vm1'.
2.15. 例:Python を使用した仮想マシンのストレージディスクの作成 リンクのコピーリンクがクリップボードにコピーされました!
例2.14 Python を使用した仮想マシンのストレージディスクの作成
virtio ディスクドライブを作成し、vm1 という名前の仮想マシンにアタッチします。この例のディスク:
data1という名前のストレージドメインに保存する必要があります。disk_storage_domain = params.StorageDomains(storage_domain=[api.storagedomains.get(name="data1")])
disk_storage_domain = params.StorageDomains(storage_domain=[api.storagedomains.get(name="data1")])Copy to Clipboard Copied! Toggle word wrap Toggle overflow - サイズは 8 GB である必要があります。
disk_size = 8*1024*1024
disk_size = 8*1024*1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow システムタイプのディスク(データではなく)である必要があります。disk_type = "system"
disk_type = "system"Copy to Clipboard Copied! Toggle word wrap Toggle overflow virtioストレージデバイスである必要があります。disk_interface = "virtio"
disk_interface = "virtio"Copy to Clipboard Copied! Toggle word wrap Toggle overflow cow形式で保存する必要があります。disk_format = "cow"
disk_format = "cow"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用可能なブートデバイスとしてマークされている必要があります。
disk_bootable = True
disk_bootable = TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
add メソッドを使用してディスク自体を作成する前に、ディスク パラメーターオブジェクトに統合されます。
追加 要求に成功すると、スクリプトにより以下が出力されます。
Disk 'vm1_Disk1' added to 'vm1'.
Disk 'vm1_Disk1' added to 'vm1'.
2.16. 例:Python を使用した ISO イメージの仮想マシンへのアタッチ リンクのコピーリンクがクリップボードにコピーされました!
例2.15 ISO イメージの特定
ファイル コレクションにあります。この例では、ISO ストレージドメイン上の files コレクションの内容を一覧表示します。
files コレクションにある各ファイルで以下のようなエントリーを出力します。
RHEL6.3-Server-x86_64-DVD1.iso
RHEL6.3-Server-x86_64-DVD1.iso
id 属性と name 属性を一意に付ける必要があるため、共有されている必要があることに注意してください。
例2.16 Python を使用した仮想マシンへの ISO イメージのアタッチ
RHEL6.3-Server-x86_64-DVD1.iso ISO イメージファイルを vm1 仮想マシンに割り当てます。イメージファイルが特定されると、仮想マシンの cdroms コレクションの add メソッドを使用してイメージファイルがアタッチされます。
追加 要求に成功すると、スクリプトにより以下が出力されます。
Attached CD to 'vm1'.
Attached CD to 'vm1'.
Down の仮想マシンに ISO イメージをアタッチします。Up ステータスの仮想マシンに ISO をアタッチするには、2 番目の try ステートメントを以下のように変更します。
例2.17 Python を使用した仮想マシンからの CD-ROM の取り出し
cdrom コレクションから ISO を取り出します。
2.17. 例:Python を使用したディスクのデタッチ リンクのコピーリンクがクリップボードにコピーされました!
例2.18 Python を使用したディスクのデタッチ
2.18. 例:Python を使用した仮想マシンの起動 リンクのコピーリンクがクリップボードにコピーされました!
例2.19 Python を使用した仮想マシンの起動
start メソッドを使用して仮想マシンを起動します。
開始 要求に成功すると、スクリプトにより以下が出力されます。
Started 'vm1'.
Started 'vm1'.
ステータス は、仮想マシンが起動し、が up であることを反映していることに注意してください。
2.19. 例:Python を使用したオーバーライドパラメーターを使用した仮想マシンの起動 リンクのコピーリンクがクリップボードにコピーされました!
例2.20 Python を使用して上書きされたパラメーターで仮想マシンの起動
virtio-win_x86.vfd フロッピーディスクをアタッチします。このアクションは、管理ポータルまたはユーザーポータルの Run Once ウィンドウを使用して仮想マシンを起動することと同じです。
2.20. 例:Python を使用した Cloud-Init での仮想マシンの起動 リンクのコピーリンクがクリップボードにコピーされました!
例2.21 Python を使用した Cloud-Init での仮想マシンの起動
2.21. 例:Python を使用したシステムイベントの確認 リンクのコピーリンクがクリップボードにコピーされました!
イベント を公開します。
例2.22 Python を使用したシステムイベントの確認
events コレクションが一覧表示されます。以下の点に留意してください。
listメソッドのqueryパラメーターは、使用可能なすべての結果ページが返されるようにするために使用されます。デフォルトでは、listメソッドは結果の最初のページのみを返します。デフォルトは最大100レコードの長さになります。- 結果のリストが逆となり、発生した順序でイベントが出力に含まれるようにします。
2012-09-25T18:40:10.065-04:00 NORMAL CODE 30 - User admin@internal logged in. 2012-09-25T18:40:10.368-04:00 NORMAL CODE 153 - VM vm1 was started by admin@internal (Host: Atlantic). 2012-09-25T18:40:10.470-04:00 NORMAL CODE 30 - User admin@internal logged in.
2012-09-25T18:40:10.065-04:00 NORMAL CODE 30 - User admin@internal logged in.
2012-09-25T18:40:10.368-04:00 NORMAL CODE 153 - VM vm1 was started by admin@internal (Host: Atlantic).
2012-09-25T18:40:10.470-04:00 NORMAL CODE 30 - User admin@internal logged in.
第3章 ソフトウェア開発キットの使用 リンクのコピーリンクがクリップボードにコピーされました!
3.1. Python を使用した API への接続 リンクのコピーリンクがクリップボードにコピーされました!
API クラスのインスタンスを作成する必要があります。これを可能にするには、スクリプトの開始時に クラスを最初にインポートする必要があります。
from ovirtsdk.api import API
from ovirtsdk.api import API
API クラスのコンストラクターは、いくつかの引数を取ります。サポートされている引数は次のとおりです。
- url
/apiパスを含む、接続する Manager の URL を指定します。このパラメーターは必須です。- username
- ユーザープリンシパル名(UPN)形式で、接続するユーザー名を指定します。このパラメーターは必須です。
- password
usernameパラメーターで指定したユーザー名のパスワードを指定します。このパラメーターは必須です。- Kerberos
- 有効な Kerberos チケットを使用して接続を認証します。有効な値は
TrueおよびFalseです。このパラメーターは任意です。 - key_file
cert_fileで指定された証明書に関連付けられた秘密鍵を含む PEM 形式のキーファイルを指定します。このパラメーターは任意です。- cert_file
- サーバー上のクライアントのアイデンティティーを確立するために使用される PEM 形式のクライアント証明書を指定します。このパラメーターは任意です。
- ca_file
- サーバーの認証局の証明書ファイルを指定します。
insecureパラメーターがTrueに設定されていない限り、このパラメーターは必須です。 - port
- 使用するポートを指定します。ここで、
urlパラメーターのコンポーネントとして提供されていません。このパラメーターは任意です。 - timeout
- 要求がタイムアウトであると見なす前に経過できる時間を秒単位で指定します。このパラメーターは任意です。
- persistent_auth
- この接続に対して永続的な認証を有効にするかどうかを指定します。有効な値は
TrueおよびFalseです。このパラメーターはオプションであり、デフォルトはFalseです。 - insecure
- 認証局なしで SSL 経由で接続できるようにします。有効な値は
TrueおよびFalseです。insecureパラメーターがデフォルトのFalseに設定されている場合、ca_fileを指定して接続のセキュリティーを保護する必要があります。このオプションは、中間者(MITM)攻撃者がサーバーのアイデンティティーを偽装できる可能性があるため、注意して使用する必要があります。 - filter
- ユーザーパーミッションベースのフィルターがオンまたはオフであるかを指定します。有効な値は
TrueおよびFalseです。フィルターパラメーターがFalse(デフォルト)に設定されている場合には、指定される認証情報が管理ユーザーのものである必要があります。filterパラメーターをTrueに設定すると、任意のユーザーを使用でき、Manager はパーミッションに基づいてユーザーが利用可能なアクションをフィルターします。 - debug
- この接続に対してデバッグモードを有効にするかどうかを指定します。有効な値は
TrueおよびFalseです。このパラメーターは任意です。
API クラスのインスタンスを作成し、test ()メソッドを使用して接続が機能していることを確認します。また、disconnect () メソッドを使用して切断します。
API クラスでサポートされるメソッドの完全リストは、ovirtsdk.api モジュールの pydoc 出力を参照してください。
pydoc ovirtsdk.api
$ pydoc ovirtsdk.api
3.2. リソースおよびコレクション リンクのコピーリンクがクリップボードにコピーされました!
- コレクション
- コレクションは、同じタイプのリソースのセットです。API は最上位のコレクションとサブコレクションの両方を提供します。トップレベルのコレクションの例は、環境内のすべての仮想化ホストが含まれる
hostsコレクションです。サブコレクションの例は、ホストリソースに割り当てられたすべてのネットワークインターフェイスカードのリソースが含まれるhost.nicsコレクションです。コレクションと対話するインターフェイスは、リソースの追加(の追加)、リソースの取得(get)、およびリソースの一覧表示を行うメソッド(リスト)を提供します。 - リソース
- RESTful API のリソースは、固定されたインターフェイスを持つオブジェクトで、表現される特定のタイプのリソースに関連する属性のセットも含まれます。リソースと対話するインターフェイスは、リソースの更新(
更新)およびリソースの削除(削除)を行う方法を提供します。また、リソースによっては、リソースタイプに固有のアクションをサポートするものもあります。たとえば、ホストリソースのます。承認方法が挙げられ
3.3. コレクションからのリソースの取得 リンクのコピーリンクがクリップボードにコピーされました!
get および list メソッドを使用してコレクションから取得されます。
- get
- コレクションから単一のリソースを取得します。取得する項目は、引数として提供される名前に基づいて決定されます。
getメソッドは、以下の引数を取ります。名前- コレクションから取得するリソースの名前。ID- コレクションから取得するリソースのグローバル一意識別子(GUID)。
- list
- コレクションから任意の数のリソースを取得します。取得する項目は、提供される基準に基づいて決定されます。
listメソッドは、以下の引数を取ります。**kwargs: キーワードベースのフィルターリングを可能にする追加の引数のディクショナリー。クエリー- Red Hat Virtualization ユーザーインターフェイスを使用して実行される検索に使用される形式と同じ形式で記述されたクエリー。max- 取得するリソースの最大数。case_sensitive- 検索用語が大文字と小文字を区別するかどうか(TrueまたはFalse)。デフォルトはTrueです。
3.4. コレクションからの特定のリソースの取得 リンクのコピーリンクがクリップボードにコピーされました!
get メソッドを使用して、特定のリソースがコレクションから取得されます。
例3.1 名前による特定のリソースの取得
get メソッドの name パラメーターを使用して、データ センター コレクションから Default データセンターを取得します。
dc = api.datacenters.get("Default")
dc = api.datacenters.get("Default")
dc = api.datacenters.get(name="Default")
dc = api.datacenters.get(name="Default")
all_content ヘッダーを使用して、取得 リクエストに関する追加情報を取得できます。
例3.2 特定のリソースに関する追加情報の取得
vm = api.vms.get(name="VM01", all_content=True)
vm = api.vms.get(name="VM01", all_content=True)
3.5. コレクションからのリソース一覧の取得 リンクのコピーリンクがクリップボードにコピーされました!
一覧 をコレクションから取得します。
例3.3 コレクション内の全リソース一覧の取得
list メソッドの クエリー パラメーターを使用すると、エンジンベースのクエリーを使用できます。これにより、SDK は、管理ポータルおよびユーザーポータルで実行される形式と同じ形式でクエリーの使用をサポートします。クエリー パラメーターは、コレクションを介して反復処理中にページネーション引数を提供するメカニズムでもあります。
datacenters コレクションに含まれるリソースのリストは、最終的にローカルで定義された dc_list リスト変数に保存されます。
list メソッドは、SearchResultsLimit Red Hat Virtualization Manager 設定キーで許可されている数だけを返すように制限されます。
一覧 のすべてのレコードが返されるようにするには、以下の例のように結果をページ分割することが推奨されます。
list メソッドの max パラメーターを、取得する最大レコード数に設定することもできます。
例3.4 キーワードベースのフィルターに一致するコレクション内のリソース一覧の取得
nfs のストレージタイプを持つ datacenter コレクション内の全リソース一覧を取得します。この例では、クエリー パラメーターと **kwargs パラメーターの両方が指定されます。クエリー は、前述の例のようにページネーションに使用されます。**kwargs パラメーターは、データセンターのストレージタイプに基づいてフィルターリングするために使用されます。
nfs の datacenter コレクションに含まれるリソースの一覧は、最終的にローカルで定義された dc_list リスト変数に保存されます。
3.6. リソースのコレクションへの追加 リンクのコピーリンクがクリップボードにコピーされました!
add メソッドは、リソースを追加します。追加するリソースは、提供されるパラメーターに基づいて作成されます。パラメーターは、ovirtsdk.xml.params モジュールのオブジェクトのインスタンスを使用して add メソッドに提供されます。モジュールの特定のクラスは、作成されるリソースのタイプによって異なります。
例3.5 リソースのコレクションへの追加
- 作成されるリソースタイプのパラメーターオブジェクトのインスタンスを作成します。
- リソースを追加するコレクションを特定します。
- パラメーターオブジェクトをパラメーターとして渡すコレクションの
addメソッドを呼び出します。
例3.6 複雑なパラメーター
ovirtsdk.xml.params.Version オブジェクトを構築する必要があります。次に、これは、作成するデータセンターのパラメーターが含まれる ovirtsdk.xml.params.DataCenter オブジェクトのインスタンスを作成する際にパラメーターとして使用されます。その後、リソースは datacenter コレクションの add メソッドを使用して作成されます。
v_params = params.Version(major=4, minor=0) dc_params = params.DataCenter(name="DemoDataCenter", storage_type="NFS", version=v_params) dc = api.datacenters.add(dc_params)
v_params = params.Version(major=4, minor=0)
dc_params = params.DataCenter(name="DemoDataCenter", storage_type="NFS", version=v_params)
dc = api.datacenters.add(dc_params)
3.7. コレクション内のリソースの更新 リンクのコピーリンクがクリップボードにコピーされました!
更新 メソッドを呼び出して変更を保存する必要があります。パラメーターの変更は、取得したリソースの set_* メソッドを使用して実行されます。
例3.7 リソースの更新
DemoDataCenter という名前のデータセンターの説明が更新されています。
dc = api.datacenters.get("DemoDataCenter")
dc.set_description("This data center description provided using the Python SDK")
dc.update()
dc = api.datacenters.get("DemoDataCenter")
dc.set_description("This data center description provided using the Python SDK")
dc.update()
3.8. コレクションからのリソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
delete メソッドを呼び出す必要があります。
例3.8 コレクションからのリソースの削除
vms コレクションから DemoVM という名前の仮想マシンを削除します。
vm = api.vms.get("DemoVM")
vm.delete()
vm = api.vms.get("DemoVM")
vm.delete()
3.9. エラーの処理 リンクのコピーリンクがクリップボードにコピーされました!
ovirtsdk.infrastructure.errors モジュールにあります。
- ConnectionError
- トランスポート層エラーが発生したときに発生します。
- DisconnectedError
- 明示的に切断された後に SDK の使用を試みると発生します。
- ImmutableError
- SDK インスタンスがすでに同じドメインに存在する間に SDK を開始すると発生します。SDK バージョン 3.2 以降に適用されます。
- NoCertificatesError
- CA が指定されておらず、--insecure が False の場合に発生します。
- RequestError
- あらゆる種類の oVirt サーバーエラーが発生しました。
- UnsecuredConnectionAttemptError
- サーバーが HTTPS の実行中に HTTP プロトコルを使用すると発生します。
- MissingParametersError
- id または name を指定せずに get ()メソッドを使用しようとすると発生します。
例3.9 ConnectionError 例外のキャッチ
第4章 Python リファレンスドキュメント リンクのコピーリンクがクリップボードにコピーされました!
4.1. Python リファレンスドキュメント リンクのコピーリンクがクリップボードにコピーされました!
- ovirtsdk.api
- ovirtsdk.infrastructure.brokers
- ovirtsdk.infrastructure.errors
pydoc [MODULE]
$ pydoc [MODULE]