keystone.server.flask 包¶
子包¶
子模块¶
- keystone.server.flask.application 模块
- keystone.server.flask.common 模块
APIBaseJsonHomeDataResourceBaseResourceBase.api_prefixResourceBase.audit_initiatorResourceBase.auth_contextResourceBase.build_driver_hints()ResourceBase.collection_keyResourceBase.filter_by_attributes()ResourceBase.filter_params()ResourceBase.get_token_ref()ResourceBase.limit()ResourceBase.member_keyResourceBase.method_decoratorsResourceBase.oslo_contextResourceBase.query_filter_is_true()ResourceBase.request_body_jsonResourceBase.wrap_collection()ResourceBase.wrap_member()
ResourceMapbase_url()construct_json_home_data()construct_resource_map()full_url()set_unenforced_ok()unenforced_api()
- keystone.server.flask.core 模块
模块内容¶
- class keystone.server.flask.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是一个 NamedTuple,包含以下元素:resource: 一个
flask_restful.Resource类或子类- url: 一个用于匹配资源的 URL 路由,标准的 Flask
路由规则适用。任何 URL 变量都将作为参数传递给资源方法。(str)
- alternate_urls: 一个用于匹配资源的 URL 路由的可迭代对象
资源,标准的 Flask 路由规则适用。这些路由是为了 API 兼容性而添加到主 URL 之外的(为了 API 兼容性)。任何 URL 变量都将作为参数传递给资源方法。(可迭代对象)
- json_home_data:
JsonHomeData,其中填充了相关 信息,用于填充 JSON Home 文档或 None。
- json_home_data:
- kwargs: 一个字典,包含可以进一步修改
路由处理的可选值。
- endpoint: 端点名称(默认为
Resource.__name__.lower()可用于在fields.Url字段中引用此路由 (str)
- resource_class_args: 将转发给
资源构造函数的参数。(tuple)
- resource_class_kwargs: 将转发给
资源构造函数的关键字参数。(dict)
上面未指定的其他关键字参数将按原样传递给
flask.Flask.add_url_rule()。
- property resources: List[Type[ResourceBase]]¶
- class keystone.server.flask.JsonHomeData(rel, status, path_vars)¶
基类:
tuple- path_vars¶
字段编号 2 的别名
- rel¶
字段编号 0 的别名
- status¶
字段编号 1 的别名
- class keystone.server.flask.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,包括值的缺失(但作为参数存在)。
参数名为 p 的 False 示例
参数 '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.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.construct_json_home_data(rel, status='stable', path_vars=None, resource_relation_func=<function build_v3_resource_relation>)[源代码]¶
- keystone.server.flask.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 Named Tuple。
- 参数:
resource (
ResourceMap) – 实现 API 方法的 flask-RESTful 资源类。url (str) – Flask 标准 URL 路由,所有 Flask URL 路由规则均适用。URL 变量将作为参数传递给 Resource 方法。
resource_kwargs –
一个字典,包含可以进一步修改路由处理的可选值。
- endpoint: 端点名称(默认为
Resource.__name__.lower()可用于在fields.Url字段中引用此路由 (str)
- resource_class_args: 将转发给
资源构造函数的参数。(tuple)
- resource_class_kwargs: 将转发给
资源构造函数的(dict)。
上面未指定的其他关键字参数将按原样传递给
flask.Flask.add_url_rule()。alternate_urls – 一个可迭代对象(列表),包含 URL 和关联的 JSON Home REL 数据。每个元素预计是一个字典,其中包含一个 'url' 键和一个可选的 'json_home' 键,用于 'JsonHomeData' named tuple。这些 URL 也将映射到资源。它们用于确保 API 兼容性,当一个“新”路径更符合 API 要求,但旧路径必须继续工作时。例如:/auth/domains 是 /OS-FEDERATION/domains 的新路径。OS-FEDERATION 部分将被列为备用 URL。如果提供了 'json_home' 键,带有新 json_home 数据的原始路径将添加到 JSON Home 文档中。
rel (str or None)
status (str) – JSON Home API 状态,例如“STABLE”
path_vars (dict or None) – JSON Home Path Var 数据(参数)
resource_relation_func (callable) – 用于构建预期资源 rel 数据的函数
- 类型:
可迭代对象或 None
- 返回值: