2.9. 例:Python を使用した NFS データストレージの作成
Red Hat Virtualization 環境が最初に作成される場合は、少なくともデータストレージドメインと ISO ストレージドメインを定義する必要があります。データストレージドメインは仮想ディスクイメージの保存に使用されますが、ISO ストレージドメインはゲストオペレーティングシステムのインストールメディアを保存するために使用されます。
API
クラスは、storagedomains
という名前のストレージドメインコレクションへのアクセスを提供します。このコレクションには、環境内のすべてのストレージドメインが含まれます。storagedomains
コレクションは、ストレージドメインの追加および削除にも使用できます。
注記
この例で提供されるコードは、リモート NFS 共有が Red Hat Virtualization で使用するために事前設定されていることを前提としています。使用するための NFS 共有の準備の詳細については、Red Hat Virtualization 『Administration Guide』 を参照してください。
例2.8 Python を使用した NFS データストレージの作成
この Python の例では、NFS データドメインを
storagedomains
コレクションに追加します。Python に NFS ストレージドメインを追加すると、いくつかの手順に分類できます。
- Datacenter コレクションの
get
メソッドを使用して、ストレージをアタッチする必要のあるデータセンターを特定します。dc = api.datacenters.get(name="Default")
- ホストコレクションの
get
メソッドを使用して、ストレージの割り当てに使用するホスト
を特定します。h = api.hosts.get(name="Atlantic")
- NFS ストレージドメインの
Storage
パラメーターを定義します。この例では、NFS の場所192.0.43.10/storage/data
が使用されています。s = params.Storage(address="192.0.43.10", path="/storage/data", type_="nfs")
storagedomains
コレクションのadd
メソッドを使用して、ストレージドメインの作成を要求します。Storage
パラメーターに加えて、以下を渡す必要があります。- ストレージドメインの名前。
datacenters
コレクションから取得したデータセンターオブジェクト。host
コレクションから取得したホストオブジェクト。- 追加されるストレージドメインのタイプ (
data
、iso
、またはexport
)。 - 使用するストレージ形式 (
v1
、v2
、またはv3
)。
これらのステップが組み合わされると、完成したスクリプトは以下のようになります。
from ovirtsdk.api import API from ovirtsdk.xml import params try: api = API (url="https://HOST", username="USER@DOMAIN", password="PASS", ca_file="ca.crt") dc = api.datacenters.get(name="Default") h = api.hosts.get(name="Atlantic") s = params.Storage(address="192.0.43.10", path="/storage/data", type_="nfs") sd_params = params.StorageDomain(name="data1", data_center=dc, host=h, type_="data", storage_format="v3", storage=s) try: sd = api.storagedomains.add(sd_params) print "Storage Domain '%s' added (%s)." % (sd.get_name()) except Exception as ex: print "Adding storage domain failed: %s" % ex api.disconnect() except Exception as ex: print "Unexpected error: %s" % ex
add
メソッド呼び出しに成功すると、スクリプトが出力されます。
Storage Domain 'data1' added (bd954c03-d180-4d16-878c-2aedbdede566).