keystone.server.flask.common 模块¶
- class keystone.server.flask.common.APIBase(blueprint_url_prefix='', api_url_prefix='', default_mediatype='application/json', decorators=None, errors=None)[源]¶
基类:
object- property api¶
- property blueprint¶
- classmethod instantiate_and_register_to_app(flask_app)[源]¶
构建API对象并注册到传入的flask_app。
这是一个简单的加载器,它对blueprint的加载方式做出了假设。任何超出默认值的情况都应通过正常实例化来显式处理,因为可以通过
__init__()传递更多值。
- abstract property resource_mapping: list[ResourceMap]¶
一个包含
ResourceMap可迭代对象的属性。每个
ResourceMap是一个具有以下元素的命名元组resource: 一个
flask_restful.Resource类或子类- url: 用于匹配资源的URL路由,标准Flask
路由规则适用。任何URL变量都将作为参数传递给资源方法。(字符串)
- alternate_urls: 一个用于匹配资源的URL路由的可迭代对象
资源,标准Flask路由规则适用。这些规则是主URL的附加规则(为保持API兼容性)。任何URL变量都将作为参数传递给资源方法。(可迭代对象)
- json_home_data:
JsonHomeData,填充了相关 信息,用于填充JSON Home文档,或者为None。
- json_home_data:
- kwargs: 一个字典,包含可选值,可以进一步修改
路由的处理。
- endpoint: 端点名称(默认为
Resource.__name__.lower()可用于在fields.Url字段中引用此路由(字符串)
- resource_class_args: 将转发给
资源的构造函数的参数。(元组)
- resource_class_kwargs: 将转发给
资源的构造函数的关键字参数。(字典)
上面未指定的其他关键字参数将按原样传递给
flask.Flask.add_url_rule()。
- property resources: List[Type[ResourceBase]]¶
- class keystone.server.flask.common.JsonHomeData(rel, status, path_vars)¶
基类:
tuple- path_vars¶
字段编号 2 的别名
- rel¶
字段编号 0 的别名
- status¶
字段编号 1 的别名
- class keystone.server.flask.common.ResourceBase[源]¶
基类:
Resource- api_prefix: str = ''¶
- property audit_initiator¶
描述当前已身份验证上下文的 pyCADF 发起者。
作为属性。
- property auth_context¶
- static build_driver_hints(supported_filters, default_limit: int | None = None)[源]¶
基于查询字符串构建列表提示。
- 参数:
supported_filters – 支持的过滤器列表,因此忽略查询字典中不在该列表中的任何键。
default_limit – 默认页面大小(PROVIDER._get_list_limit)。
- collection_key: str¶
- classmethod filter_params(ref)[源]¶
从字典中删除未指定的参数。
此函数从字典中删除未指定的参数。此方法仅检查ref字典的根级别键。
- 参数:
ref – 表示要序列化的反序列化响应的字典
- classmethod get_token_ref()[源]¶
从认证上下文中检索 KeystoneToken 对象并返回它。
- 引发:
keystone.exception.Unauthorized – 如果找不到认证上下文。
- 返回值:
KeystoneToken 对象。
- classmethod limit(refs, hints)[源]¶
限制实体列表。
底层驱动程序层可能已经为我们截断了集合,但如果它无法处理截断,我们在此处进行检查。
- 参数:
refs – 集合的成员列表
hints – 提示,包含请求的限制等。
- 返回值:
布尔值,指示列表是否被截断,以及(如果需要)截断后的实体列表。
- member_key: str¶
- method_decorators: list[Callable] = []¶
- property oslo_context¶
- static query_filter_is_true(filter_name)[源]¶
确定布尔查询参数是否为“True”。
我们以与策略执行相同的方式处理此问题
{bool_param}=0 被视为 False
任何其他值都被视为等同于 True,包括值的缺失(但作为参数存在)。
False 示例(参数名为 p)
参数“p”的其他所有形式都将导致 True 值,包括:http://host/url?param。
- property request_body_json¶
- classmethod wrap_collection(refs, hints=None, collection_name=None)[源]¶
包装集合,检查过滤和分页。
返回包装的集合,其中包括:- 执行尚未进行的任何过滤-必要时截断到设定的限制-在每个成员中添加“self”链接-为整个集合添加“next”、“self”和“prev”链接。
- 参数:
refs – 集合的成员列表
hints – 列表提示,包含任何相关的过滤器和限制。由管理器已满足的任何过滤器都已被移除
collection_name – 可选覆盖“collection key”类属性。这用于包装其他API的集合,例如“trust”API的“roles”。
- class keystone.server.flask.common.ResourceMap(resource, url, alternate_urls, kwargs, json_home_data)¶
基类:
tuple- alternate_urls¶
字段编号 2 的别名
- json_home_data¶
字段编号 4 的别名
- kwargs¶
字段编号 3 的别名
- resource¶
字段编号 0 的别名
- url¶
字段编号 1 的别名
- keystone.server.flask.common.construct_json_home_data(rel, status='stable', path_vars=None, resource_relation_func=<function build_v3_resource_relation>)[源]¶
- keystone.server.flask.common.construct_resource_map(resource, url, resource_kwargs, alternate_urls=None, rel=None, status='stable', path_vars=None, resource_relation_func=<function build_v3_resource_relation>)[源]¶
构造 ResourceMap 命名元组。
- 参数:
resource (
ResourceMap) – 实现API方法的Flask-RESTful资源类。url (str) – Flask 标准 URL 路由,所有 Flask URL 路由规则都适用。URL 变量将作为参数传递给 Resource 方法。
resource_kwargs –
一个字典,包含可选值,可以进一步修改路由的处理。
- endpoint: 端点名称(默认为
Resource.__name__.lower()可用于在fields.Url字段中引用此路由(字符串)
- resource_class_args: 将转发给
资源的构造函数的参数。(元组)
- resource_class_kwargs: 将转发给
资源的构造函数的参数。(字典)
上面未指定的其他关键字参数将按原样传递给
flask.Flask.add_url_rule()。alternate_urls – 一个包含 URL 和相关 JSON Home REL 数据的字典的可迭代对象(列表)。每个元素预计是一个具有 'url' 键和可选 'json_home' 键(用于 'JsonHomeData' 命名元组)的字典。这些 URL 也将映射到资源。它们用于确保 API 兼容性,当“新”路径对于 API 更正确但旧路径必须继续工作时。例如:/auth/domains 是 /OS-FEDERATION/domains 的新路径。 OS-FEDERATION 部分将被列为替代 URL。如果提供了“json_home”键,带有新 json_home 数据的原始路径将添加到 JSON Home 文档中。
rel (str 或 None)
status (str) – JSON Home API 状态,例如“STABLE”。
path_vars (dict 或 None) – JSON Home 路径变量数据(参数)。
resource_relation_func (callable) – 用于构建预期资源 REL 数据的函数。
- 类型:
可迭代对象或 None
- 返回值: