2.17. 例: Python を使用した仮想マシンへの ISO イメージのアタッチ

新規作成した仮想マシンにゲストオペレーティングシステムのインストールを開始するには、オペレーティングシステムのインストールメディアを格納した ISO ファイルをアタッチする必要があります。

例2.16 ISO イメージの特定

ISO イメージは、ISO ストレージドメインにアタッチされた files コレクション内にあります。以下の例は、ISO ストレージドメイン上の files コレクションのコンテンツを一覧表示します。
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")

    sd = api.storagedomains.get(name="iso1")
    iso = sd.files.list()

    for i in iso:
        print "%s" % i.get_name()
		
except Exception as ex:
    print "Unexpected error: %s" % ex
成功した場合には、スクリプトにより、files コレクション内のファイルごとに以下の例のようなエントリーが出力されます。
RHEL6.3-Server-x86_64-DVD1.iso
ISO ドメイン上のファイルには必ず一意名が付けられるため、ファイルの id および name 属性が共有される点に注意してください。

例2.17 Python を使用した仮想マシンへの ISO イメージのアタッチ

以下の Python の例では、RHEL6.3-Server-x86_64-DVD1.isoISO イメージファイルを vm1 仮想マシンにアタッチします。イメージファイルを特定し、仮想マシンの cdroms コレクションの add メソッドを使用してアタッチします。
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")

    sd = api.storagedomains.get(name="iso1")

    cd_iso = sd.files.get(name="RHEL6.3-Server-x86_64-DVD1.iso")
    cd_vm = api.vms.get(name="vm1")
    cd_params = params.CdRom(file=cd_iso)

    try:
        cd_vm.cdroms.add(cd_params)
        print "Attached CD to '%s'." % cd_vm.get_name()
    except Exception as ex:
        print "Failed to attach CD to '%s': %s" % (cd_vm.get_name(), ex)

    api.disconnect()

except Exception as ex:
    print "Unexpected error: %s" % ex
add 要求が成功した場合には、スクリプトにより以下のような出力が表示されます。
Attached CD to 'vm1'.

注記

上記の例は、ステータスが Down の仮想マシンに ISO をアタッチするための手順です。ステータスが Up の仮想マシンに ISO をアタッチするには、第 2 の try ステートメントを以下のように変更してください。
try:
	cdrom=cd_vm.cdroms.get(id="00000000-0000-0000-0000-000000000000")
	cdrom.set_file(cd_iso)
	cdrom.update(current=True)
	print "Attached CD to '%s'." % cd_vm.get_name()
except:
	print "Failed to attach CD to '%s': %s" % (cd_vm.get_name(), ex)

例2.18 Python を使用する、仮想マシンからの CD-ROM の取り出し

仮想マシンの cdrom コレクションからの ISO の取り出し
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")

    sd = api.storagedomains.get(name="iso1")
    vm = api.vms.get(name="vm1")

    try:
        vm.cdroms.get(id="00000000-0000-0000-0000-000000000000").delete()
        print "Removed CD from '%s'." % vm.get_name()
    except Exception as ex:
        print "Failed to remove CD from '%s': %s" % (vm.get_name(), ex)

    api.disconnect()

except Exception as ex:
    print "Unexpected error: %s" % ex