2.10. 例: Python を使用した NFS ISO ストレージの作成

仮想マシンを作成するには、ゲストオペレーティングシステムのインストールメディアを使用可能な状態にする必要があります。Red Hat Virtualization 環境では、インストールメディアを ISO ストレージドメインに保管します。

注記

以下の例に記載したコードは、リモートの NFS 共有が Red Hat Virtualization 用に事前設定済みであることを前提としています。NFS 共有の使用準備に関する詳しい説明は、『Red Hat Virtualization 管理ガイド』を参照してください。

例2.9 Python を使用した NFS ISO ストレージの作成

以下の Python の例は、NFSISO ドメインを storagedomains コレクションに追加します。Python を使用した NFS ストレージドメインの追加は以下のような手順で行います。
  1. datacenters コレクションの get メソッドを使用して、ストレージをアタッチする必要のあるデータセンターを特定します。
    dc = api.datacenters.get( name="Default" )
  2. hosts コレクションの get メソッドを使用して、ストレージのアタッチに使用する必要のあるホストを特定します。
    h = api.hosts.get(name="Atlantic")
  3. NFS ストレージドメインの Storage パラメーターを定義します。以下の例では、NFS の場所に 192.0.43.10/storage/iso を使用しています。
    s = params.Storage(address="192.0.43.10", path="/storage/iso", type_="nfs")
  4. storagedomains コレクションの add メソッドを使用して、ストレージドメイン作成を要求します。Storage パラメーターに加えて、以下の情報をすべて渡す必要があります。
    • ストレージドメインの名前
    • datacenters コレクションから取得したデータセンターオブジェクト
    • hosts コレクションから取得したホストオブジェクト
    • 追加するストレージドメインのタイプ (dataiso、または export)
    • 使用するストレージフォーマット (v1v2、または 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/iso", type_="nfs")
    sd_params = params.StorageDomain(name="iso1", data_center=dc, host=h, type_="iso", 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 'iso1' added (789814a7-7b90-4a39-a1fd-f6a98cc915d8).