watcherclient.common.apiclient.base 模块

构建 API 操作管理器和对象的基础工具。

class watcherclient.common.apiclient.base.BaseManager(client)[源代码]

基类: HookableMixin

提供通用操作的基本管理器类型。

管理器与特定类型的 API(服务器、风味、镜像等)交互,并为其提供 CRUD 操作。

resource_class = None
class watcherclient.common.apiclient.base.CrudManager(client)[源代码]

基类: BaseManager

用于操作实体的基本管理器类。

此类子类应定义 collection_keykey

  • collection_key: 通常是约定俗成的复数名词(例如 entities);用于在 URL(例如 /v3/entities)和包含成员资源列表的 JSON 对象(例如 {‘entities’: [{}, {}, {}]})中引用集合。

  • key: 通常是约定俗成的单数名词(例如 entity);用于引用集合的单个成员。

build_url(base_url=None, **kwargs)[源代码]

为给定的 kwargs 构建资源 URL。

给定一个示例集合,其中 collection_key = ‘entities’key = ‘entity’,可以生成以下 URL。

默认情况下,URL 将表示一个实体集合,例如:

/entities

如果 kwargs 包含 entity_id,则 URL 将表示一个特定的成员,例如:

/entities/{entity_id}
参数:

base_url – 如果提供,生成的 URL 将附加到它

collection_key = None
create(**kwargs)[源代码]
delete(**kwargs)[源代码]
find(base_url=None, **kwargs)[源代码]

查找与 **kwargs 匹配属性的单个项目。

参数:

base_url – 如果提供,生成的 URL 将附加到它

get(**kwargs)[源代码]
head(**kwargs)[源代码]
key = None
list(base_url=None, **kwargs)[源代码]

列出集合。

参数:

base_url – 如果提供,生成的 URL 将附加到它

put(base_url=None, **kwargs)[源代码]

更新一个元素。

参数:

base_url – 如果提供,生成的 URL 将附加到它

update(**kwargs)[源代码]
class watcherclient.common.apiclient.base.Extension(name, module)[源代码]

基类: HookableMixin

扩展描述符。

SUPPORTED_HOOKS = ('__pre_parse_args__', '__post_parse_args__')
manager_class = None
class watcherclient.common.apiclient.base.HookableMixin[源代码]

基类: object

Mixin,使类可以注册和运行钩子。

classmethod add_hook(hook_type, hook_func)[源代码]

添加指定类型的新的钩子。

参数:
  • cls – 注册钩子的类

  • hook_type – 钩子类型,例如 ‘__pre_parse_args__’

  • hook_func – 钩子函数

classmethod run_hooks(hook_type, *args, **kwargs)[源代码]

运行指定类型的全部钩子。

参数:
  • cls – 注册钩子的类

  • hook_type – 钩子类型,例如 ‘__pre_parse_args__’

  • args – 要传递给每个钩子函数的参数

  • kwargs – 要传递给每个钩子函数的关键字参数

class watcherclient.common.apiclient.base.ManagerWithFind(client)[源代码]

基类: BaseManager

具有附加 find()/findall() 方法的管理器。

find(**kwargs)[源代码]

查找与 **kwargs 匹配属性的单个项目。

效率不高:它加载整个列表,然后在 Python 端进行筛选。

findall(**kwargs)[源代码]

查找与 **kwargs 匹配属性的所有项目。

效率不高:它加载整个列表,然后在 Python 端进行筛选。

abstract list()[源代码]
class watcherclient.common.apiclient.base.Resource(manager, info, loaded=False)[源代码]

基类: object

OpenStack 资源(租户、用户等)的基本类。

这基本上只是一个属性包。

HUMAN_ID = False
NAME_ATTR = 'name'
get()[源代码]

支持延迟加载详细信息。

有些客户端,例如 watcherclient 具有懒加载细节的选项,这些细节可以使用此函数加载。

property human_id

人类可读的 ID,可用于 bash 完成。

is_loaded()[源代码]
set_loaded(val)[源代码]
to_dict()[源代码]
watcherclient.common.apiclient.base.getid(obj)[源代码]

如果参数是 Resource,则返回 id。

抽象了在处理关系时,允许将对象或对象的 ID(UUID)作为参数的常见模式。