oslo_context.context 模块

用于保存请求上下文信息的基类

此类有多种用途

  • 用于在 Web 请求中存储安全信息。

  • 用于将上下文细节传递给 oslo.log。

如果项目希望增强请求上下文或在其特定的 WSGI 管道或日志记录上下文中提供其他信息,则应继承此类。

class oslo_context.context.RequestContext(auth_token: str | None = None, user_id: str | None = None, project_id: str | None = None, domain_id: str | None = None, user_domain_id: str | None = None, project_domain_id: str | None = None, is_admin: bool = False, read_only: bool = False, show_deleted: bool = False, request_id: str | None = None, resource_uuid: str | None = None, overwrite: bool = True, roles: list[str] | None = None, user_name: str | None = None, project_name: str | None = None, domain_name: str | None = None, user_domain_name: str | None = None, project_domain_name: str | None = None, is_admin_project: bool = True, service_token: str | None = None, service_user_id: str | None = None, service_user_name: str | None = None, service_user_domain_id: str | None = None, service_user_domain_name: str | None = None, service_project_id: str | None = None, service_project_name: str | None = None, service_project_domain_id: str | None = None, service_project_domain_name: str | None = None, service_roles: list[str] | None = None, global_request_id: str | None = None, system_scope: str | None = None)

基类: object

用于表示请求上下文信息的辅助类。

存储有关用户访问系统的安全上下文信息,以及其他请求信息。

FROM_DICT_EXTRA_KEYS: list[str] = []
classmethod from_dict(values: dict[str, Any], **kwargs: Any) Self

从提供的字典构造上下文对象。

classmethod from_environ(environ: dict[str, Any], **kwargs: Any) Self

从请求环境加载上下文对象。

如果提供了关键字参数,则它们将覆盖请求环境中的值。

参数:

environ (dict) – 与请求关联的环境字典。

get_logging_values() dict[str, Any]

返回用于日志记录的上下文属性字典。

property global_id: str

返回一个有意义的 global_id 值以传递。

当我们要使用全局请求 ID(如果可用)并回退到本地生成的请求 ID(如果不可用)来调用另一个服务时,这一点很重要。

redacted_copy(**kwargs: Any) Self

返回一个已删除敏感字段的上下文副本。

这对于创建可以安全记录的上下文很有用。

返回值:

一个已删除敏感字段的上下文副本。

to_dict() dict[str, Any]

返回上下文属性的字典。

to_policy_values() _DeprecatedPolicyValues

一个上下文属性字典,用于实施策略。

oslo.policy 实施需要一个属性字典,代表当前登录用户,在其上应用策略实施。此字典定义了一个标准属性列表,应在整个服务中用于实施。

预计服务通常需要使用已弃用的值或服务特定策略使用的其他属性来覆盖此方法。

update_store() None

将上下文存储在当前线程中。

user_idt_format = '{user} {project_id} {domain} {user_domain} {p_domain}'
oslo_context.context.generate_request_id() str

生成唯一的请求 ID。

oslo_context.context.get_admin_context(show_deleted: bool = False) RequestContext

创建一个管理员上下文。

oslo_context.context.get_context_from_function_and_args(function: Callable[[...], Any], args: list[Any], kwargs: dict[str, Any]) RequestContext | None

查找类型为 RequestContext 的参数并返回它。

这在一些装饰器中很有用,因为我们不知道要包装的函数的很多信息。

oslo_context.context.get_current() RequestContext | None

返回当前线程的上下文

如果没有设置上下文,则返回 None

oslo_context.context.is_user_context(context: Any) bool

指示请求上下文是否为普通用户。