keystone.resource.backends.base 模块

class keystone.resource.backends.base.ResourceDriverBase[source]

基类: object

check_project_depth(max_depth)[source]

检查后端中项目深度是否超过限制。

参数:

max_depth (integer) – 项目深度不应超过的限制深度。

返回值:

超过深度的项目 ID,如果没有超过则返回 None。

abstract create_project(project_id, project)[source]

创建一个新项目。

参数:
  • project_id – 可以忽略此参数。

  • project (dict) – 新项目

项目模式

type: object
properties:
    id:
        type: string
    name:
        type: string
    domain_id:
        type: [string, null]
    description:
        type: string
    enabled:
        type: boolean
    parent_id:
        type: string
    is_domain:
        type: boolean
required: [id, name, domain_id]
additionalProperties: true

如果项目不符合模式,则行为未定义。

驱动程序可以施加要求,例如字段的最大长度。如果不满足这些要求,则行为未定义。

引发:

keystone.exception.Conflict – 如果项目 ID 已经存在,或者名称在 domain_id 中已经存在。

abstract delete_project(project_id)[source]

删除现有项目。

引发:

keystone.exception.ProjectNotFound – 如果 project_id 不存在

abstract delete_projects_from_ids(project_ids)[source]

删除给定的项目列表。

删除项目列表。确保在成功调用后列表中没有项目存在。如果提供空列表,则会被静默忽略。此外,如果列表中的项目 ID 在后端中未找到,则不会引发异常,但会记录一条消息。

abstract get_project(project_id)[source]

按 ID 获取项目。

返回值:

project_ref

引发:

keystone.exception.ProjectNotFound – 如果 project_id 不存在

abstract get_project_by_name(project_name, domain_id)[source]

按名称获取项目。

返回值:

project_ref

引发:

keystone.exception.ProjectNotFound – 如果在域中不存在具有 project_name 的项目

abstract is_leaf_project(project_id)[source]

检查项目是否是层次结构中的叶子节点。

参数:

project_id – 驱动程序将检查此项目是否是层次结构中的叶子节点。

引发:

keystone.exception.ProjectNotFound – 如果 project_id 不存在

abstract list_project_ids_from_domain_ids(domain_ids)[source]

列出给定域 ID 列表的项目 ID。

参数:

domain_ids – 域 ID 列表

返回值:

由指定域 ID 拥有的项目 ID 列表。

此方法由分配管理器内部用于根据域 ID 列表批量读取一组项目 ID。

abstract list_project_parents(project_id)[source]

列出项目的所有父项,通过其 ID。

参数:

project_id – 驱动程序将列出此项目的父项。

返回值:

project_refs 列表或空列表。

引发:

keystone.exception.ProjectNotFound – 如果 project_id 不存在

abstract list_projects(hints)[source]

列出系统中的项目。

参数:

hints – 驱动程序如果可能应该实现的筛选提示。

返回值:

project_refs 列表或空列表。

abstract list_projects_acting_as_domain(hints)[source]

列出所有充当域的项目。

参数:

hints – 驱动程序如果可能应该实现的筛选提示。

返回值:

project_refs 列表或空列表。

abstract list_projects_from_ids(project_ids)[source]

列出提供的 ID 列表中的项目。

参数:

project_ids – ID 列表

返回值:

project_refs 列表。

此方法由分配管理器内部用于根据其 ID 批量读取一组项目。

abstract list_projects_in_domain(domain_id)[source]

列出域中的项目。

参数:

domain_id – 驱动程序必须只返回该域中的项目。

返回值:

project_refs 列表或空列表。

abstract list_projects_in_subtree(project_id)[source]

列出给定项目子树中的所有项目。

参数:

project_id – 驱动程序将获取此项目下的子树。

返回值:

project_refs 列表或空列表

引发:

keystone.exception.ProjectNotFound – 如果 project_id 不存在

abstract update_project(project_id, project)[source]

更新现有项目。

引发:
keystone.resource.backends.base.get_project_from_domain(domain_ref)[source]

从提供的域引用创建项目引用。