keystone.common.driver_hints 模块¶
- class keystone.common.driver_hints.Hints[source]¶
基类:
object封装用于列出实体的驱动程序提示。
提示是影响从 list_<entities> 操作返回的实体的修饰符。它们通常传递给驱动程序,以指示正在请求哪些过滤、分页或列表限制操作。
驱动程序可以选择执行某些或全部列表提示,但它满足的任何过滤器都必须通过从列表中删除过滤器来标记。
一个 Hint 对象包含过滤器,这是一个可以公开访问的字典列表。它还包含一个名为 limit 的字典,它将指示我们希望将我们的列表限制在多少数据上。
如果发现过滤器永远无法匹配,则可以设置 cannot_match 以指示将没有匹配项,并且可以短路后端工作。
每个过滤器项由以下内容组成
name:正在匹配的属性的名称value:正在与之匹配的值comparator:操作,可以是equals、contains、startswith或endswith
case_sensitive:任何比较是否应考虑大小写
- add_filter(name, value, comparator: str = 'equals', case_sensitive: bool = False)[source]¶
将过滤器添加到公开可访问的过滤器列表中。
- get_limit_or_max() int[source]¶
获取页面限制或最大页面大小
返回用户(或 API 流程)请求的页面限制(大小),或者如果未提供,则返回最大页面大小。此方法由 SQL 驱动程序调用。
- 返回 int:
页面大小
- get_limit_with_default(default_limit: int | None = None) int[source]¶
返回查询的页面限制。
- limit 已在查询参数中设置
min(limit, MAX_LIMIT)
- limit 未设置且 default_limit 已设置
min(default_limit, MAX_LIMIT)
- limit 为 null,default_limit 为 null,CONF.list_limit 已设置
min(CONF.list_limit, MAX_LIMIT)
- limit 为 null,default_limit 为 null,CONF.list_limit 为 null
CONF.max_db_limit