neutron_lib.db.model_query 模块

注意:此模块是一个临时补丁,直到网络项目迁移到

版本化的对象,此时不再需要此模块。

neutron_lib.db.model_query.apply_filters(query, model, filters, context=None)

将过滤器应用于查询。

参数:
  • query – 应用过滤器的查询。

  • model – 查询的模型。

  • filters – 要应用的过滤器。

  • context – 用于 DB 会话的上下文。

返回值:

应用了过滤器的查询。

neutron_lib.db.model_query.get_by_id(context, model, object_id, lazy_fields=None)

使用给定的上下文查询特定对象。

参数:
  • context – 在查询中使用的上下文。

  • model – 要查询的模型。

  • object_id – 要查询的对象的 ID。

  • lazy_fields – 用于延迟加载的字段列表

返回值:

具有给定 object_id 的模型的对象。

neutron_lib.db.model_query.get_collection(context, model, dict_func, filters=None, fields=None, sorts=None, limit=None, marker_obj=None, page_reverse=False, lazy_fields=None)

获取特定模型的集合。

参数:
  • context – 用于 DB 会话的上下文。

  • model – 集合的模型。

  • dict_func – 用于构建集合字典的函数。

  • filters – 要应用的过滤器。

  • fields – 要收集的字段。

  • sorts – 要使用的排序键。

  • limit – 如果适用,查询的限制。

  • marker_obj – 如果适用,标记对象。

  • page_reverse – 如果应使用反向分页。

  • lazy_fields – 用于延迟加载的字段列表

返回值:

一个字典列表,其中每个字典是集合中的一个对象。

neutron_lib.db.model_query.get_collection_count(context, model, filters=None, query_field=None)

获取特定集合的计数。

参数:
  • context – 用于 DB 会话的上下文。

  • model – 查询的模型。

  • filters – 要应用的过滤器。

  • query_field – “模型”中的列,以字符串格式表示;查询将仅返回此参数,而不是完整的模型列。

返回值:

应用过滤器后,所述模型的对象数量。

neutron_lib.db.model_query.get_collection_query(context, model, filters=None, sorts=None, limit=None, marker_obj=None, page_reverse=False, field=None, lazy_fields=None)

获取集合查询。

参数:
  • context – 用于 DB 会话的上下文。

  • model – 要使用的模型。

  • filters – 要应用于查询的过滤器。

  • sorts – 要使用的排序键。

  • limit – 与查询关联的限制。

  • marker_obj – 如果适用,标记对象。

  • page_reverse – 如果应使用反向分页。

  • field – “模型”中的列,以字符串格式表示;查询将仅返回此参数,而不是完整的模型列。

  • lazy_fields – 用于延迟加载的字段列表

返回值:

所述模型的分页查询。

neutron_lib.db.model_query.get_hooks(model)

检索模型的模型查询钩子。

参数:

model – 要查找查询钩子的 DB 模型。

返回值:

钩子列表

neutron_lib.db.model_query.get_rbac_actions(model)

检索并在模型中请求的所有 RBAC 操作

参数:

model – 要查找查询钩子的 DB 模型。

返回值:

模型中或默认 RBAC 操作(‘access_as_shared’、‘access_as_readonly’)中定义的 RBAC 操作集

neutron_lib.db.model_query.get_values(context, model, field, filters=None)
neutron_lib.db.model_query.query_with_hooks(context, model, field=None, lazy_fields=None)

使用所述上下文和模型查询钩子。

参数:
  • context – 用于 DB 会话的上下文。

  • model – 要查询的模型。

  • field – 该列。

  • lazy_fields – 用于延迟加载的字段列表

返回值:

应用了钩子的查询。

neutron_lib.db.model_query.register_hook(model, name, query_hook, filter_hook, result_filters=None, rbac_actions=None)

注册要在执行查询时调用的钩子。

将钩子组件添加到 _model_query_hooks 字典中。模型是此字典的键,而值是另一个字典,该字典将钩子名称映射到执行钩子的可调用对象,或者在 rbac_actions 的情况下,是用于过滤模型的 RBAC 操作集。

参数:
  • model – 钩子应用的 DB 模型。

  • name – 钩子的名称。

  • query_hook – 要调用以增强查询的方法。

  • filter_hook – 要调用以增强查询过滤器的的方法。

  • result_filters – 要调用以过滤查询结果的方法。

  • rbac_actions – 一个可迭代的 RBAC 操作或单个操作(字符串)。

返回值:

None。