neutron_lib.db.utils 模块

neutron_lib.db.utils.filter_non_model_columns(data, model)

返回 data 中是模型列的属性。

参数:
  • data – 包含要过滤的数据的字典。

  • model – 用于过滤数据时使用其列名的模型。

返回值:

一个新的字典,其键是 model 中的列或模型的关联代理。

neutron_lib.db.utils.get_and_validate_sort_keys(sorts, model)

从 sorts 中提取排序键,并确保它们对模型有效。

参数:
  • sorts – (键, 方向) 元组的列表。

  • model – sqlalchemy ORM 模型类。

返回值:

提取的排序键列表。

引发:

BadRequest – 如果排序键属性引用了另一个资源,并且不能用于排序。

neutron_lib.db.utils.get_marker_obj(plugin, context, resource, limit, marker)

检索资源标记对象。

此函数用于调用 plugin._get_<resource>(context, marker),用于分页。

参数:
  • plugin – 处理请求的插件。

  • context – 请求上下文。

  • resource – 资源名称。

  • limit – 指示分页是否生效。

  • marker – 标记对象的 ID。

返回值:

如果给定了 limit 和 marker,则与插件关联的标记对象。

neutron_lib.db.utils.get_sort_dirs(sorts, page_reverse=False)

提取排序方向,可能反转。

参数:
  • sorts – (键, 方向) 元组的列表。

  • page_reverse – 如果排序方向反转,则为 True。

返回值:

可选反转的提取的排序方向列表。

neutron_lib.db.utils.is_retriable(exception)

确定所述异常是否可重试。

参数:

exception – 要检查的异常。

返回值:

如果‘exception’可重试,则为 True,否则为 False。

neutron_lib.db.utils.model_query(context, model)

为所述模型查询上下文。

参数:
  • context – 用于查询的上下文。

  • model – 要查询的模型。

返回值:

所述上下文对所述模型的查询。

neutron_lib.db.utils.model_query_scope_is_project(context, model)

确定模型是否应限定为项目。

参数:
  • context – 检查管理员和 advsvc 权限的上下文。

  • model – 要检查 project_id 的模型。

返回值:

如果上下文没有全局访问权限,并且不是 advsvc,并且模型具有 project_id,则为 True。否则为 False。

neutron_lib.db.utils.reraise_as_retryrequest(function)

在发生错误时,用 RetryRequest 包装所述函数。

参数:

function – 要包装/装饰的函数。

返回值:

所述函数包装在 try 块中,任何异常都将作为 RetryRequest 重新引发。

引发:

RetryRequest – 如果包装的函数引发可重试异常。

neutron_lib.db.utils.resource_fields(resource, fields)

仅返回 fields 中存在的资源项。

参数:
  • resource – 资源字典。

  • fields – 要从资源中选择的字段列表。

返回值:

一个新的字典,其中仅包含 resource 中的字段以及其属性项目信息。