keystoneclient 包¶
子包¶
- keystoneclient.auth 包
- 子包
- 子模块
- keystoneclient.auth.base 模块
BaseAuthPluginBaseAuthPlugin.get_connection_params()BaseAuthPlugin.get_endpoint()BaseAuthPlugin.get_headers()BaseAuthPlugin.get_options()BaseAuthPlugin.get_project_id()BaseAuthPlugin.get_token()BaseAuthPlugin.get_user_id()BaseAuthPlugin.invalidate()BaseAuthPlugin.load_from_argparse_arguments()BaseAuthPlugin.load_from_conf_options()BaseAuthPlugin.load_from_options()BaseAuthPlugin.load_from_options_getter()BaseAuthPlugin.register_argparse_arguments()BaseAuthPlugin.register_conf_options()
get_available_plugin_classes()get_available_plugin_names()get_plugin_class()
- keystoneclient.auth.cli 模块
- keystoneclient.auth.conf 模块
- keystoneclient.auth.token_endpoint 模块
- 模块内容
BaseAuthPluginBaseAuthPlugin.get_connection_params()BaseAuthPlugin.get_endpoint()BaseAuthPlugin.get_headers()BaseAuthPlugin.get_options()BaseAuthPlugin.get_project_id()BaseAuthPlugin.get_token()BaseAuthPlugin.get_user_id()BaseAuthPlugin.invalidate()BaseAuthPlugin.load_from_argparse_arguments()BaseAuthPlugin.load_from_conf_options()BaseAuthPlugin.load_from_options()BaseAuthPlugin.load_from_options_getter()BaseAuthPlugin.register_argparse_arguments()BaseAuthPlugin.register_conf_options()
get_available_plugin_classes()get_available_plugin_names()get_common_conf_options()get_plugin_class()get_plugin_options()load_from_argparse_arguments()load_from_conf_options()register_argparse_arguments()register_conf_options()
- keystoneclient.common 包
- keystoneclient.contrib 包
- keystoneclient.generic 包
- keystoneclient.v2_0 包
- 子模块
- keystoneclient.v2_0.certificates 模块
- keystoneclient.v2_0.client 模块
- keystoneclient.v2_0.ec2 模块
- keystoneclient.v2_0.endpoints 模块
- keystoneclient.v2_0.extensions 模块
- keystoneclient.v2_0.roles 模块
- keystoneclient.v2_0.services 模块
- keystoneclient.v2_0.tenants 模块
- keystoneclient.v2_0.tokens 模块
- keystoneclient.v2_0.users 模块
- 模块内容
- keystoneclient.v3 包
- 子包
- 子模块
- keystoneclient.v3.access_rules 模块
- keystoneclient.v3.application_credentials 模块
ApplicationCredentialApplicationCredentialManagerApplicationCredentialManager.collection_keyApplicationCredentialManager.create()ApplicationCredentialManager.delete()ApplicationCredentialManager.find()ApplicationCredentialManager.get()ApplicationCredentialManager.keyApplicationCredentialManager.list()ApplicationCredentialManager.resource_classApplicationCredentialManager.update()
- keystoneclient.v3.auth 模块
- keystoneclient.v3.client 模块
客户端Client.credentialsClient.domain_configsClient.ec2Client.endpoint_filterClient.endpoint_groupsClient.endpoint_policyClient.endpointsClient.domainsClient.federationClient.groupsClient.limitsClient.oauth1Client.policiesClient.regionsClient.registered_limitsClient.role_assignmentsClient.rolesClient.simple_certClient.servicesClient.tokensClient.trustsClient.usersClient.get_raw_token_from_identity_service()Client.process_token()Client.serialize()Client.version
- keystoneclient.v3.credentials 模块
- keystoneclient.v3.domain_configs 模块
- keystoneclient.v3.domains 模块
- keystoneclient.v3.ec2 模块
- keystoneclient.v3.endpoint_groups 模块
EndpointGroupEndpointGroupManagerEndpointGroupManager.base_urlEndpointGroupManager.check()EndpointGroupManager.collection_keyEndpointGroupManager.create()EndpointGroupManager.delete()EndpointGroupManager.get()EndpointGroupManager.keyEndpointGroupManager.list()EndpointGroupManager.resource_classEndpointGroupManager.update()
- keystoneclient.v3.endpoints 模块
- keystoneclient.v3.groups 模块
- keystoneclient.v3.limits 模块
- keystoneclient.v3.policies 模块
- keystoneclient.v3.projects 模块
项目ProjectManagerProjectManager.add_tag()ProjectManager.check_tag()ProjectManager.collection_keyProjectManager.create()ProjectManager.delete()ProjectManager.delete_tag()ProjectManager.find()ProjectManager.get()ProjectManager.keyProjectManager.list()ProjectManager.list_tags()ProjectManager.resource_classProjectManager.update()ProjectManager.update_tags()
- keystoneclient.v3.regions 模块
- keystoneclient.v3.registered_limits 模块
- keystoneclient.v3.role_assignments 模块
RoleAssignmentRoleAssignmentManagerRoleAssignmentManager.collection_keyRoleAssignmentManager.create()RoleAssignmentManager.delete()RoleAssignmentManager.find()RoleAssignmentManager.get()RoleAssignmentManager.keyRoleAssignmentManager.list()RoleAssignmentManager.put()RoleAssignmentManager.resource_classRoleAssignmentManager.update()
- keystoneclient.v3.roles 模块
InferenceRuleInferenceRuleManagerInferenceRuleManager.check()InferenceRuleManager.collection_keyInferenceRuleManager.create()InferenceRuleManager.delete()InferenceRuleManager.find()InferenceRuleManager.get()InferenceRuleManager.keyInferenceRuleManager.list()InferenceRuleManager.list_inference_roles()InferenceRuleManager.put()InferenceRuleManager.resource_classInferenceRuleManager.update()
角色RoleManagerRoleManager.check()RoleManager.check_implied()RoleManager.collection_keyRoleManager.create()RoleManager.create_implied()RoleManager.delete()RoleManager.delete_implied()RoleManager.deprecation_msgRoleManager.get()RoleManager.get_implied()RoleManager.grant()RoleManager.keyRoleManager.list()RoleManager.list_role_inferences()RoleManager.resource_classRoleManager.revoke()RoleManager.update()
- keystoneclient.v3.services 模块
- keystoneclient.v3.system 模块
- keystoneclient.v3.tokens 模块
- keystoneclient.v3.users 模块
- 模块内容
子模块¶
keystoneclient.access 模块¶
- class keystoneclient.access.AccessInfo(*args, **kwargs)¶
Bases:
dict封装来自 keystone 的原始身份验证令牌。
提供从该令牌中提取有用值的辅助方法。
- property audit_chain_id¶
如果存在,则返回审计链 ID。
如果令牌被重新作用域,则此 ID 将是初始令牌的
audit_id。如果不存在值,则返回 None。- 返回值:
str 或 None。
- property audit_id¶
如果存在,则返回审计 ID。
- 返回值:
str 或 None。
- property auth_token¶
返回与身份验证请求关联的 token_id。
用于在 OpenStack API 请求中进行身份验证的标头。
- 返回值:
str
- property auth_url¶
返回标识符 URL 的元组。
标识符 URL 来自与授权请求关联的服务目录中的服务“identity”的 publicURL 和 adminURL。如果身份验证请求未作用域到租户(项目),则此属性将返回 None。
已弃用:这不能正确处理区域名称。您应该自己从服务目录中获取它。这可能在 2.0.0 版本中删除。
- 返回值:
urls 的元组
- property domain_id¶
返回与身份验证请求关联的域 ID。
- 返回值:
str 或 None(如果令牌没有关联域)
- property domain_name¶
返回与身份验证请求关联的域名称。
- 返回值:
str 或 None(如果令牌没有关联域)
- property domain_scoped¶
如果身份验证令牌限定到域,则返回 True。
- 返回值:
bool
- property expires¶
返回令牌过期时间(作为 datetime 对象)。
- 返回值:
datetime
- classmethod factory(resp=None, body=None, region_name=None, auth_token=None, **kwargs)¶
创建新的 AccessInfo 对象的工厂函数。
通过成功的身份验证响应和正文或用户提供的字典创建 AccessInfo 对象。
警告
从 1.7.0 版本开始,region_name 参数的使用已弃用,并可能在 2.0.0 版本中删除。
- has_service_catalog()¶
如果身份验证令牌具有服务目录,则返回 true。
- 返回值:
布尔值
- property initial_audit_id¶
最初请求的令牌的审计 ID。
如果存在,则为
audit_chain_id,否则为audit_id。
- property is_federated¶
如果使用联合身份验证获取令牌,则返回 True。
- 返回值:
布尔值
- classmethod is_valid(body, **kwargs)¶
确定是处理有效的 v2 还是 v3 令牌。
从身份验证正文或用户提供的字典进行验证。
- 返回值:
如果身份验证正文与实现类匹配,则为 true
- 返回类型:
布尔值
- property issued¶
返回令牌签发时间(作为 datetime 对象)。
- 返回值:
datetime
- property management_url¶
返回标识符终结点的第一个 adminURL。
标识符终结点来自与身份验证请求关联的服务目录,如果身份验证请求未作用域到租户(项目),则为 None。
已弃用:这不能正确处理区域名称。您应该自己从服务目录中获取它。这可能在 2.0.0 版本中删除。
- 返回值:
urls 的元组
- property oauth_access_token_id¶
如果使用 OAuth 身份验证,则返回访问令牌 ID。
- 返回值:
str 或 None。
- property oauth_consumer_id¶
如果使用 OAuth 身份验证,则返回消费者 ID。
- 返回值:
str 或 None。
- property project_domain_id¶
返回与身份验证请求关联的项目域 ID。
对于 v2,如果项目已作用域,则返回“default”,否则返回 None,这可能与 keystone 配置不同。
- 返回值:
str
- property project_domain_name¶
返回与身份验证请求关联的项目域名称。
对于 v2,如果项目已作用域,则返回“Default”,否则返回 None,这可能与 keystone 配置不同。
- 返回值:
str
- property project_id¶
返回与身份验证请求关联的项目 ID。
如果身份验证令牌未限定到项目,则返回 None。
- 返回值:
字符串或 None(如果令牌未关联项目)
- property project_name¶
返回与身份验证请求关联的项目名称。
- 返回值:
字符串或 None(如果令牌未关联项目)
- property project_scoped¶
如果身份验证令牌已作用域到租户(项目),则返回 true。
- 返回值:
bool
- property role_ids¶
返回与身份验证请求关联的用户角色 ID 列表。
- 返回值:
角色 ID 字符串列表
- property role_names¶
返回与身份验证请求关联的用户角色名称列表。
- 返回值:
角色名称字符串列表
- property scoped¶
如果身份验证令牌已限定范围,则返回 True。
如果作用域到租户(项目)或域,并包含已填充的服务目录,则返回 true。
警告
从 1.7.0 版本开始,此属性已弃用,使用 project_scoped 代替,并可能在 2.0.0 版本中删除。
- 返回值:
bool
- property tenant_id¶
project_id 的同义词。
- property tenant_name¶
project_name 的同义词。
- property trust_id¶
返回与身份验证请求关联的信任 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property trust_scoped¶
如果身份验证令牌来自委托信任,则返回 True。
信任委托通过 OS-TRUST v3 扩展实现。
- 返回值:
bool
- property trustee_user_id¶
返回与信任关联的委托人用户 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property trustor_user_id¶
返回与信任关联的信托人用户 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property user_domain_id¶
返回与身份验证请求关联的用户域 ID。
对于 v2,它始终返回“default”,这可能与 Keystone 配置不同。
- 返回值:
str
- property user_domain_name¶
返回与身份验证请求关联的用户域名称。
对于 v2,它始终返回“Default”,这可能与 Keystone 配置不同。
- 返回值:
str
- property user_id¶
返回与身份验证请求关联的用户 ID。
- 返回值:
str
- property username¶
返回与身份验证请求关联的用户名。
遵循 V2 API 中定义的模式,首先查找“name”,如果可用则返回该名称,否则回退到“username”。
- 返回值:
str
- property version¶
从身份服务返回身份验证令牌的版本。
- 返回值:
str
- will_expire_soon(stale_duration=None)¶
确定是否即将过期。
- 返回值:
如果过期时间在给定的持续时间内,则返回 True
- 返回类型:
布尔值
- class keystoneclient.access.AccessInfoV2(*args, **kwargs)¶
Bases:
AccessInfo一个对象,用于封装来自身份服务的原始 v2 身份验证令牌。
- property audit_chain_id¶
如果存在,则返回审计链 ID。
如果令牌被重新作用域,则此 ID 将是初始令牌的
audit_id。如果不存在值,则返回 None。- 返回值:
str 或 None。
- property audit_id¶
如果存在,则返回审计 ID。
- 返回值:
str 或 None。
- property auth_token¶
返回与身份验证请求关联的 token_id。
用于在 OpenStack API 请求中进行身份验证的标头。
- 返回值:
str
- property auth_url¶
自 1.7.0 版本弃用。
请使用 service_catalog.get_urls()。它可能在 2.0.0 版本中删除。
- property domain_id¶
返回与身份验证请求关联的域 ID。
- 返回值:
str 或 None(如果令牌没有关联域)
- property domain_name¶
返回与身份验证请求关联的域名称。
- 返回值:
str 或 None(如果令牌没有关联域)
- property domain_scoped¶
如果身份验证令牌限定到域,则返回 True。
- 返回值:
bool
- property expires¶
返回令牌过期时间(作为 datetime 对象)。
- 返回值:
datetime
- has_service_catalog()¶
如果身份验证令牌具有服务目录,则返回 true。
- 返回值:
布尔值
- property is_federated¶
如果使用联合身份验证获取令牌,则返回 True。
- 返回值:
布尔值
- classmethod is_valid(body, **kwargs)¶
确定是处理有效的 v2 还是 v3 令牌。
从身份验证正文或用户提供的字典进行验证。
- 返回值:
如果身份验证正文与实现类匹配,则为 true
- 返回类型:
布尔值
- property issued¶
返回令牌签发时间(作为 datetime 对象)。
- 返回值:
datetime
- property management_url¶
自 1.7.0 版本弃用。
请使用 service_catalog.get_urls()。它可能在 2.0.0 版本中删除。
- property oauth_access_token_id¶
如果使用 OAuth 身份验证,则返回访问令牌 ID。
- 返回值:
str 或 None。
- property oauth_consumer_id¶
如果使用 OAuth 身份验证,则返回消费者 ID。
- 返回值:
str 或 None。
- property project_domain_id¶
返回与身份验证请求关联的项目域 ID。
对于 v2,如果项目已作用域,则返回“default”,否则返回 None,这可能与 keystone 配置不同。
- 返回值:
str
- property project_domain_name¶
返回与身份验证请求关联的项目域名称。
对于 v2,如果项目已作用域,则返回“Default”,否则返回 None,这可能与 keystone 配置不同。
- 返回值:
str
- property project_id¶
返回与身份验证请求关联的项目 ID。
如果身份验证令牌未限定到项目,则返回 None。
- 返回值:
字符串或 None(如果令牌未关联项目)
- property project_name¶
返回与身份验证请求关联的项目名称。
- 返回值:
字符串或 None(如果令牌未关联项目)
- property project_scoped¶
如果身份验证令牌已作用域到租户(项目),则返回 true。
- 返回值:
bool
- property role_ids¶
返回与身份验证请求关联的用户角色 ID 列表。
- 返回值:
角色 ID 字符串列表
- property role_names¶
返回与身份验证请求关联的用户角色名称列表。
- 返回值:
角色名称字符串列表
- property scoped¶
自 1.7.0 版本弃用。
请使用 project_scoped 代替。它可能在 2.0.0 版本中删除。
- property trust_id¶
返回与身份验证请求关联的信任 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property trust_scoped¶
如果身份验证令牌来自委托信任,则返回 True。
信任委托通过 OS-TRUST v3 扩展实现。
- 返回值:
bool
- property trustee_user_id¶
返回与信任关联的委托人用户 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property trustor_user_id¶
返回与信任关联的信托人用户 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property user_domain_id¶
返回与身份验证请求关联的用户域 ID。
对于 v2,它始终返回“default”,这可能与 Keystone 配置不同。
- 返回值:
str
- property user_domain_name¶
返回与身份验证请求关联的用户域名称。
对于 v2,它始终返回“Default”,这可能与 Keystone 配置不同。
- 返回值:
str
- property user_id¶
返回与身份验证请求关联的用户 ID。
- 返回值:
str
- property username¶
返回与身份验证请求关联的用户名。
遵循 V2 API 中定义的模式,首先查找“name”,如果可用则返回该名称,否则回退到“username”。
- 返回值:
str
- class keystoneclient.access.AccessInfoV3(token, *args, **kwargs)¶
Bases:
AccessInfo一个对象,封装来自身份服务的原始 v3 身份验证令牌。
- property audit_chain_id¶
如果存在,则返回审计链 ID。
如果令牌被重新作用域,则此 ID 将是初始令牌的
audit_id。如果不存在值,则返回 None。- 返回值:
str 或 None。
- property audit_id¶
如果存在,则返回审计 ID。
- 返回值:
str 或 None。
- property auth_url¶
自 1.7.0 版本弃用。
请使用 service_catalog.get_urls()。它可能在 2.0.0 版本中删除。
- property domain_id¶
返回与身份验证请求关联的域 ID。
- 返回值:
str 或 None(如果令牌没有关联域)
- property domain_name¶
返回与身份验证请求关联的域名称。
- 返回值:
str 或 None(如果令牌没有关联域)
- property domain_scoped¶
如果身份验证令牌限定到域,则返回 True。
- 返回值:
bool
- property expires¶
返回令牌过期时间(作为 datetime 对象)。
- 返回值:
datetime
- has_service_catalog()¶
如果身份验证令牌具有服务目录,则返回 true。
- 返回值:
布尔值
- property is_federated¶
如果使用联合身份验证获取令牌,则返回 True。
- 返回值:
布尔值
- classmethod is_valid(body, **kwargs)¶
确定是处理有效的 v2 还是 v3 令牌。
从身份验证正文或用户提供的字典进行验证。
- 返回值:
如果身份验证正文与实现类匹配,则为 true
- 返回类型:
布尔值
- property issued¶
返回令牌签发时间(作为 datetime 对象)。
- 返回值:
datetime
- property management_url¶
自 1.7.0 版本弃用。
请使用 service_catalog.get_urls()。它可能在 2.0.0 版本中删除。
- property oauth_access_token_id¶
如果使用 OAuth 身份验证,则返回访问令牌 ID。
- 返回值:
str 或 None。
- property oauth_consumer_id¶
如果使用 OAuth 身份验证,则返回消费者 ID。
- 返回值:
str 或 None。
- property project_domain_id¶
返回与身份验证请求关联的项目域 ID。
对于 v2,如果项目已作用域,则返回“default”,否则返回 None,这可能与 keystone 配置不同。
- 返回值:
str
- property project_domain_name¶
返回与身份验证请求关联的项目域名称。
对于 v2,如果项目已作用域,则返回“Default”,否则返回 None,这可能与 keystone 配置不同。
- 返回值:
str
- property project_id¶
返回与身份验证请求关联的项目 ID。
如果身份验证令牌未限定到项目,则返回 None。
- 返回值:
字符串或 None(如果令牌未关联项目)
- property project_name¶
返回与身份验证请求关联的项目名称。
- 返回值:
字符串或 None(如果令牌未关联项目)
- property project_scoped¶
如果身份验证令牌已作用域到租户(项目),则返回 true。
- 返回值:
bool
- property role_ids¶
返回与身份验证请求关联的用户角色 ID 列表。
- 返回值:
角色 ID 字符串列表
- property role_names¶
返回与身份验证请求关联的用户角色名称列表。
- 返回值:
角色名称字符串列表
- property scoped¶
自 1.7.0 版本弃用。
请使用 project_scoped 代替。它可能在 2.0.0 版本中删除。
- property trust_id¶
返回与身份验证请求关联的信任 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property trust_scoped¶
如果身份验证令牌来自委托信任,则返回 True。
信任委托通过 OS-TRUST v3 扩展实现。
- 返回值:
bool
- property trustee_user_id¶
返回与信任关联的委托人用户 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property trustor_user_id¶
返回与信任关联的信托人用户 ID。
- 返回值:
字符串或 None(如果令牌未关联信任)
- property user_domain_id¶
返回与身份验证请求关联的用户域 ID。
对于 v2,它始终返回“default”,这可能与 Keystone 配置不同。
- 返回值:
str
- property user_domain_name¶
返回与身份验证请求关联的用户域名称。
对于 v2,它始终返回“Default”,这可能与 Keystone 配置不同。
- 返回值:
str
- property user_id¶
返回与身份验证请求关联的用户 ID。
- 返回值:
str
- property username¶
返回与身份验证请求关联的用户名。
遵循 V2 API 中定义的模式,首先查找“name”,如果可用则返回该名称,否则回退到“username”。
- 返回值:
str
keystoneclient.adapter 模块¶
- class keystoneclient.adapter.Adapter(session, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None)¶
基类:
object一个包含本地变量的会话实例。
会话是一个全局对象,在许多客户端之间共享。因此,它包含对每个人都很重要的状态。有很多状态,如服务类型和 region_name,只与使用会话的特定客户端相关。适配器提供了一个围绕全局会话对象的客户端本地数据包装器。
- 参数:
session (keystoneclient.session.Session) – 要包装的会话对象。
service_type (str) – URL 发现的默认 service_type。
service_name (str) – URL 发现的默认 service_name。
interface (str) – URL 发现的默认 interface。
region_name (str) – URL 发现的默认 region_name。
endpoint_override (str) – 对于此客户端的请求,始终使用此终结点 URL。
version (tuple) – 此 API 目标版本。
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于代替会话插件的身份验证插件。
user_agent (str) – 要设置的 User-Agent 字符串。
connect_retries (int) – 应为连接错误尝试的最大重试次数。默认值为 None - 使用会话默认值,即不重试。
logger (logging.Logger) – 用于通过此适配器进行的请求的日志记录对象。
- delete(url, **kwargs)¶
- get(url, **kwargs)¶
- get_endpoint(auth=None, **kwargs)¶
获取由认证插件提供的端点。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
- 返回值:
如果可用,则返回端点,否则返回 None。
- 返回类型:
字符串
- get_project_id(auth=None)¶
返回由认证插件提供的已认证的项目 ID。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
- 返回值:
当前 project_id 或 None(如果插件不支持)。
- 返回类型:
字符串
- get_token(auth=None)¶
返回由认证插件提供的令牌。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
- 返回值:
一个有效的 token。
- 返回类型:
字符串
- get_user_id(auth=None)¶
返回由认证插件提供的已认证的用户 ID。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
- 返回值:
当前 user_id 或 None(如果插件不支持)。
- 返回类型:
字符串
- head(url, **kwargs)¶
- invalidate(auth=None)¶
使认证插件失效。
- patch(url, **kwargs)¶
- post(url, **kwargs)¶
- put(url, **kwargs)¶
- request(url, method, **kwargs)¶
- class keystoneclient.adapter.LegacyJsonAdapter(session, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, version=None, auth=None, user_agent=None, connect_retries=None, logger=None)¶
Bases:
Adapter模拟旧的 HTTPClient。
使用适配器的一个常见情况是,我们想要一个类似于旧 HTTPClient 的接口,它也以 JSON 格式返回正文。
如果你从头开始,你可能不需要这个。
- request(*args, **kwargs)¶
keystoneclient.base 模块¶
构建 API 操作管理器和对象的基础工具。
- class keystoneclient.base.CrudManager(client)¶
Bases:
Manager用于操作 Keystone 实体的基类管理器。
此类子类应定义 collection_key 和 key。
collection_key: 通常是约定俗成的复数名词(例如 entities);用于在 URL(例如 /v3/entities)和包含成员资源列表的 JSON 对象(例如 {‘entities’: [{}, {}, {}]})中引用集合。
key: 通常是约定俗成的单数名词(例如 entity);用于引用集合的单个成员。
- base_url = None¶
- build_key_only_query(params_list)¶
构建一个不包含值、仅包含键的查询。
Identity API 有一些调用定义了没有值的查询,这无法通过使用 urllib.parse.urlencode() 来实现。此方法仅使用键构建查询。
- build_url(dict_args_in_out=None)¶
为给定的 kwargs 构建资源 URL。
给定一个示例集合,其中 collection_key = ‘entities’ 和 key = ‘entity’,可以生成以下 URL。
默认情况下,URL 将表示一个实体集合,例如:
/entities
如果 kwargs 包含 entity_id,则 URL 将表示一个特定的成员,例如:
/entities/{entity_id}
如果提供了 base_url,则生成的 URL 将附加到其末尾。
如果提供了“tail”,它将附加到 URL 的末尾。
- collection_key = None¶
- create(**kwargs)¶
- delete(**kwargs)¶
- find(**kwargs)¶
查找与
**kwargs匹配属性的单个项目。
- get(**kwargs)¶
- head(**kwargs)¶
- key = None¶
- list(fallback_to_auth=False, **kwargs)¶
- put(**kwargs)¶
- update(**kwargs)¶
- class keystoneclient.base.Manager(client)¶
基类:
object提供通用操作的基本管理器类型。
管理器与特定类型的 API(服务器、风味、镜像等)交互,并为其提供 CRUD 操作。
- 参数:
client – 用于 HTTP 请求的 BaseClient 后代实例
- property api¶
客户端。
警告
从 1.7.0 版本开始,此属性已弃用,使用
client()代替,并可能在 2.0.0 版本中删除。
- resource_class = None¶
- class keystoneclient.base.ManagerWithFind(client)¶
Bases:
Manager具有附加 find()/findall() 方法的管理器。
- find(**kwargs)¶
查找与
**kwargs匹配属性的单个项目。效率不高:它加载整个列表,然后在 Python 端进行筛选。
- findall(**kwargs)¶
查找与
**kwargs匹配属性的所有项目。效率不高:它加载整个列表,然后在 Python 端进行筛选。
- abstractmethod list()¶
- class keystoneclient.base.Resource(manager, info, loaded=False)¶
基类:
objectOpenStack 资源(租户、用户等)的基本类。
这基本上只是一个属性包。
- HUMAN_ID = False¶
- NAME_ATTR = 'name'¶
- delete()¶
- get()¶
支持延迟加载详细信息。
一些客户端,例如 novaclient 具有延迟加载详细信息的选项,这些详细信息可以使用此函数加载。
- property human_id¶
人类可读的 ID,可用于 bash 完成。
- is_loaded()¶
- set_loaded(val)¶
- to_dict()¶
- keystoneclient.base.filter_kwargs(f)¶
- keystoneclient.base.filter_none(**kwargs)¶
移除字典中值为 None 的条目。
- keystoneclient.base.getid(obj)¶
如果参数是 Resource,则返回 id。
抽象了在处理关系时,允许将对象或对象的 ID(UUID)作为参数的常见模式。
keystoneclient.baseclient 模块¶
keystoneclient.client 模块¶
- keystoneclient.client.Client(version=None, unstable=False, session=None, **kwargs)¶
用于创建新的身份服务客户端的工厂函数。
返回的客户端将是 V3 或 V2 客户端。使用
version属性或实例的类(使用 isinstance)来检查版本。- 参数:
version (tuple) – 身份 API 的必需版本。如果指定,将选择一个客户端,使其主版本号相同,并且该端点至少提供指定的次版本号。例如,要指定 3.1 API,请使用
(3, 1)。(可选)unstable (bool) – 接受未标记为“稳定”的端点。(可选)
session (keystoneclient.session.Session) – 用于通信的会话对象。如果未提供,将从提供的 kwargs 中构建。(可选)
kwargs – 其他参数将传递给正在创建的客户端。
- 返回值:
新的 keystone 客户端对象。
- 返回类型:
keystoneclient.v3.client.Client或keystoneclient.v2_0.client.Client- 引发:
keystoneclient.exceptions.DiscoveryFailure – 如果服务器响应无效。
keystoneclient.exceptions.VersionNotAvailable – 如果找不到合适的客户端。
- class keystoneclient.client.HTTPClient¶
Bases:
HTTPClientkeystoneclient.httpclient.HTTPClient 的已弃用别名。
此类的弃用版本为 1.7.0,推荐使用
keystoneclient.httpclient.HTTPClient,并可能在 2.0.0 版本中移除。
keystoneclient.discover 模块¶
- class keystoneclient.discover.Discover(session=None, authenticated=None, **kwargs)¶
Bases:
Discover发现和创建客户端的方式。
客户端的创建取决于服务器支持的 API 版本。
服务器的查询在对象创建时完成,之后每个方法都操作检索到的数据。
与此方法关联的连接参数与客户端使用的参数格式和名称相同(参见
keystoneclient.v2_0.client.Client和keystoneclient.v3.client.Client)。如果后续方法未覆盖,它们也将是传递给已创建客户端的内容。如果提供了 auth_url 和 endpoint,则 auth_url 将根据客户端的操作方式使用。
警告
从 1.7.0 版本开始,在不使用 session 参数的情况下创建此类的实例已被弃用,并可能在 2.0.0 版本中移除。
- 参数:
session (keystoneclient.session.Session) – 用于通信的会话对象。客户端也将使用此会话进行构建。
auth_url (string) – 用于授权的身份服务终结点。(可选)
endpoint (string) – 用户提供的身份服务终结点 URL。(可选)
original_ip (string) – 请求用户的原始 IP,将作为“Forwarded”头发送到身份服务。(可选)如果提供了 session,则忽略此参数。从 1.7.0 版本开始弃用,并可能在 2.0.0 版本中移除。
debug (boolean) – 启用对所有发送到身份服务的请求和响应的调试日志记录。默认为 False。(可选)如果提供了 session,则忽略此参数。从 1.7.0 版本开始弃用,并可能在 2.0.0 版本中移除。
cacert (string) – 包含信任的证书颁发机构 X.509 证书的 PEM 文件路径,这些证书是建立与身份服务的 SSL 连接所必需的。(可选)如果提供了 session,则忽略此参数。从 1.7.0 版本开始弃用,并可能在 2.0.0 版本中移除。
key (string) – 包含建立与身份服务双向 SSL 连接所必需的未加密客户端私钥的 PEM 文件路径。(可选)如果提供了 session,则忽略此参数。从 1.7.0 版本开始弃用,并可能在 2.0.0 版本中移除。
cert (string) – 包含对应 X.509 客户端证书的 PEM 文件路径,这些证书是建立与身份服务的双向 SSL 连接所必需的。(可选)如果提供了 session,则忽略此参数。从 1.7.0 版本开始弃用,并可能在 2.0.0 版本中移除。
insecure (boolean) – 在建立与身份服务的 SSL 连接时,不执行 X.509 证书验证。默认为:False。(可选)如果提供了 session,则忽略此参数。从 1.7.0 版本开始弃用,并可能在 2.0.0 版本中移除。
authenticated (bool) – 是否应使用令牌执行初始发现操作。默认为:None(如果提供了认证插件,则附加一个令牌)。
- available_versions(**kwargs)¶
返回服务器上可用的身份 API 列表。
返回的列表包含与之相关的数据。
警告
此方法已从 1.7.0 版本开始弃用,推荐使用
raw_version_data(),并可能在 2.0.0 版本中移除。
- create_client(version=None, unstable=False, **kwargs)¶
用于创建新的身份服务客户端的工厂函数。
- 参数:
- 返回值:
已实例化的身份客户端对象。
- 引发:
keystoneclient.exceptions.DiscoveryFailure – 如果服务器响应无效
keystoneclient.exceptions.VersionNotAvailable – 如果找不到合适的客户端。
- raw_version_data(unstable=False, **kwargs)¶
从 URL 获取原始版本信息。
原始数据表明只对数据进行了最小的验证处理,因此此处返回的数据将与从端点接收到的数据格式相同。
- 参数:
- 返回值:
从服务器返回的与条件匹配的端点。
- 返回类型:
列表
示例
>>> from keystoneclient import discover >>> disc = discover.Discovery(auth_url='https://:5000') >>> disc.raw_version_data() [{'id': 'v3.0', 'links': [{'href': 'http://127.0.0.1:5000/v3/', 'rel': 'self'}], 'media-types': [ {'base': 'application/json', 'type': 'application/vnd.openstack.identity-v3+json'}, {'base': 'application/xml', 'type': 'application/vnd.openstack.identity-v3+xml'}], 'status': 'stable', 'updated': '2013-03-06T00:00:00Z'}, {'id': 'v2.0', 'links': [{'href': 'http://127.0.0.1:5000/v2.0/', 'rel': 'self'}, {'href': '...', 'rel': 'describedby', 'type': 'application/pdf'}], 'media-types': [ {'base': 'application/json', 'type': 'application/vnd.openstack.identity-v2.0+json'}, {'base': 'application/xml', 'type': 'application/vnd.openstack.identity-v2.0+xml'}], 'status': 'stable', 'updated': '2013-03-06T00:00:00Z'}]
- keystoneclient.discover.add_catalog_discover_hack(service_type, old, new)¶
为特定服务添加一个版本移除规则。
最初,OpenStack 的部署会在服务目录中包含一个版本化的端点。例如,身份服务可能看起来像
https://:5000/v2.0。当我们要使用 v3.0 等不同版本时,这是一个问题,因为没有办法知道它的位置。我们也无法仅仅更改所有服务目录,所以必须有一种方法来处理旧样式的目录。此函数为给定的服务类型添加一条规则,如果 URL 的一部分与 *old* 中的给定正则表达式匹配,则将其替换为 *new* 的值。这将替换所有出现的 old 为 new。因此,它应该包含一个正则表达式锚点。
例如,包含的规则是
add_catalog_version_hack('identity', re.compile('/v2.0/?$'), '/')
所以,如果目录检索到一个以 /v2.0 或 /v2.0/ 结尾的 *identity* URL,它将被简单地替换为 / 以修复用户目录。
- keystoneclient.discover.available_versions(url, session=None, **kwargs)¶
从 URL 检索原始版本数据。
- keystoneclient.discover.normalize_version_number(version)¶
将版本表示转换为元组。
接受字符串、元组或浮点数,这些表示我们能够处理的版本格式,并将它们转换为我们实际可用于发现的 (major, minor) 版本元组。
- 例如:'v3.3' 给出 (3, 3)
3.1 给出 (3, 1)
keystoneclient.exceptions 模块¶
异常定义。
- exception keystoneclient.exceptions.AmbiguousEndpoints(endpoints=None)¶
Bases:
CatalogException在服务目录中找到多个匹配的端点。
- exception keystoneclient.exceptions.AuthPluginOptionsMissing(opt_names)¶
Bases:
AuthorizationFailure认证插件缺少一些选项。
- exception keystoneclient.exceptions.AuthSystemNotFound(auth_system)¶
Bases:
AuthorizationFailure用户指定了一个未安装的认证系统。
- exception keystoneclient.exceptions.AuthorizationFailure(message: str | None = None)¶
Bases:
ClientException无法授权 API 客户端。
keystoneauth1.exceptions.auth.AuthorizationFailure的别名。- message = 'Cannot authorize API client.'¶
- exception keystoneclient.exceptions.BadGateway(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpServerErrorHTTP 502 - Bad Gateway。
服务器充当网关或代理,并从上游服务器收到无效响应。
keystoneauth1.exceptions.http.BadGateway的别名。- http_status = 502¶
- message = 'Bad Gateway'¶
- exception keystoneclient.exceptions.BadRequest(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 400 - Bad Request。
请求因语法错误而无法完成。
keystoneauth1.exceptions.http.BadRequest的别名。- http_status = 400¶
- message = 'Bad Request'¶
- exception keystoneclient.exceptions.ClientException(message: str | None = None)¶
基类:
Exception此库引发的所有异常的基类。
keystoneauth1.exceptions.base.ClientException的别名。- message = 'ClientException'¶
- exception keystoneclient.exceptions.CommandError(message: str | None = None)¶
Bases:
ClientExceptionCLI 工具中的错误。
- exception keystoneclient.exceptions.Conflict(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 409 - Conflict。
表示由于请求冲突(如编辑冲突)而无法处理请求。
keystoneauth1.exceptions.http.Conflict的别名。- http_status = 409¶
- message = 'Conflict'¶
- exception keystoneclient.exceptions.ConnectionError(message: str | None = None)¶
Bases:
ClientException无法连接到 API 服务。
keystoneauth1.exceptions.connection.ConnectionError的别名。- message = 'Cannot connect to API service.'¶
- keystoneclient.exceptions.ConnectionRefused¶
尝试连接到 API 服务时连接被拒绝。
keystoneauth1.exceptions.connection.ConnectFailure的别名。
- exception keystoneclient.exceptions.DiscoveryFailure(message: str | None = None)¶
Bases:
ClientException发现客户端版本失败。
keystoneauth1.exceptions.discovery.DiscoveryFailure的别名。- message = 'Discovery of client versions failed.'¶
- exception keystoneclient.exceptions.EmptyCatalog(message: str | None = None)¶
Bases:
EndpointNotFound服务目录为空。
keystoneauth1.exceptions.catalog.EmptyCatalog的别名。- message = 'The service catalog is empty.'¶
- keystoneclient.exceptions.EndpointException¶
服务目录中有些东西不对劲。
keystoneauth1.exceptions.catalog.CatalogException的别名。
- exception keystoneclient.exceptions.EndpointNotFound(message: str | None = None)¶
Bases:
CatalogException无法在服务目录中找到请求的端点。
keystoneauth1.exceptions.catalog.EndpointNotFound的别名。- message = 'Could not find requested endpoint in Service Catalog.'¶
- exception keystoneclient.exceptions.ExpectationFailed(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 417 - Expectation Failed。
服务器无法满足 Expect 请求头字段的要求。
keystoneauth1.exceptions.http.ExpectationFailed的别名。- http_status = 417¶
- message = 'Expectation Failed'¶
- exception keystoneclient.exceptions.Forbidden(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 403 - 禁止访问。
请求是有效的,但服务器拒绝响应。
keystoneauth1.exceptions.http.Forbidden的别名。- http_status = 403¶
- message = 'Forbidden'¶
- exception keystoneclient.exceptions.GatewayTimeout(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpServerErrorHTTP 504 - 网关超时。
服务器充当网关或代理,未及时收到上游服务器的响应。
keystoneauth1.exceptions.http.GatewayTimeout的别名。- http_status = 504¶
- message = 'Gateway Timeout'¶
- exception keystoneclient.exceptions.Gone(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 410 - 已消失。
表示请求的资源已不再可用,并且将不再可用。
keystoneauth1.exceptions.http.Gone的别名- http_status = 410¶
- message = 'Gone'¶
- exception keystoneclient.exceptions.HTTPClientError(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpError客户端 HTTP 错误。
表示客户端似乎出错了。
keystoneauth1.exceptions.http.HTTPClientError的别名- message = 'HTTP Client Error'¶
- exception keystoneclient.exceptions.HTTPRedirection(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpErrorHTTP 重定向。
- message = 'HTTP Redirection'¶
- exception keystoneclient.exceptions.HttpError(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
ClientException所有 HTTP 异常的基类。
一个
keystoneauth1.exceptions.http.HttpError的别名- http_status = 0¶
- message = 'HTTP Error'¶
- exception keystoneclient.exceptions.HttpNotImplemented(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpServerErrorHTTP 501 - 未实现。
服务器不识别请求方法,或者服务器没有能力完成请求。
keystoneauth1.exceptions.http.HttpNotImplemented的别名- http_status = 501¶
- message = 'Not Implemented'¶
- exception keystoneclient.exceptions.HttpServerError(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpError服务器端 HTTP 错误。
服务器意识到自身出错或无法执行请求。
keystoneauth1.exceptions.http.HttpServerError的别名- message = 'HTTP Server Error'¶
- exception keystoneclient.exceptions.HttpVersionNotSupported(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpServerErrorHTTP 505 - HTTP 版本不受支持。
服务器不支持请求中使用的 HTTP 协议版本。
keystoneauth1.exceptions.http.HttpVersionNotSupported的别名- http_status = 505¶
- message = 'HTTP Version Not Supported'¶
- exception keystoneclient.exceptions.InternalServerError(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HttpServerErrorHTTP 500 - 内部服务器错误。
一个通用的错误消息,当没有更具体的错误消息时使用。
keystoneauth1.exceptions.http.InternalServerError的别名- http_status = 500¶
- message = 'Internal Server Error'¶
- exception keystoneclient.exceptions.InvalidResponse(response)¶
Bases:
ClientException服务器的响应对于此请求无效。
- exception keystoneclient.exceptions.LengthRequired(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 411 - 需要长度。
请求未指定内容的长度,而这是所请求资源所必需的。
keystoneauth1.exceptions.http.LengthRequired的别名- http_status = 411¶
- message = 'Length Required'¶
- exception keystoneclient.exceptions.MethodNotAllowed(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 405 - 方法不允许。
对某个资源发起了不支持该资源请求方法的方法。
keystoneauth1.exceptions.http.MethodNotAllowed的别名- http_status = 405¶
- message = 'Method Not Allowed'¶
- exception keystoneclient.exceptions.MethodNotImplemented(message: str | None = None)¶
Bases:
ClientExceptionkeystoneclient API 未实现的方法。
- exception keystoneclient.exceptions.MissingAuthPlugin(message: str | None = None)¶
基类:
AuthPluginException需要身份验证请求,但没有可用的插件。
一个
keystoneauth1.exceptions.auth_plugins.MissingAuthPlugin的别名- message = 'An authenticated request is required but no plugin available.'¶
- exception keystoneclient.exceptions.MultipleChoices(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPRedirectionHTTP 300 - 多重选择。
指示客户端可以遵循资源的多个选项。
- http_status = 300¶
- message = 'Multiple Choices'¶
- exception keystoneclient.exceptions.NoMatchingPlugin(name: str)¶
基类:
AuthPluginException根据提供的参数,没有可以创建的身份验证插件。
一个
keystoneauth1.exceptions.auth_plugins.NoMatchingPlugin的别名
- exception keystoneclient.exceptions.NoUniqueMatch(message: str | None = None)¶
Bases:
ClientException找到多个实体而不是一个。
- exception keystoneclient.exceptions.NotAcceptable(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 406 - 不可接受。
所请求的资源只能生成不符合请求中发送的Accept头信息的响应内容。是
keystoneauth1.exceptions.http.NotAcceptable的别名- http_status = 406¶
- message = 'Not Acceptable'¶
- exception keystoneclient.exceptions.NotFound(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 404 - 未找到。
找不到所请求的资源,但未来可能再次可用。是
keystoneauth1.exceptions.http.NotFound的别名- http_status = 404¶
- message = 'Not Found'¶
- exception keystoneclient.exceptions.PaymentRequired(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 402 - 需要付款。
保留供将来使用。是
keystoneauth1.exceptions.http.PaymentRequired的别名- http_status = 402¶
- message = 'Payment Required'¶
- exception keystoneclient.exceptions.PreconditionFailed(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 412 - 前置条件失败。
服务器未能满足请求者对请求设置的某个先决条件。是
keystoneauth1.exceptions.http.PreconditionFailed的别名- http_status = 412¶
- message = 'Precondition Failed'¶
- exception keystoneclient.exceptions.ProxyAuthenticationRequired(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 407 - 需要代理身份验证。
客户端必须首先使用代理进行身份验证。是
keystoneauth1.exceptions.http.ProxyAuthenticationRequired的别名- http_status = 407¶
- message = 'Proxy Authentication Required'¶
- exception keystoneclient.exceptions.RequestEntityTooLarge(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 413 - 请求实体过大。
请求体比服务器愿意或能够处理的要大。是
keystoneauth1.exceptions.http.RequestEntityTooLarge的别名- http_status = 413¶
- message = 'Request Entity Too Large'¶
- exception keystoneclient.exceptions.RequestTimeout(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 408 - 请求超时。
服务器超时等待请求。是
keystoneauth1.exceptions.http.RequestTimeout的别名- http_status = 408¶
- message = 'Request Timeout'¶
- exception keystoneclient.exceptions.RequestUriTooLong(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 414 - 请求 URI 过长。
提供的URI对于服务器来说太长,无法处理。是
keystoneauth1.exceptions.http.RequestUriTooLong的别名- http_status = 414¶
- message = 'Request-URI Too Long'¶
- exception keystoneclient.exceptions.RequestedRangeNotSatisfiable(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 416 - 请求范围不可满足。
客户端请求了文件的一部分,但服务器无法提供该部分。是
keystoneauth1.exceptions.http.RequestedRangeNotSatisfiable的别名- http_status = 416¶
- message = 'Requested Range Not Satisfiable'¶
- exception keystoneclient.exceptions.SSLError(message: str | None = None)¶
Bases:
ConnectionError发生了SSL错误。
是
keystoneauth1.exceptions.connection.SSLError的别名- message = 'An SSL error occurred.'¶
Bases:
HttpServerErrorHTTP 503 - 服务不可用。
服务器当前不可用。是
keystoneauth1.exceptions.http.ServiceUnavailable的别名
- exception keystoneclient.exceptions.Unauthorized(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 401 - 未授权。
与403 Forbidden类似,但专门用于身份验证失败或尚未提供身份验证的情况。是
keystoneauth1.exceptions.http.Unauthorized的别名- http_status = 401¶
- message = 'Unauthorized'¶
- exception keystoneclient.exceptions.UnprocessableEntity(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 422 - 无法处理的实体。
请求格式正确,但由于语义错误而无法执行。是
keystoneauth1.exceptions.http.UnprocessableEntity的别名- http_status = 422¶
- message = 'Unprocessable Entity'¶
- exception keystoneclient.exceptions.UnsupportedMediaType(message: str | None = None, details: str | None = None, response: Response | None = None, request_id: str | None = None, url: str | None = None, method: str | None = None, http_status: int | None = None, retry_after: int = 0)¶
Bases:
HTTPClientErrorHTTP 415 - 不支持的媒体类型。
请求实体具有服务器或资源不支持的媒体类型。是
keystoneauth1.exceptions.http.UnsupportedMediaType的别名- http_status = 415¶
- message = 'Unsupported Media Type'¶
- exception keystoneclient.exceptions.UnsupportedParameters(names)¶
Bases:
ClientException提供的或返回的参数不受支持。
- 参数:
names (List(str)) – 不支持的参数的名称。
- names¶
不支持的参数的名称。
- exception keystoneclient.exceptions.UnsupportedVersion(message: str | None = None)¶
Bases:
ClientException用户尝试使用不受支持的 API 版本。
- exception keystoneclient.exceptions.ValidationError(message: str | None = None)¶
Bases:
ClientExceptionAPI 客户端侧验证错误。
- exception keystoneclient.exceptions.VersionNotAvailable(message: str | None = None)¶
Bases:
DiscoveryFailure发现失败,因为您请求的版本不可用。
是
keystoneauth1.exceptions.discovery.VersionNotAvailable的别名- message = 'Discovery failed. Requested version is not available.'¶
keystoneclient.httpclient 模块¶
OpenStack 客户端接口。处理 REST 调用和响应。
- class keystoneclient.httpclient.HTTPClient(username=None, tenant_id=None, tenant_name=None, password=None, auth_url=None, region_name=None, endpoint=None, token=None, auth_ref=None, use_keyring=False, force_new_token=False, stale_duration=None, user_id=None, user_domain_id=None, user_domain_name=None, domain_id=None, domain_name=None, project_id=None, project_name=None, project_domain_id=None, project_domain_name=None, trust_id=None, session=None, service_name=None, interface='default', endpoint_override=None, auth=None, user_agent='python-keystoneclient', connect_retries=None, **kwargs)¶
基类:
Client,BaseAuthPluginHTTP 客户端。
警告
从 1.7.0 版本开始,在不使用 session 参数的情况下创建此类的实例已被弃用,并可能在 2.0.0 版本中移除。
- 参数:
user_id (string) – 认证用的用户 ID。(可选)
username (字符串) – 用于身份验证的用户名。(可选)
user_domain_id (string) – 认证用的用户所属域 ID。(可选)
user_domain_name (string) – 认证用的用户所属域名称。(可选)
password (字符串) – 用于身份验证的密码。(可选)
domain_id (string) – 域作用域的域 ID。(可选)
domain_name (string) – 域作用域的域名称。(可选)
project_id (string) – 项目作用域的项目 ID。(可选)
project_name (string) – 项目作用项目的项目名称。(可选)
project_domain_id (string) – 项目作用域的项目所属域 ID。(可选)
project_domain_name (string) – 项目作用域的项目所属域名称。(可选)
auth_url (string) – 授权的身份服务端点。
region_name (字符串) – 从服务目录中选择端点时要选择的区域名称。
timeout (integer) – 此参数已在 1.7.0 版本中弃用,转而使用 session,并可能在 2.0.0 版本中移除。(可选)
endpoint (string) – 用户提供的身份服务的端点 URL。如果实例化时设置了 endpoint,API 服务调用可能支持延迟认证。(可选)
token (字符串) – 用于身份验证的令牌。(可选)
cacert (string) – 此参数已在 1.7.0 版本中弃用,转而使用 session,并可能在 2.0.0 版本中移除。(可选)
key (string) – 此参数已在 1.7.0 版本中弃用,转而使用 session,并可能在 2.0.0 版本中移除。(可选)
cert (string) – 此参数已在 1.7.0 版本中弃用,转而使用 session,并可能在 2.0.0 版本中移除。(可选)
insecure (boolean) – 此参数已在 1.7.0 版本中弃用,转而使用 session,并可能在 2.0.0 版本中移除。(可选)
original_ip (string) – 此参数已在 1.7.0 版本中弃用,转而使用 session,并可能在 2.0.0 版本中移除。(可选)
auth_ref (dict) – 允许客户端使用者管理自己的缓存策略,您可以初始化一个带有先前捕获的 auth_reference(token)的客户端。如果 auth_ref 中存在与传入的关键字参数同名的参数,则以参数的值为准。
use_keyring (boolean) – 启用将 auth_ref 缓存到 keyring。默认值:False。(可选)
force_new_token (boolean) – 与 keyring 相关的参数,强制请求新 token。默认值:False。(可选)
stale_duration (integer) – 以秒为单位的时间间隔,用于确定 keyring 中的 token 是否即将过期。默认值:30。(可选)
tenant_name (string) – 租户名称。(可选)tenant_name 关键字参数已在 1.7.0 版本中弃用,转而使用 project_name,并可能在 2.0.0 版本中移除。
tenant_id (string) – 租户 ID。(可选)tenant_id 关键字参数已在 1.7.0 版本中弃用,转而使用 project_id,并可能在 2.0.0 版本中移除。
trust_id (string) – 信任作用域的信任 ID。(可选)
session (keystoneclient.session.Session) – 用于与身份服务通信的 Session 对象。
service_name (string) – URL 发现的默认 service_name。默认值:None。(可选)
interface (string) – URL 发现的默认 interface。默认值:admin (v2), public (v3)。(可选)
endpoint_override (string) – 始终为此客户端的请求使用此端点 URL。(可选)
auth (keystoneclient.auth.base.BaseAuthPlugin) – 使用的认证插件,代替 session 中的认证插件。(可选)
user_agent (string) – 要设置的 User-Agent 字符串。默认值:python-keystoneclient。(可选)
connect_retries (int) – 尝试连接错误的最多重试次数。默认值为 None - 使用 session 默认值,即不重试。(可选)
- property auth_token¶
- authenticate(username=None, password=None, tenant_name=None, tenant_id=None, auth_url=None, token=None, user_id=None, domain_name=None, domain_id=None, project_name=None, project_id=None, user_domain_id=None, user_domain_name=None, project_domain_id=None, project_domain_name=None, trust_id=None, region_name=None)¶
认证用户。
使用实例化时提供的数据与身份服务进行认证。这可能使用用户名和密码,或者 token 进行认证。如果提供了租户名称或 ID,则生成的认证客户端将作用于该租户,并包含可用端点的服务目录。
使用 v2.0 API 时,如果未提供租户名称或 ID,则返回的认证 token 将是“未作用域”的,并在获取完全作用域的 token 之前功能受限。
使用 v3 API 时,如果提供了域名称或 ID,则生成的认证客户端将作用于该域。如果未提供项目名称或 ID,并且认证用户已配置默认项目,则返回的认证 token 将作用于默认项目。否则,返回的认证 token 将是“未作用域”的,并在获取完全作用域的 token 之前功能受限。
使用 v3 API 时,在 OS-TRUST 扩展启用时,可以提供 trust_id 来允许用户之间的项目特定角色委派。
如果成功,将使用返回的 token 设置 self.auth_ref 和 self.auth_token。如果尚未设置,还将从 token 中提供的详细信息设置 self.management_url。
- 返回值:
如果认证成功,则返回 `True`。
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果无法认证或验证现有的授权 token。
keystoneclient.exceptions.ValueError – 如果使用了不足够的参数。
如果使用 keyring,则 token 将从 keyring 中检索。仅当满足以下任一条件时,才需要进行认证:
未启用 keyring
如果在 keyring 中未找到 token
如果从 keyring 检索到的 token 已过期或即将过期(由 stale_duration 确定)
如果 force_new_token 为 true
- delete(url, **kwargs)¶
执行经过认证的 DELETE 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `DELETE`,并在可用时包含认证 token。
警告
已弃用:此函数不再使用,已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。它被设计为仅供管理器使用,而管理器现在接收一个适配器,因此此函数不再是标准的请求路径。此函数可能在 2.0.0 版本中移除。
- deprecated_adapter_variables = {'region_name': None}¶
- deprecated_session_variables = {'cert': None, 'original_ip': None, 'timeout': None, 'verify_cert': 'verify'}¶
- get(url, **kwargs)¶
执行经过认证的 GET 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `GET`,并在可用时包含认证 token。
警告
已弃用:此函数不再使用,已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。它被设计为仅供管理器使用,而管理器现在接收一个适配器,因此此函数不再是标准的请求路径。此函数可能在 2.0.0 版本中移除。
- get_auth_ref_from_keyring(**kwargs)¶
从 keyring 中检索 auth_ref。
如果在 keyring 中找到 auth_ref,则返回 (keyring_key, auth_ref)。否则,返回 (keyring_key, None)。
- 返回值:
(keyring_key, auth_ref) 或 (keyring_key, None)
- 返回值:
或者 (None, None) 如果对象中未设置 use_keyring。
- get_endpoint(session, interface=None, **kwargs)¶
为客户端返回一个端点。
在
get_endpoint中没有必需的关键字参数,因为插件实现应尽最大努力使用可用信息来确定端点。但是,有一些标准选项将由客户端生成,并且应由插件使用service_type:所需的服务类型。service_name:目录中的服务名称。interface:端点应具有的可见性。region_name:端点所在的区域。
- 参数:
session (keystoneclient.session.Session) – auth_plugin 所属的 session 对象。
- 返回值:
将用于与所需服务通信的基本 URL,如果不可用则为 None。
- 返回类型:
字符串
- get_project_id(session, **kwargs)¶
返回插件认证到的项目 ID。
只要可能,项目 ID 应该从 token 推断出来,但是某些 URL 和其他地方需要访问当前认证的项目 ID。
- 参数:
session (keystoneclient.session.Session) – 一个 session 对象,以便插件可以发出 HTTP 调用。
- 返回值:
一个项目标识符,如果不可用则为 None。
- 返回类型:
- get_raw_token_from_identity_service(auth_url, username=None, password=None, tenant_name=None, tenant_id=None, token=None, user_id=None, user_domain_id=None, user_domain_name=None, domain_id=None, domain_name=None, project_id=None, project_name=None, project_domain_id=None, project_domain_name=None, trust_id=None)¶
向身份 API 进行认证并获取 token。
此处未实现,因为认证协议应特定于 API 版本。
预期会认证或验证已与客户端关联的现有认证引用。调用此调用 *始终* 会向身份服务发起调用。
- 返回值:
(
resp,body)
- get_token(session, **kwargs)¶
获取令牌。
令牌的获取方式由插件决定。如果它仍然有效,则可以重用、从缓存中检索或调用服务器上的身份验证请求。
没有必需的 kwargs。它们直接传递给认证插件,并且是特定于实现的。
返回 None 将指示无法检索到令牌。
此函数放置不当,因为它仅应需要使用“X-Auth-Token”标头的身份验证插件。但是,由于插件的演变方式,此方法是必需的,并且通常被调用以触发新插件上的身份验证请求。
在实现新插件时,建议您实现此方法,但是,如果您不需要“X-Auth-Token”标头,请改写 get_headers 方法。
- 参数:
session (keystoneclient.session.Session) – 一个 session 对象,以便插件可以发出 HTTP 调用。
- 返回值:
要使用的令牌。
- 返回类型:
字符串
- get_user_id(session, **kwargs)¶
返回插件的唯一用户标识符。
只要可能,用户 ID 应该从 token 推断出来,但是某些 URL 和其他地方需要访问当前认证的用户 ID。
- 参数:
session (keystoneclient.session.Session) – 一个 session 对象,以便插件可以发出 HTTP 调用。
- 返回值:
一个用户标识符,如果不可用则为 None。
- 返回类型:
- has_service_catalog()¶
如果此客户端提供服务目录,则返回 True。
- head(url, **kwargs)¶
执行经过认证的 HEAD 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `HEAD`,并在可用时包含认证 token。
警告
已弃用:此函数不再使用,已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。它被设计为仅供管理器使用,而管理器现在接收一个适配器,因此此函数不再是标准的请求路径。此函数可能在 2.0.0 版本中移除。
- property management_url¶
- patch(url, **kwargs)¶
执行经过认证的 PATCH 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `PATCH`,并在可用时包含认证 token。
警告
已弃用:此函数不再使用,已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。它被设计为仅供管理器使用,而管理器现在接收一个适配器,因此此函数不再是标准的请求路径。此函数可能在 2.0.0 版本中移除。
- post(url, **kwargs)¶
执行经过认证的 POST 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `POST`,并在可用时包含认证 token。
警告
已弃用:此函数不再使用,已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。它被设计为仅供管理器使用,而管理器现在接收一个适配器,因此此函数不再是标准的请求路径。此函数可能在 2.0.0 版本中移除。
- process_token(region_name=None)¶
从新的 auth_ref 中提取和处理信息。
并设置相关的认证信息。
- put(url, **kwargs)¶
执行经过认证的 PUT 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `PUT`,并在可用时包含认证 token。
警告
已弃用:此函数不再使用,已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。它被设计为仅供管理器使用,而管理器现在接收一个适配器,因此此函数不再是标准的请求路径。此函数可能在 2.0.0 版本中移除。
- request(*args, **kwargs)¶
使用指定的特征发送 HTTP 请求。
封装 requests.request,用于处理设置头部、JSON 编码/解码和错误处理等任务。
警告
已弃用:此函数不再使用。它被设计为仅供管理器使用,而管理器现在接收一个适配器,因此此函数不再是标准的请求路径。此函数可能在 2.0.0 版本中移除。
- serialize(entity)¶
- property service_catalog¶
返回此客户端的服务目录。
- store_auth_ref_into_keyring(keyring_key)¶
将 auth_ref 存储到 keyring 中。
- property tenant_id¶
提供 tenant_id 的只读向后兼容性。
警告
此参数已在 1.7.0 版本中弃用,转而使用 project_id,并可能在 2.0.0 版本中移除。
- property tenant_name¶
提供 tenant_name 的只读向后兼容性。
警告
此参数已在 1.7.0 版本中弃用,转而使用 project_name,并可能在 2.0.0 版本中移除。
- version = None¶
- keystoneclient.httpclient.USER_AGENT = 'python-keystoneclient'¶
默认用户代理字符串。
此属性已在 1.7.0 版本中弃用,转而使用 `keystoneclient.session.USER_AGENT`,并可能在 2.0.0 版本中移除。
- keystoneclient.httpclient.request(*args, **kwargs)¶
发起请求。
此函数已在 1.7.0 版本中弃用,转而使用 `keystoneclient.session.request()`,并可能在 2.0.0 版本中移除。
keystoneclient.i18n 模块¶
oslo.i18n 集成模块。
请参阅 https://docs.openstack.org/oslo.i18n/2025.2/user/index.html。
keystoneclient.service_catalog 模块¶
- class keystoneclient.service_catalog.ServiceCatalog(region_name=None)¶
基类:
object用于处理 Keystone 服务目录的辅助方法。
警告
设置 region_name 已在 1.7.0 版本中弃用,转而将 region 名称作为参数传递给对服务目录的调用,并可能在 2.0.0 版本中移除。
- classmethod factory(resource_dict, token=None, region_name=None)¶
给定一个认证 token 创建 ServiceCatalog 对象。
警告
设置 region_name 已在 1.7.0 版本中弃用,转而将 region 名称作为参数传递给对服务目录的调用,并可能在 2.0.0 版本中移除。
- abstractmethod get_data()¶
获取原始目录结构。
获取版本相关的目录结构,即它在资源中呈现的方式。
- 返回值:
包含原始目录数据条目的列表或 None
- get_endpoints(service_type=None, endpoint_type=None, region_name=None, service_name=None)¶
获取并过滤指定服务的端点。
返回指定服务(或所有)、包含指定类型(或所有)、区域(或所有)和服务名称的端点。
如果服务目录中没有名称,则会跳过 service_name 检查。这允许与在目录中名称可用之前存在的服务兼容。
- abstractmethod get_token()¶
从服务目录获取 token 详细信息。
返回一个包含以下内容的字典
- `id`: Token's ID - `expires`: Token's expiration - `user_id`: Authenticated user's ID - `tenant_id`: Authorized project's ID - `domain_id`: Authorized domain's ID
- abstractmethod get_urls(attr=None, filter_value=None, service_type='identity', endpoint_type='publicURL', region_name=None, service_name=None)¶
从服务目录获取端点 URL。
从服务目录获取特定端点属性的端点。如果未提供属性,则返回指定类型下的第一个端点。
- 参数:
attr (string) – 端点属性名称。
filter_value (string) – 端点属性值。
service_type (string) – 端点的服务类型。
endpoint_type (string) – 端点类型。可能的值:public 或 publicURL,internal 或 internalURL,admin 或 adminURL
region_name (string) – 端点的区域。
service_name (string) – 服务的分配名称。
- 返回值:
URL 元组或 None(如果没有找到匹配项)
- property region_name¶
区域名称。
警告
region_name 已在 1.7.0 版本中弃用,转而将 region 名称作为参数传递给对服务目录的调用,并可能在 2.0.0 版本中移除。
- url_for(attr=None, filter_value=None, service_type='identity', endpoint_type='publicURL', region_name=None, service_name=None)¶
从服务目录获取一个端点。
从服务目录获取特定端点属性的指定端点。如果未提供属性,则返回指定类型下的第一个端点。
- 有效的端点类型:public 或 publicURL,
internal 或 internalURL,admin 或 ‘adminURL`
- 参数:
attr (string) – 端点属性名称。
filter_value (string) – 端点属性值。
service_type (string) – 端点的服务类型。
endpoint_type (string) – 端点类型。
region_name (string) – 端点的区域。
service_name (string) – 服务的分配名称。
- class keystoneclient.service_catalog.ServiceCatalogV2(resource_dict, region_name=None)¶
基类:
ServiceCatalog封装 v2 服务目录的对象。
该对象使用来自 Keystone 的原始 v2 认证 token 创建。
- get_data()¶
获取原始目录结构。
获取版本相关的目录结构,即它在资源中呈现的方式。
- 返回值:
包含原始目录数据条目的列表或 None
- get_token()¶
从服务目录获取 token 详细信息。
返回一个包含以下内容的字典
- `id`: Token's ID - `expires`: Token's expiration - `user_id`: Authenticated user's ID - `tenant_id`: Authorized project's ID - `domain_id`: Authorized domain's ID
- get_urls(attr=None, filter_value=None, service_type='identity', endpoint_type='publicURL', region_name=None, service_name=None)¶
从服务目录获取端点 URL。
从服务目录获取特定端点属性的端点。如果未提供属性,则返回指定类型下的第一个端点。
- 参数:
attr (string) – 端点属性名称。
filter_value (string) – 端点属性值。
service_type (string) – 端点的服务类型。
endpoint_type (string) – 端点类型。可能的值:public 或 publicURL,internal 或 internalURL,admin 或 adminURL
region_name (string) – 端点的区域。
service_name (string) – 服务的分配名称。
- 返回值:
URL 元组或 None(如果没有找到匹配项)
- classmethod is_valid(resource_dict)¶
- class keystoneclient.service_catalog.ServiceCatalogV3(token, resource_dict, region_name=None)¶
基类:
ServiceCatalog封装 v3 服务目录的对象。
该对象使用来自 Keystone 的原始 v3 认证 token 创建。
- get_data()¶
获取原始目录结构。
获取版本相关的目录结构,即它在资源中呈现的方式。
- 返回值:
包含原始目录数据条目的列表或 None
- get_token()¶
从服务目录获取 token 详细信息。
返回一个包含以下内容的字典
- `id`: Token's ID - `expires`: Token's expiration - `user_id`: Authenticated user's ID - `tenant_id`: Authorized project's ID - `domain_id`: Authorized domain's ID
- get_urls(attr=None, filter_value=None, service_type='identity', endpoint_type='public', region_name=None, service_name=None)¶
从服务目录获取端点 URL。
从服务目录获取特定端点属性的端点。如果未提供属性,则返回指定类型下的第一个端点。
- 参数:
attr (string) – 端点属性名称。
filter_value (string) – 端点属性值。
service_type (string) – 端点的服务类型。
endpoint_type (string) – 端点类型。可能的值:public 或 publicURL,internal 或 internalURL,admin 或 adminURL
region_name (string) – 端点的区域。
service_name (string) – 服务的分配名称。
- 返回值:
URL 元组或 None(如果没有找到匹配项)
- classmethod is_valid(resource_dict)¶
keystoneclient.session 模块¶
- class keystoneclient.session.Session(auth=None, session=None, original_ip=None, verify=True, cert=None, timeout=None, user_agent=None, redirect=30)¶
基类:
object维护客户端通信状态和通用功能。
尽可能地,此类参数反映并直接传递给 requests 库。
- 参数:
auth (
keystoneclient.auth.base.BaseAuthPlugin) – 用于向 session 进行身份验证的认证插件。(可选,默认为 None)session (requests.Session) – 可用于发出请求的 requests session 对象。(可选)
original_ip (string) – 请求用户的原始 IP,将发送到身份服务的“Forwarded”头部。(可选)
verify – 传递给 requests 的验证参数。这些参数与 requests 期望的格式相同,因此 True 或 False 表示验证(或不验证)系统证书,或者是一个指向 bundle 或 CA 证书的路径,或 None 表示 requests 尝试查找并使用证书。(可选,默认为 True)
cert – 传递给 requests 的客户端证书。这些参数与 requests 期望的格式相同。可以是一个包含证书和密钥的单个文件名,也可以是一个包含证书路径然后是密钥路径的元组。(可选)
timeout (float) – 传递给 requests 的超时值。应为表示一定时间(或分数)秒的数值,或 0 表示无超时。(可选,默认为 0)
user_agent (string) – 用于请求的用户代理头部字符串。如果未提供,则使用默认值。(可选,默认为 ‘python-keystoneclient’)
redirect (int/bool) – 控制请求可以遵循的最大重定向次数。可以是整数表示特定次数,也可以是 True/False 表示无限/从不。(可选,默认为 30)
- DEFAULT_REDIRECT_LIMIT = 30¶
此属性已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。
- REDIRECT_STATUSES = (301, 302, 303, 305, 307)¶
此属性已在 1.7.0 版本中弃用,并可能在 2.0.0 版本中移除。
- classmethod construct(kwargs)¶
处理从旧参数和新参数构建 session。
支持从旧的 `HTTPClient` 参数以及新的 request 风格参数构建 session。
警告
*已在 1.7.0 版本中弃用*:此函数仅用于弥合旧客户端参数与它们相关的 session 参数之间的差距。它不打算用作通用 Session 工厂。此函数可能在 2.0.0 版本中移除。
此函数会故意修改输入的 kwargs 字典,以便其余的 kwargs 字典可以被重用并传递给其他没有 session 参数的函数。
- delete(url, **kwargs)¶
执行 DELETE 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `DELETE`。
- get(url, **kwargs)¶
执行 GET 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `GET`。
- get_auth_connection_params(auth=None, **kwargs)¶
返回由认证插件提供的认证连接参数。
认证插件可以为请求指定连接参数,例如提供用于通信的客户端证书。
我们限制此函数返回的值,以防止认证插件覆盖与连接参数无关的值。目前接受的值是:
cert:指向客户端证书的路径,或者是一个包含客户端证书和密钥对的元组,与此请求一起使用。
verify:一个布尔值,指示是否针对系统 CA 验证 SSL 证书,或者是一个用于验证的 CA 文件路径。
这些值将被传递给 requests 库,在那里可以找到有关接受值进一步的信息。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于 token 的认证插件。覆盖 session 中的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
keystoneclient.exceptions.UnsupportedParameters – 如果插件返回了此 session 不支持的参数。
- 返回值:
认证头部或 None(如果失败)。
- 返回类型:
- get_auth_headers(auth=None, **kwargs)¶
返回由认证插件提供的认证头部。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
- 返回值:
认证头部或 None(如果失败)。
- 返回类型:
- classmethod get_conf_options(deprecated_opts=None)¶
获取 `Session` 对象所需的 oslo_config 选项。
这些可能对配置文件的生成或用于在注册它们之前操作选项很有用,而无需注册。
- 设置的选项是
- cafile:
证书颁发机构文件名。
- certfile:
将要呈现的客户端证书文件。
- keyfile:
客户端证书的密钥。
- insecure:
是否忽略 SSL 验证。
- timeout:
HTTP 连接的最大等待时间。
- 参数:
deprecated_opts (dict) –
应包含在新选项定义中的弃用选项。这应该是一个从新选项名称到对应于新选项的 oslo.DeprecatedOpts 列表的字典。(可选)
例如,为了支持指向新 `cafile` 选项名称的 `ca_file` 选项:
old_opt = oslo_cfg.DeprecatedOpt('ca_file', 'old_group') deprecated_opts={'cafile': [old_opt]}
- 返回值:
一个 oslo_config 选项列表。
- get_endpoint(auth=None, **kwargs)¶
获取由认证插件提供的端点。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
- 返回值:
如果可用,则返回端点,否则返回 None。
- 返回类型:
字符串
- get_project_id(auth=None)¶
返回由认证插件提供的已认证的项目 ID。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
- 返回字符串:
当前 project_id,如果插件不支持,则为 None。
- get_token(auth=None)¶
返回由认证插件提供的令牌。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
警告
此方法已在 1.7.0 版本中弃用,转而使用 `get_auth_headers()`,并可能在 2.0.0 版本中移除。此方法假设用于认证消息的唯一头部是 'X-Auth-Token',但这可能不正确。
- 返回值:
一个有效的 token。
- 返回类型:
字符串
- get_user_id(auth=None)¶
返回由认证插件提供的已认证的用户 ID。
- 参数:
auth (keystoneclient.auth.base.BaseAuthPlugin) – 用于令牌的身份验证插件。覆盖会话上的插件。(可选)
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果新的令牌获取失败。
keystoneclient.exceptions.MissingAuthPlugin – 如果插件不可用。
- 返回字符串:
当前 user_id,如果插件不支持,则为 None。
- head(url, **kwargs)¶
执行 HEAD 请求。
这会调用 `request()` 方法,并将 `method` 设置为 `HEAD`。
- invalidate(auth=None)¶
使认证插件失效。
- 参数:
auth (
keystoneclient.auth.base.BaseAuthPlugin) – 要使之无效的认证插件。覆盖 session 中的插件。(可选)
- classmethod load_from_cli_options(args, **kwargs)¶
从 CLI 参数创建 `Session` 对象。
CLI 参数必须已使用 `register_cli_options()` 注册。
- 参数:
args (Namespace) – 解析后的参数结果。
- 返回值:
一个新 session 对象。
- 返回类型:
- classmethod load_from_conf_options(conf, group, **kwargs)¶
从 oslo_config 对象创建 session 对象。
这些选项必须先前使用 register_conf_options 注册。
- static register_cli_options(parser)¶
注册会话所需的 argparse 参数。
- 参数:
parser (argparse.ArgumentParser) – 要添加到的解析器。
- classmethod register_conf_options(conf, group, deprecated_opts=None)¶
注册会话所需的 oslo_config 选项。
- 设置的选项是
- cafile:
证书颁发机构文件名。
- certfile:
将要呈现的客户端证书文件。
- keyfile:
客户端证书的密钥。
- insecure:
是否忽略 SSL 验证。
- timeout:
HTTP 连接的最大等待时间。
- 参数:
conf (oslo_config.Cfg) – 要注册的配置对象。
group (string) – 注册选项的 ini 组。
deprecated_opts (dict) –
应包含在新选项定义中的弃用选项。这应该是一个从新选项名称到对应于新选项的 oslo.DeprecatedOpts 列表的字典。(可选)
例如,为了支持指向新 `cafile` 选项名称的 `ca_file` 选项:
old_opt = oslo_cfg.DeprecatedOpt('ca_file', 'old_group') deprecated_opts={'cafile': [old_opt]}
- 返回值:
已注册的选项列表。
- request(url, method, json=None, original_ip=None, user_agent=None, redirect=None, authenticated=None, endpoint_filter=None, auth=None, requests_auth=None, raise_exc=True, allow_reauth=True, log=True, endpoint_override=None, connect_retries=0, logger=<Logger keystoneclient.session (WARNING)>, **kwargs)¶
使用指定特性发送 HTTP 请求。
对 requests.Session.request 的封装,用于处理诸如设置标头、JSON 编码/解码和错误处理之类的任务。
未处理的参数将传递给 requests 库。
- 参数:
url (string) – HTTP 请求的路径或完全限定 URL。如果仅提供路径,则还必须提供 endpoint_filter,以便确定基本 URL。如果提供完全限定 URL,则将忽略 endpoint_filter。
method (string) – 要使用的 http 方法。(例如,'GET'、'POST')
original_ip (string) – 将此请求标记为转发给此 IP。(可选)
headers (dict) – 要包含在请求中的标头。(可选)
json – 要表示为 JSON 的一些数据。(可选)
user_agent (string) – 要用于此请求的用户代理。如果存在,将覆盖标头中存在的值。(可选)
redirect (int/bool) – 请求可以跟随的最大重定向次数。可以是整数以指定具体次数,或 True/False 表示无限/从不。(可选)
connect_retries (int) – 尝试连接错误的最大重试次数。(可选,默认为 0 - 从不重试)。
authenticated (bool) – 如果应将令牌附加到此请求,则为 True,否则为 False,或如果可用 auth_plugin 则为 None 以附加。(可选,默认为 None)
endpoint_filter (dict) – 要提供给 auth 插件的数据,以便它能够确定此请求要使用的端点。如果未提供,则 URL 预计为完全限定 URL。(可选)
endpoint_override (str) – 要使用的 URL,而不是在 auth 插件中查找端点。如果提供了完全限定 URL,则此参数将被忽略,但它将优先于 endpoint_filter。(可选)
auth (
keystoneclient.auth.base.BaseAuthPlugin) – 认证此请求时要使用的 auth 插件。这将覆盖附加到会话的插件(如果存在)。(可选)requests_auth (
requests.auth.AuthBase) – requests 库的一个 auth 插件,不能通过 kwarg 传递,因为 `auth` kwarg 与我们自己的 auth 插件冲突。(可选)raise_exc (bool) – 如果为 True,则为失败的 HTTP 请求引发适当的异常。如果为 False,则返回请求对象。(可选,默认为 True)
allow_reauth (bool) – 允许在收到 401 Unauthorized 响应时获取新令牌并重试请求。(可选,默认为 True)
log (bool) – 如果为 True,则将请求和响应数据记录到调试日志。(可选,默认为 True)
logger (logging.Logger) – 用于记录请求和响应的 logger 对象。如果未提供,将使用 keystoneclient.session 的默认 logger。
kwargs – 可以传递给 requests.Session.request 的任何其他参数(例如 `headers`)。例外:`data` 将被 `json` 参数中的数据覆盖。`allow_redirects` 被忽略,因为重定向由会话处理。
- 引发:
keystoneclient.exceptions.ClientException – 用于连接失败,或指示错误响应代码。
- 返回值:
请求的响应。
- user_agent = None¶
- class keystoneclient.session.TCPKeepAliveAdapter(pool_connections=10, pool_maxsize=10, max_retries=0, pool_block=False)¶
继承自
HTTPAdapter用于在所有连接上设置 TCP Keep-Alive 的自定义适配器。
此适配器还保留了 Requests 禁用 Nagle 算法的默认行为。另请参阅:http://blogs.msdn.com/b/windowsazurestorage/archive/2010/06/25/nagle-s-algorithm-is-not-friendly-towards-small-requests.aspx
- init_poolmanager(*args, **kwargs)¶
初始化一个 urllib3 PoolManager。
此方法不应从用户代码调用,仅用于继承
HTTPAdapter时使用。- 参数:
connections – 要缓存的 urllib3 连接池数量。
maxsize – 要保存在池中的最大连接数。
block – 当没有可用空闲连接时阻塞。
pool_kwargs – 初始化 Pool Manager 时使用的额外关键字参数。
- keystoneclient.session.request(url, method='GET', **kwargs)¶
keystoneclient.utils 模块¶
- keystoneclient.utils.find_resource(manager, name_or_id)¶
用于 _find_* 方法的辅助函数。
- keystoneclient.utils.hash_signed_token(signed_text, mode='md5')¶
- keystoneclient.utils.isotime(at=None, subsecond=False)¶
以 ISO 8601 格式字符串化时间。
- keystoneclient.utils.prompt_for_password()¶
如果未提供密码,则提示用户输入密码。
使用提示是为了避免密码出现在 bash 历史记录中。
- keystoneclient.utils.prompt_user_password()¶
提示用户输入密码。
如果 stdin 是 tty,则提示输入密码。
- keystoneclient.utils.strtime(at=None)¶