Python SDK 指南
使用 Red Hat Virtualization Python SDK
摘要
部分 I. Python Sofware Development Kit 复制链接链接已复制到粘贴板!
第 1 章 概述 复制链接链接已复制到粘贴板!
-
版本 3 - V3 Python 软件开发工具包提供了与 Python 软件开发工具包中提供的类和方法结构向后兼容,作为 Red Hat Enterprise Virtualization 3.6 的最新版本。使用来自 Red Hat Enterprise Virtualization 3.6 的 Python 软件开发工具包编写的应用程序可以在不修改的情况下用于此版本。
-
版本 4 - V4 Python 软件开发工具包提供了一组更新的类和方法名称和签名。使用 Red Hat Enterprise Virtualization 3.6 中的 Python 软件开发工具包编写的应用程序必须更新它们,然后才能用于此版本。
1.1. 前提条件 复制链接链接已复制到粘贴板!
- A system where Red Hat Enterprise Linux 7 is installed.支持 Server 和 Workstation 变体。
- 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 授权池的系统中。有关订阅您的系统以下载软件的更多信息,请参阅 第 1.2 节 “安装 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,这是证书的路径。证书应该是管理器证书颁发机构的一个副本。它可以从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 类提供对数据中心集合的访问,名为 datacenter。此集合包含环境中的所有数据中心。
例 2.2. 使用 Python 列出数据中心集合
datacenters 集合中的数据中心。它还会输出集合中每个数据中心的一些基本信息。
Default 数据中心的环境中,且没有激活,示例输出:
Default (d8b74b20-c6e1-11e1-87a3-00163e77e2ed)
Default (d8b74b20-c6e1-11e1-87a3-00163e77e2ed)
2.4. 示例:使用 Python 列出 Cluster Collection 复制链接链接已复制到粘贴板!
clusters 的集群集合。此集合包含环境中的所有集群。
例 2.3. 使用 Python 列出集群集合
的集群。它还会输出集合中每个集群的一些基本信息。
Default 集群的环境中,示例输出:
Default (99408929-82cf-4dc7-a532-9d998063fa95)
Default (99408929-82cf-4dc7-a532-9d998063fa95)
2.5. 示例:使用 Python 列出逻辑网络集合 复制链接链接已复制到粘贴板!
API 类提供对逻辑网络集合(名为 network )的访问。此集合包含环境中的所有逻辑网络。
例 2.4. 使用 Python 列出逻辑网络集合
逻辑网络。它还会输出集合中每个网络的一些基本信息。
ovirtmgmt (00000000-0000-0000-0000-000000000009)
ovirtmgmt (00000000-0000-0000-0000-000000000009)
2.6. 示例:使用 Python 列出主机集合 复制链接链接已复制到粘贴板!
API 类提供对名为 hosts 的主机集合的访问。此集合包含环境中的所有主机。
例 2.5. 使用 Python 列出主机集合
的主机。
Atlantic,并附加了示例输出:
Atlantic (5b333c18-f224-11e1-9bdd-00163e77e2ed)
Atlantic (5b333c18-f224-11e1-9bdd-00163e77e2ed)
2.7. 示例:列出 ISO 存储域中的 ISO 文件 复制链接链接已复制到粘贴板!
API 类提供对存储域集合的访问,名为 storagedomains。这个集合包含描述存储域中 的文件 集合。
例 2.6. 列出 ISO 存储域中的 ISO 文件
2.8. 示例:列出虚拟机的大小 复制链接链接已复制到粘贴板!
API 类提供对名为 vms 的虚拟机集合的访问。这个集合包含 磁盘 集合,用于描述附加到虚拟机的每个磁盘的详情。
例 2.7. 列出虚拟机的大小
2.9. 示例:使用 Python 创建 NFS 数据存储 复制链接链接已复制到粘贴板!
API 类提供对名为 storagedomains 的存储域集合的访问。此集合包含环境中的所有存储域。storagedomains 集合也可用于添加和删除存储域。
例 2.8. 使用 Python 创建 NFS 数据存储
storagedomains 集合中添加了一个 NFS 数据域。在 Python 中添加 NFS 存储域可分为几个步骤:
- 使用数据中心集合的
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 存储域的存储参数。
在本例中,使用 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方法,请求创建存储域。除了存储参数外,还需要通过:- 存储域的名称。
- 从数据中心集合中检索
的数据中心对象。 - 从主机集合检索
的主机对象。 - 正在添加的存储域类型(
数据、iso或导出)。 - 要使用的存储格式(
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 集合中添加了一个 NFS ISO 域。在 Python 中添加 NFS 存储域可分为几个步骤:
- 使用数据中心集合的
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 存储域的存储参数。
在本例中,使用 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方法,请求创建存储域。除了存储参数外,还需要通过:- 存储域的名称。
- 从数据中心集合中检索
的数据中心对象。 - 从主机集合检索
的主机对象。 - 正在添加的存储域类型(
数据、iso或导出)。 - 要使用的存储格式(
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 数据中心。激活操作由存储域的 激活 方法促进。
请求成功,则脚本将输出:
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 - 必须基于默认的
空白模板。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 存储域中 文件 集合的内容。
为文件 集合中找到的每个文件输出类似如下的条目:
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 的虚拟机,第二个 尝试 语句到以下内容:
例 2.17. 使用 Python 从虚拟机检索 cdrom
cdrom 集合中弹出 ISO。
2.17. 示例:使用 Python 分离磁盘 复制链接链接已复制到粘贴板!
例 2.18. 使用 Python 分离磁盘
2.18. 示例:使用 Python 启动虚拟机 复制链接链接已复制到粘贴板!
例 2.19. 使用 Python 启动虚拟机
start 方法启动虚拟机。
启动 请求成功,则脚本将输出:
Started 'vm1'.
Started 'vm1'.
状态 反映了虚拟机已启动,现在为。
2.19. 示例:使用 Python 启动带有 Overridden 参数的虚拟机 复制链接链接已复制到粘贴板!
例 2.20. 使用 Python 通过覆盖的参数启动虚拟机
virtio-win_x86.vfd 软盘(包含 Windows 驱动程序)。此操作等同于在管理门户或用户访问中使用 Run Once 窗口启动虚拟机。
2.20. 示例:使用 Python 启动带有 Cloud-Init 的虚拟机 复制链接链接已复制到粘贴板!
例 2.21. 使用 Python 启动使用 Cloud-Init 的虚拟机
2.21. 示例:使用 Python 检查系统事件 复制链接链接已复制到粘贴板!
事件。
例 2.22. 使用 Python 检查系统事件
事件 集合。请注意:
list方法的查询参数用于确保返回所有可用结果页面。默认情况下,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
- 指定要连接的 Manager 的 URL,包括
/api路径。这个参数是必需的。 - 用户名
- 以 User Principal Name (UPN)格式指定要连接的用户名。这个参数是必需的。
- 密码
- 指定
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
- 指定基于用户权限的过滤器是 on 或 off。有效值为
True和False。如果filter参数设置为False- 这是默认值 -,提供的身份验证凭据必须是管理用户的。如果filter参数设置为True,则可使用任何用户,管理器将根据其权限过滤用户可用的操作。 - debug
- 指定是否为这个连接启用 debug 模式。有效值为
True和False。这个参数是可选的。
API 类的实例,使用 test () 方法检查连接是否正常工作,并使用 disconnect () 方法断开连接。
API 类支持的方法的完整列表,请参阅 ovirtsdk.api 模块的 pydoc 输出。
pydoc ovirtsdk.api
$ pydoc ovirtsdk.api
3.2. 资源和集合 复制链接链接已复制到粘贴板!
- 集合
- 集合是一组相同类型的资源。API 提供顶层集合和子集合。顶级集合的示例是包含环境中所有虚拟化主机的
主机集合。子集合的示例是host.nics集合,其中包含附加到主机资源的所有网络接口卡的资源。与集合交互的接口提供了添加资源(添加)、获取资源(获取)和列出资源(列表)的方法。 - Resources
- RESTful API 中的资源是具有固定接口的对象,还包含与所代表特定类型的资源类型相关的一组属性。用于与资源交互的接口提供了更新(
更新)和删除(删除 )资源的方法。另外,一些资源支持特定于资源类型的操作。示例是Host资源的批准方法。
3.3. 从集合检索资源 复制链接链接已复制到粘贴板!
get 和 list 方法从集合检索资源。
- get
- 从集合检索单个资源。要检索的项目取决于作为参数提供的名称。
get方法采用这些参数:name- 从集合检索的资源名称。id- 从集合检索的资源的全局唯一标识符(GUID)。
- list
- 从集合检索任意数量的资源。要检索的项目会根据提供的条件来决定。
list方法使用这些参数:**kwargs- 允许基于关键字的过滤的额外参数的字典。query- 使用与使用 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. 从集合检索资源列表 复制链接链接已复制到粘贴板!
list 方法从集合检索资源列表。
例 3.3. 检索集合中所有资源的列表
数据中心 集合中所有资源的列表。list 方法的查询参数允许使用基于引擎的查询。这样,S SDK 支持以与管理和用户门户中执行的格式相同的格式使用查询。查询参数 也是在迭代集合期间提供分页参数的机制。
datacenters 集合中包含的资源列表最终存储在本地定义的 dc_list 列表中。
的列表 方法仅限于返回由 SearchResultsLimit Red Hat Virtualization Manager 配置键允许的数量。
list 方法的 max 参数设置为您要检索的最大记录数。
例 3.4. 在集合匹配基于关键字的过滤器中检索资源列表
nfs 类型的所有资源的列表。在本例中,提供了 查询参数 和 **kwargs 参数。查询 用于分页的方式,其方式与上例中所示相同。**kwargs 参数用于根据数据中心的存储类型进行过滤。
datacenters 集合中包含的资源列表,存储类型为 nfs,最终存储在本地定义的 dc_list 列表变量中。
3.6. 在集合中添加资源 复制链接链接已复制到粘贴板!
add 方法会添加资源。要添加的资源会根据提供的参数创建。参数使用 ovirtsdk.xml.params 模块中的对象实例提供给 add 方法。需要使用模块的特定类因所创建的资源类型而异。
例 3.5. 在集合中添加资源
- 为正在创建的资源类型创建 parameter 对象的实例。
- 确定将添加资源的集合。
- 调用集合的
add方法,将参数对象作为参数传递。
例 3.6. 复杂的参数
ovirtsdk.xml.params.Version 对象。然后,在创建 ovirtsdk.xml.params.DataCenter 对象实例时用作参数,其中包含要创建的数据中心的参数。然后,使用 datacenters 集合的 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. 在集合中更新资源 复制链接链接已复制到粘贴板!
update 方法来保存更改。参数修改通过使用检索到的资源的 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 Exception
第 4 章 Python 参考文档 复制链接链接已复制到粘贴板!
4.1. Python 参考文档 复制链接链接已复制到粘贴板!
- ovirtsdk.api
- ovirtsdk.infrastructure.brokers
- ovirtsdk.infrastructure.errors
pydoc [MODULE]
$ pydoc [MODULE]