oslo_vmware 包¶
子包¶
- oslo_vmware.common 包
- oslo_vmware.hacking 包
- oslo_vmware.objects 包
子模块¶
oslo_vmware.api 模块¶
用于 VMware ESX/VC 服务器的会话和 API 调用管理。
此模块包含用于调用 VIM API 的类。它支持在出现连接问题或服务器 API 调用过载的情况下自动重新建立会话和重试 API 调用。
- class oslo_vmware.api.RetryDecorator(max_retry_count=-1, inc_sleep_time=10, max_sleep_time=60, exceptions=())¶
基类:
object用于在建议的异常时重试函数的装饰器。
装饰的函数会重试给定的次数,并且重试之间的睡眠时间会递增,直到达到最大睡眠时间。如果最大重试次数设置为 -1,则会无限次调用装饰的函数,直到抛出异常,并且捕获的异常不在建议的异常列表中。
- class oslo_vmware.api.VMwareAPISession(host, server_username, server_password, api_retry_count, task_poll_interval, scheme='https', create_session=True, wsdl_loc=None, pbm_wsdl_loc=None, port=443, cacert=None, insecure=True, pool_size=10, connection_timeout=None, op_id_prefix='oslo.vmware')¶
基类:
object与服务器建立会话并处理所有对其进行的调用。
- 示例
- api_session = VMwareAPISession(‘10.1.2.3’, ‘administrator’,
‘password’, 10, 0.1, create_session=False, port=443)
- result = api_session.invoke_api(vim_util, ‘get_objects’,
api_session.vim, ‘HostSystem’, 100)
- invoke_api(module, method, *args, **kwargs)¶
用于调用 API 的包装方法。
在因会话过载或连接问题而引发异常的情况下,API 调用会被重试。
- 参数:
module – 对应 VIM API 调用的模块
method – 模块中对应 VIM API 调用的方法
args – 方法的参数
kwargs – 方法的关键字参数
- 返回值:
API 调用返回的响应
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- is_current_session_active()¶
检查当前会话是否活动。
- 返回值:
如果会话活动则为 True;否则为 False
- logout()¶
注销并终止当前会话。
- property pbm¶
- pbm_wsdl_loc_set(pbm_wsdl_loc)¶
- property vim¶
- wait_for_lease_ready(lease)¶
等待给定租约准备就绪。
此方法在租约准备就绪时返回。如果发生任何错误,将引发适当的异常。
- 参数:
lease – 要检查的租约
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- wait_for_task(task)¶
等待给定任务完成并返回结果。
将轮询任务,直到其完成。如果任务成功完成,该方法将返回任务信息。如果发生任何错误,将引发适当的异常。
- 参数:
task – 任务的托管对象引用
- 返回值:
任务成功完成后返回的任务信息
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
oslo_vmware.constants 模块¶
VMware 生态系统中的共享常量。
oslo_vmware.dvs_util 模块¶
- oslo_vmware.dvs_util.add_port_group(session, dvs_moref, name, vlan_id=None, trunk_mode=False)¶
向 dvs_moref 添加新的端口组
- 参数:
session – vCenter soap 会话
dvs_moref – 托管的 DVS 对象引用
name – 端口组的名称
vlan_id – 端口的 vlan_id
trunk_mode – 指示端口是否处于 trunk 模式或使用上面的特定标记
- 返回值:
新的端口组 moref
- oslo_vmware.dvs_util.delete_port_group(session, portgroup_moref)¶
删除特定的端口组
- 参数:
session – vCenter soap 会话
portgroup_moref – 托管的端口组对象引用
- oslo_vmware.dvs_util.get_dvs_moref(value)¶
获取托管的 DVS 对象引用。
- 参数:
value – DVS 托管对象的值
- 返回值:
具有给定值和类型‘VmwareDistributedVirtualSwitch’的托管对象引用
- oslo_vmware.dvs_util.get_port_group_spec(session, name, vlan_id, trunk_mode=False)¶
获取分布式端口组的端口组规范
- 参数:
session – vCenter soap 会话
name – 端口组的名称
vlan_id – 端口的 vlan_id
trunk_mode – 指示端口是否处于 trunk 模式或使用上面的特定标记
- 返回值:
端口组的配置。
- oslo_vmware.dvs_util.get_portgroups(session, dvs_moref)¶
获取 dvs_moref 上所有配置的端口组
- 参数:
session – vCenter soap 会话
dvs_moref – 托管的 DVS 对象引用
- 返回值:
元组列表,格式如下:(端口组名称, 端口组 moref)
- oslo_vmware.dvs_util.get_trunk_vlan_spec(session, start=0, end=4094)¶
获取端口组 trunk vlan 规范。
- 参数:
session – vCenter soap 会话
start – 起始 ID
end – 结束 ID
- 返回值:
端口使用 trunk 模式时的配置。这允许访客机管理 vlan ID。
- oslo_vmware.dvs_util.get_vlan_spec(session, vlan_id)¶
获取端口组 vlan 规范。
- 参数:
session – vCenter soap 会话
vlan_id – 端口的 vlan_id
- 返回值:
当端口使用单个 vlan_id 时的配置
oslo_vmware.exceptions 模块¶
异常定义。
- exception oslo_vmware.exceptions.AlreadyExistsException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 409¶
- msg_fmt = 'Resource already exists.'¶
- exception oslo_vmware.exceptions.CannotDeleteFileException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 403¶
- msg_fmt = 'Cannot delete file.'¶
- exception oslo_vmware.exceptions.DuplicateName(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- msg_fmt = 'Duplicate name.'¶
- exception oslo_vmware.exceptions.FileAlreadyExistsException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 409¶
- msg_fmt = 'File already exists.'¶
- exception oslo_vmware.exceptions.FileFaultException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 409¶
- msg_fmt = 'File fault.'¶
- exception oslo_vmware.exceptions.FileLockedException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 403¶
- msg_fmt = 'File locked.'¶
- exception oslo_vmware.exceptions.FileNotFoundException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 404¶
- msg_fmt = 'File not found.'¶
- exception oslo_vmware.exceptions.ImageTransferException(message, cause=None)¶
Bases:
VMwareDriverException在图像传输期间发生错误时抛出。
- exception oslo_vmware.exceptions.InvalidPowerStateException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 409¶
- msg_fmt = 'Invalid power state.'¶
- exception oslo_vmware.exceptions.InvalidPropertyException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 400¶
- msg_fmt = 'Invalid property.'¶
- exception oslo_vmware.exceptions.ManagedObjectNotFoundException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 404¶
- msg_fmt = 'Managed object not found.'¶
- exception oslo_vmware.exceptions.MissingParameter(message=None, details=None, **kwargs)¶
Bases:
VMwareDriverException- msg_fmt = 'Missing parameter : %(param)s'¶
- exception oslo_vmware.exceptions.NoDiskSpaceException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- msg_fmt = 'Insufficient disk space.'¶
- exception oslo_vmware.exceptions.NoPermissionException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 403¶
- msg_fmt = 'No Permission.'¶
- exception oslo_vmware.exceptions.NotAuthenticatedException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- code = 403¶
- msg_fmt = 'Not Authenticated.'¶
- exception oslo_vmware.exceptions.TaskInProgress(message=None, cause=None, details=None, **kwargs)¶
Bases:
VimException- msg_fmt = 'Entity has another operation in process.'¶
Bases:
VimException
- exception oslo_vmware.exceptions.UseLinkedCloneConfigurationFault(message=None, details=None, **kwargs)¶
Bases:
VMwareDriverConfigurationException- msg_fmt = 'No default value for use_linked_clone found.'¶
- exception oslo_vmware.exceptions.VMwareDriverConfigurationException(message=None, details=None, **kwargs)¶
Bases:
VMwareDriverException所有配置异常的基类。
- msg_fmt = 'VMware Driver configuration fault.'¶
- exception oslo_vmware.exceptions.VMwareDriverException(message=None, details=None, **kwargs)¶
基础:
Exceptionoslo.vmware 的基类异常
要正确使用此类,请继承它并定义一个 ‘msg_fmt’ 属性。该 msg_fmt 将使用传递给构造函数的关键字参数进行打印。
- property description¶
- property msg¶
- msg_fmt = 'An unknown exception occurred.'¶
- exception oslo_vmware.exceptions.VimAttributeException(message, cause=None)¶
Bases:
VMwareDriverException当找不到特定属性时抛出。
- exception oslo_vmware.exceptions.VimConnectionException(message, cause=None)¶
Bases:
VMwareDriverException当出现连接问题时抛出。
- exception oslo_vmware.exceptions.VimException(message=None, cause=None, details=None, **kwargs)¶
Bases:
VMwareDriverException所有 VIM 相关异常的基类。
- exception oslo_vmware.exceptions.VimFaultException(fault_list, message, cause=None, details=None)¶
Bases:
VimException当存在未识别的 VIM 故障时抛出的异常。
- property description¶
- exception oslo_vmware.exceptions.VimSessionOverLoadException(message, cause=None)¶
Bases:
VMwareDriverException当 VMware 服务器出现 API 调用过载时抛出。
- oslo_vmware.exceptions.get_fault_class(name)¶
获取 VimException 的命名子类。
- oslo_vmware.exceptions.register_fault_class(name, exception)¶
- oslo_vmware.exceptions.translate_fault(localized_method_fault, excep_msg=None)¶
生成正确的 VimException 子类对象,
该异常基于 vmodl.LocalizedMethodFault。
- 参数:
excep_msg – 要设置给异常的消息。默认为故障的 localizedMessage。
oslo_vmware.image_transfer 模块¶
在 ESX/VC 和镜像服务之间进行镜像传输的函数和类。
- oslo_vmware.image_transfer.copy_stream_optimized_disk(context, timeout_secs, write_handle, **kwargs)¶
将虚拟磁盘从 VMware 服务器复制到给定的写入句柄。
- 参数:
context – 上下文
timeout_secs – 等待复制完成的秒数
write_handle – 复制目标
kwargs – 配置源 VMDK 读取句柄的关键字参数
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException, ImageTransferException, ValueError
- oslo_vmware.image_transfer.download_file(read_handle, host, port, dc_name, ds_name, cookies, upload_file_path, file_size, cacerts, timeout_secs)¶
将文件下载到 VMware 服务器。
- 参数:
read_handle – 文件读取句柄
host – VMware 服务器主机名或 IP 地址
port – VMware 服务器端口号
dc_name – 包含目标数据存储的 datacentre 名称
ds_name – 目标数据存储的名称
cookies – 在与 VMware 服务器建立 HTTP 连接时用于构建 cookie 头的 cookie
upload_file_path – 目标数据存储文件路径
file_size – 源文件大小
cacerts – 用于 SSL 验证的 CA 捆绑文件
timeout_secs – 等待下载完成的秒数
- oslo_vmware.image_transfer.download_flat_image(context, timeout_secs, image_service, image_id, **kwargs)¶
将平面镜像从镜像服务下载到 VMware 服务器。
- 参数:
context – 镜像服务写入上下文
timeout_secs – 等待下载完成的秒数
image_service – 镜像服务句柄
image_id – 要下载的镜像的 ID
kwargs – 配置目标文件写入句柄的关键字参数
- 引发:
VimConnectionException, ImageTransferException, ValueError
- oslo_vmware.image_transfer.download_image(image, image_meta, session, datastore, rel_path, bypass=True, timeout_secs=7200)¶
将镜像传输到数据存储。
- 参数:
image – 类文件迭代器
image_meta – 镜像元数据
session – VMwareAPISession 对象
datastore – Datastore 对象
rel_path – 文件将在数据存储中存储的路径
bypass – 如果设置为 True,则绕过 vCenter 下载镜像
timeout_secs – 等待传输完成的秒数
- oslo_vmware.image_transfer.download_stream_optimized_data(context, timeout_secs, read_handle, **kwargs)¶
将流优化数据下载到 VMware 服务器。
- 参数:
context – 镜像服务写入上下文
timeout_secs – 等待下载完成的秒数
read_handle – 用于读取镜像数据的句柄
kwargs – 配置目标 VMDK 写入句柄的关键字参数
- 返回值:
为导入 VMware 服务器而创建的 VM 的托管对象引用
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException, ImageTransferException, ValueError
- oslo_vmware.image_transfer.download_stream_optimized_image(context, timeout_secs, image_service, image_id, **kwargs)¶
将流优化镜像从镜像服务下载到 VMware 服务器。
- 参数:
context – 镜像服务写入上下文
timeout_secs – 等待下载完成的秒数
image_service – 镜像服务句柄
image_id – 要下载的镜像的 ID
kwargs – 配置目标 VMDK 写入句柄的关键字参数
- 返回值:
为导入 VMware 服务器而创建的 VM 的托管对象引用
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException, ImageTransferException, ValueError
- oslo_vmware.image_transfer.upload_image(context, timeout_secs, image_service, image_id, owner_id, **kwargs)¶
将 VM 的磁盘文件上传到镜像服务。
- 参数:
context – 镜像服务写入上下文
timeout_secs – 等待上传完成的秒数
image_service – 镜像服务句柄
image_id – 上传目标镜像 ID
kwargs – 配置源 VMDK 读取句柄的关键字参数
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException, ImageTransferException, ValueError
oslo_vmware.image_util 模块¶
- oslo_vmware.image_util.get_vmdk_name_from_ovf(ovf_handle)¶
从给定的 ovf 描述符中获取 vmdk 名称。
oslo_vmware.pbm 模块¶
VMware PBM 服务客户端和 PBM 相关实用方法
PBM 用于 VMware 数据存储中的基于策略的放置。更多详细信息请参阅 http://goo.gl/GR2o6U。
- class oslo_vmware.pbm.Pbm(protocol='https', host='localhost', port=443, wsdl_url=None, cacert=None, insecure=True, pool_maxsize=10, connection_timeout=None, op_id_prefix='oslo.vmware')¶
Bases:
Service提供对存储策略 API 访问的服务类。
- retrieve_service_content()¶
- set_soap_cookie(cookie)¶
在 SOAP 头中设置指定的 vCenter 会话 cookie
- 参数:
cookie – 要设置的 cookie
- oslo_vmware.pbm.convert_datastores_to_hubs(pbm_client_factory, datastores)¶
将给定的数据存储 morefs 转换为 PbmPlacementHub morefs。
- 参数:
pbm_client_factory – 用于创建 PBM API 输入规范的工厂
datastores – 数据存储 morefs 列表
- 返回值:
PbmPlacementHub morefs 列表
- oslo_vmware.pbm.filter_datastores_by_hubs(hubs, datastores)¶
获取与给定 hub 列表对应的过滤后的数据存储子集。
- 参数:
hubs – PbmPlacementHub morefs 列表
datastores – 所有候选数据存储
- 返回值:
对应于给定 hub 列表的数据存储子集
- oslo_vmware.pbm.filter_hubs_by_profile(session, hubs, profile_id)¶
过滤并返回与给定配置文件匹配的 hub。
- 参数:
hubs – PbmPlacementHub morefs
profile_id – 配置文件 ID
- 返回值:
与给定配置文件匹配的 hub 子集
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.pbm.get_all_profiles(session)¶
获取 VC 服务器中定义的所有配置文件。
- 返回值:
PbmProfile 数据对象
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.pbm.get_pbm_wsdl_location(vc_version)¶
返回与 VC 版本对应的 PBM WSDL 文件位置。
- 参数:
vc_version – 点分隔的版本字符串。例如,“1.2”。
- 返回值:
pbm wsdl 文件位置。
- oslo_vmware.pbm.get_profile_id_by_name(session, profile_name)¶
获取与给定配置文件名称对应的配置文件 UUID。
- 参数:
profile_name – 需要检索 UUID 的配置文件名称
- 返回值:
配置文件 UUID 字符串或 None(如果未找到配置文件)
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.pbm.get_profiles(session, vm)¶
查询与给定 VM 关联的存储配置文件。
- 参数:
session – VMwareAPISession 实例
vm – vm 引用
- 返回值:
配置文件 ID
- oslo_vmware.pbm.get_profiles_by_ids(session, profile_ids)¶
按 ID 获取存储配置文件。
- 参数:
session – VMwareAPISession 实例
profile_ids – 配置文件 ID
- 返回值:
配置文件对象
oslo_vmware.rw_handles 模块¶
定义用于镜像传输的读写句柄的类。
此模块定义了各种用于在 VMware 服务器中读取和写入文件(包括 VMDK 文件)的类。它还包含一个用于从 glance 服务器读取镜像的类。
- class oslo_vmware.rw_handles.FileHandle(file_handle)¶
基类:
object通过 HTTP 访问 VMware 服务器文件(包括 VMDK)的基类。
此类包装了后备文件句柄,并为各种子类提供了实用方法。
- close()¶
关闭文件句柄。
- fileno()¶
默认情况下,返回整数文件描述符,不支持此操作并引发 IOError
- flush()¶
刷新内部缓冲区
- get_size()¶
获取要读取文件的大小。
- 引发:
NotImplementedError
- read(chunk_size)¶
读取一块数据。
- 参数:
chunk_size – 读取块大小
- 引发:
NotImplementedError
- seek(offset)¶
将文件当前位置设置为偏移量
- 参数:
offset – 偏移量
- tell()¶
获取文件句柄的位置
- 返回值:
position
- write(data)¶
将数据写入文件。
- 参数:
data – 要写入的数据
- 引发:
NotImplementedError
- class oslo_vmware.rw_handles.FileReadHandle(host_or_url, port=None, data_center_name=None, datastore_name=None, cookies=None, file_path=None, scheme='https', cacerts=False, thumbprint=None)¶
Bases:
FileHandleVMware 服务器中的文件读取句柄。
- close()¶
关闭连接。
- get_size()¶
获取要读取文件的大小。
- 引发:
NotImplementedError
- read(length)¶
从文件中读取数据。 :param length: 要读取的数据量 :raises: VimConnectionException, VimException
- class oslo_vmware.rw_handles.FileWriteHandle(host_or_url, port=None, data_center_name=None, datastore_name=None, cookies=None, file_path=None, file_size=None, scheme='https', cacerts=False, thumbprint=None)¶
Bases:
FileHandleVMware 服务器中的文件写入句柄。
- close()¶
获取响应并关闭连接。
- write(data)¶
将数据写入文件。
- 参数:
data – 要写入的数据
- 引发:
VimConnectionException, VimException
- class oslo_vmware.rw_handles.ImageReadHandle(glance_read_iter)¶
基类:
objectGlance 镜像的读取句柄。
- close()¶
关闭读取句柄。
这是一个 NOP。
- get_next()¶
从镜像迭代器中获取下一个项。
- read(chunk_size)¶
从镜像数据迭代器中读取一项。
输入块大小被忽略,因为客户端 ImageBodyIterator 使用自己的块大小。
- class oslo_vmware.rw_handles.VmdkHandle(session, lease, url, file_handle)¶
Bases:
FileHandle基于 HttpNfcLease 的 VMDK 句柄。
- update_progress()¶
将进度更新到 lease。
此回调到 lease 对于在长时间运行的写入/读取操作中保持 lease 的有效性至关重要。
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- class oslo_vmware.rw_handles.VmdkReadHandle(session, host, port, vm_ref, vmdk_path, vmdk_size)¶
Bases:
VmdkHandle基于 HttpNfcLease 的 VMDK 读取句柄。
- close()¶
释放 lease 并关闭连接。
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- read(chunk_size=65536)¶
从 VMDK 文件中读取一块数据。
- 参数:
chunk_size – 读取块的大小
- 返回值:
数据
- 引发:
VimException
- tell()¶
获取文件句柄的位置
- 返回值:
position
- class oslo_vmware.rw_handles.VmdkWriteHandle(session, host, port, rp_ref, vm_folder_ref, import_spec, vmdk_size, http_method='PUT')¶
Bases:
VmdkHandle基于 HttpNfcLease 的 VMDK 写入句柄。
此类在指定的资源池中创建 vApp 并上传虚拟磁盘内容。
- close()¶
释放 lease 并关闭连接。
- 引发:
VimAttributeException, VimSessionOverLoadException, VimConnectionException
- get_imported_vm()¶
“获取用于导入的 VM 的托管对象引用。
- 引发:
VimException
- tell()¶
获取文件句柄的位置
- 返回值:
position
- write(data)¶
将数据写入文件。
- 参数:
data – 要写入的数据
- 引发:
VimConnectionException, VimException
oslo_vmware.service 模块¶
提供 vSphere 服务访问的通用类。
- class oslo_vmware.service.CompatibilitySudsClient(*args, **kwargs)¶
Bases:
Client带有附加 cookiejar 属性的 suds 客户端
cookiejar 属性允许读取/设置底层传输使用的 cookiejar。
- property cookiejar¶
- class oslo_vmware.service.LocalFileAdapter(pool_maxsize=10)¶
继承自
HTTPAdapter本地文件的传输适配器。
参见 http://stackoverflow.com/a/22989322
- send(request, stream=False, timeout=None, verify=True, cert=None, proxies=None)¶
发送本地文件请求。
- class oslo_vmware.service.MemoryCache¶
Bases:
ObjectCache- get(key)¶
检索键的值或 None。
- put(key, value, time=3600)¶
设置键的值。
- class oslo_vmware.service.RequestsTransport(cacert=None, insecure=True, pool_maxsize=10, connection_timeout=None)¶
Bases:
Transport- open(request)¶
打开指定请求中的 URL。
@param request: 传输请求。 @type request: L{Request} @return: 输入流。 @rtype: stream @raise TransportError: 在所有传输错误时。
- send(request)¶
- 发送 SOAP 消息。实现应处理
代理
I{HTTP} 头
Cookie
发送消息
将异常代理为 L{TransportError}
@param request: 传输请求。 @type request: L{Request} @return: 响应 @rtype: L{Reply} @raise TransportError: 在所有传输错误时。
- class oslo_vmware.service.Response(stream, status=200, headers=None)¶
继承自
BytesIO带有输入流作为源的响应。
- get_all(name, default)¶
- getheaders(name)¶
- info()¶
- property msg¶
- read(chunk_size, **kwargs)¶
最多读取 size 字节,返回为 bytes 对象。
如果 size 参数为负,则读取直到 EOF。在 EOF 处返回一个空的 bytes 对象。
- release_conn()¶
- class oslo_vmware.service.Service(wsdl_url=None, soap_url=None, cacert=None, insecure=True, pool_maxsize=10, connection_timeout=None, op_id_prefix='oslo.vmware')¶
基类:
object包含调用 vSphere 服务通用功能的基类
- static build_base_url(protocol, host, port)¶
- get_http_cookie()¶
返回 vCenter 会话 cookie。
- property service_content¶
- class oslo_vmware.service.ServiceMessagePlugin¶
Bases:
MessagePlugin处理调用 VI SDK 时的一些特殊情况的 Suds 插件。
- EMPTY_ELEMENTS = ['VirtualMachineEmptyProfileSpec']¶
- add_attribute_for_value(node)¶
处理 AnyType 的辅助函数。
Suds 不能正确处理 AnyType。但当使用 AnyType 时,VI SDK 要求设置 type 属性。
- 参数:
node – XML 值节点
- marshalled(context)¶
在发送信封文档之前修改它。
此方法为插件提供了在发送到服务器之前修剪空节点和修复节点的机会。
- 参数:
context – 发送上下文
- prune(el)¶
oslo_vmware.version 模块¶
oslo_vmware.vim 模块¶
oslo_vmware.vim_util 模块¶
VMware API 工具模块。
- class oslo_vmware.vim_util.WithRetrieval(vim, retrieve_result)¶
基类:
object用于检索结果的上下文。
此上下文提供一个迭代器来检索结果并在 __exit__ 时取消(在需要时)检索操作。
示例
- with WithRetrieval(vim, retrieve_result) as objects
- for obj in objects
# 使用 obj
- oslo_vmware.vim_util.build_object_spec(client_factory, root_folder, traversal_specs)¶
构建对象规范。
- 参数:
client_factory – 用于获取 API 输入规范的工厂
root_folder – 根文件夹引用;遍历的起点
traversal_specs – 遍历所需的过滤规范
- 返回值:
对象规范
- oslo_vmware.vim_util.build_property_filter_spec(client_factory, property_specs, object_specs)¶
构建属性过滤器规范。
- 参数:
client_factory – 用于获取 API 输入规范的工厂
property_specs – 要为过滤对象收集的属性规范
object_specs – 用于识别要过滤的对象的对象规范
- 返回值:
属性过滤器规范
- oslo_vmware.vim_util.build_property_spec(client_factory, type_='VirtualMachine', properties_to_collect=None, all_properties=False)¶
构建属性规范。
- 参数:
client_factory – 用于获取 API 输入规范的工厂
type – 托管对象的类型
properties_to_collect – 在遍历过滤时要收集的托管对象属性的名称
all_properties – 是否需要收集托管对象的全部属性
- 返回值:
属性规范
- oslo_vmware.vim_util.build_recursive_traversal_spec(client_factory)¶
构建递归遍历规范,以遍历托管对象层次结构。
- 参数:
client_factory – 用于获取 API 输入规范的工厂
- 返回值:
递归遍历规范
- oslo_vmware.vim_util.build_selection_spec(client_factory, name)¶
构建选择规范。
- 参数:
client_factory – 用于获取 API 输入规范的工厂
name – 选择规范的名称
- 返回值:
选择规范
- oslo_vmware.vim_util.build_traversal_spec(client_factory, name, type_, path, skip, select_set)¶
构建遍历规范。
- 参数:
client_factory – 用于获取 API 输入规范的工厂
name – 遍历规范的名称
type – 托管对象的类型
path – 托管对象的属性路径
skip – 是否过滤 param path 标识的对象
select_set – 选择规范的集合,用于指定要过滤的附加对象
- 返回值:
遍历规范
- oslo_vmware.vim_util.cancel_retrieval(vim, retrieve_result)¶
如果需要,取消检索操作。
- 参数:
vim – Vim 对象
retrieve_result – RetrievePropertiesEx API 调用的结果
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.vim_util.continue_retrieval(vim, retrieve_result)¶
继续检索结果(如果可用)。
- 参数:
vim – Vim 对象
retrieve_result – RetrievePropertiesEx API 调用的结果
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.vim_util.find_extension(vim, key)¶
查找现有扩展。
- 参数:
vim – Vim 对象
key – 要搜索的键
- 返回值:
数据对象 Extension 或 None
- oslo_vmware.vim_util.get_http_service_request_spec(client_factory, method, uri)¶
构建 HTTP 服务请求规范。
- 参数:
client_factory – 用于获取 API 输入规范的工厂
method – HTTP 方法 (GET, POST, PUT)
uri – 目标 URL
- oslo_vmware.vim_util.get_inventory_path(vim, entity_ref, max_objects=100)¶
获取托管实体的清单路径。
- 参数:
vim – Vim 对象
entity_ref – 托管实体引用
max_objects – 每次调用最多应返回的对象数
- 返回值:
entity_ref 的清单路径
- oslo_vmware.vim_util.get_moref(value, type_)¶
获取托管对象引用。
- 参数:
value – 托管对象的值
type – 托管对象的类型
- 返回值:
具有给定值和类型的托管对象引用
- oslo_vmware.vim_util.get_moref_type(moref)¶
获取托管对象的类型
此函数接受托管对象引用(ManagedObjectReference)的字符串表示形式,例如 VirtualMachine:vm-123,但也能从 API 返回的实际对象中提取它。
- oslo_vmware.vim_util.get_moref_value(moref)¶
获取托管对象引用的值/ID
此函数接受托管对象引用的字符串表示形式,例如 VirtualMachine:vm-123 或仅 vm-123,但也能从 API 返回的实际对象中提取它。
- oslo_vmware.vim_util.get_obj_spec(client_factory, obj, select_set=None)¶
构建 Object Spec 对象。
- oslo_vmware.vim_util.get_object_properties(vim, moref, properties_to_collect, skip_op_id=False)¶
获取给定托管对象的属性。
- 参数:
vim – Vim 对象
moref – 托管对象引用
properties_to_collect – 要收集的托管对象属性的名称
skip_op_id – 是否跳过在请求中放入 opID
- 返回值:
给定托管对象的属性
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.vim_util.get_object_properties_dict(vim, moref, properties_to_collect)¶
将给定托管对象的属性作为字典获取。
- 参数:
vim – Vim 对象
moref – 托管对象引用
properties_to_collect – 要收集的托管对象属性的名称
- 返回值:
给定托管对象的属性字典
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.vim_util.get_object_property(vim, moref, property_name, skip_op_id=False)¶
获取给定托管对象的属性。
- 参数:
vim – Vim 对象
moref – 托管对象引用
property_name – 要检索的属性名称
skip_op_id – 是否跳过在请求中放入 opID
- 返回值:
给定托管对象的属性
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.vim_util.get_objects(vim, type_, max_objects, properties_to_collect=None, all_properties=False)¶
获取给定类型的全部托管对象引用。
继续或取消检索是调用者的责任。
- 参数:
vim – Vim 对象
type – 托管对象的类型
max_objects – 每次调用最多应返回的对象数
properties_to_collect – 要收集的托管对象属性的名称
all_properties – 是否需要收集托管对象的全部属性
- 返回值:
给定类型的全部托管对象引用
- 引发:
VimException, VimFaultException, VimAttributeException, VimSessionOverLoadException, VimConnectionException
- oslo_vmware.vim_util.get_prop_filter_spec(client_factory, obj_spec, prop_spec)¶
构建 Property Filter Spec 对象。
- oslo_vmware.vim_util.get_prop_spec(client_factory, spec_type, properties)¶
构建 Property Spec 对象。
- oslo_vmware.vim_util.get_properties_for_a_collection_of_objects(vim, type_, obj_list, properties, max_objects=None)¶
获取指定类型的对象集合的属性列表。
- oslo_vmware.vim_util.get_vc_version(session)¶
返回点分 vCenter 版本字符串。例如,“1.2”。
- 参数:
session – vCenter soap 会话
- 返回值:
vCenter 版本
- oslo_vmware.vim_util.propset_dict(propset)¶
将 propset 列表转换为字典
PropSet 是 VMware API 返回的 ObjectContent 对象上的可选属性。
您可以在此处阅读更多信息:| http://pubs.vmware.com/vsphere-51/index.jsp | #com.vmware.wssdk.apiref.doc/ | vmodl.query.PropertyCollector.ObjectContent.html
- 参数:
propset – 来自 ObjectContent 的属性“集”
- 返回值:
表示属性集的字典
- oslo_vmware.vim_util.register_extension(vim, key, type, label='OpenStack', summary='OpenStack services', version='1.0')¶
创建新扩展。
- 参数:
vim – Vim 对象
key – 扩展的键
type – 托管实体类型,由扩展定义。这与虚拟机或 vApp 配置中的 type 字段匹配
label – 显示标签
summary – 摘要描述
version – 扩展版本号,表示为点分字符串
- oslo_vmware.vim_util.serialize_object(obj)¶
将 Suds 对象转换为可序列化格式 - 字典。
- oslo_vmware.vim_util.storage_placement_spec(client_factory, dsc_ref, type, clone_spec=None, config_spec=None, relocate_spec=None, vm_ref=None, folder=None, clone_name=None, res_pool_ref=None, host_ref=None)¶