2.10. 示例:使用 Python 创建 NFS ISO 存储
要创建虚拟机,您必须能够为客户机操作系统提供安装介质。在 Red Hat Virtualization 环境中,将安装介质存储在 ISO 存储域中。
注意
本例中提供的代码假定已预先配置了远程 NFS 共享以用于 Red Hat Virtualization。有关准备 NFS 共享以供使用的更多信息,请参阅 Red Hat Virtualization 管理指南。
例 2.9. 使用 Python 创建 NFS ISO 存储
这个 Python 示例在
storagedomains 集合中添加了一个 NFS ISO 域。在 Python 中添加 NFS 存储域可分为几个步骤:
- 使用数据中心集合的
get方法来识别必须附加存储的数据中心。dc = api.datacenters.get( name="Default" ) - 使用
get方法识别必须用于附加存储的主机。h = api.hosts.get(name="Atlantic") - 定义 NFS 存储域的存储参数。
在本例中,使用 NFS 位置192.0.43.10/storage/iso。s = params.Storage(address="192.0.43.10", path="/storage/iso", type_="nfs") - 使用
storagedomains集合的add方法,请求创建存储域。除了存储参数外,还需要通过:- 存储域的名称。
- 从数据中心集合中检索
的数据中心对象。 - 从主机集合检索
的主机对象。 - 正在添加的存储域类型(
数据、iso或导出)。 - 要使用的存储格式(
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/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).