keystoneclient.v2_0 包¶
子模块¶
keystoneclient.v2_0.certificates 模块¶
keystoneclient.v2_0.client 模块¶
- class keystoneclient.v2_0.client.Client(**kwargs)¶
继承自:
HTTPClientOpenStack Keystone v2.0 API 的客户端。
- 参数:
username (字符串) – 用于身份验证的用户名。(可选)
password (字符串) – 用于身份验证的密码。(可选)
token (字符串) – 用于身份验证的令牌。(可选)
tenant_id (字符串) – 租户 ID。(可选)
tenant_name (字符串) – 租户名称。(可选)
auth_url (字符串) – 用于授权的 Keystone 服务端点。
region_name (字符串) – 从服务目录中选择端点时要选择的区域名称。
endpoint (字符串) – keystone 服务的用户提供的端点 URL。如果实例化时设置了端点,则可以对 API 服务调用进行延迟身份验证。(可选)
timeout (整数) – 允许自定义客户端 http 请求的超时时间。(可选)
original_ip (字符串) – 请求用户的原始 IP,将在 ‘Forwarded’ 标头中发送到 Keystone。(可选)
cert (字符串) – 包含建立与身份服务之间的双向 SSL 连接所需的相应 X.509 客户端证书的 Privacy Enhanced Mail (PEM) 文件路径。(可选)
key (字符串) – 包含建立与身份服务之间的双向 SSL 连接所需的未加密客户端私钥的 Privacy Enhanced Mail (PEM) 文件路径。(可选)
cacert (字符串) – 包含建立与身份服务之间的 SSL 连接所需的受信任的权威 X.509 证书的 Privacy Enhanced Mail (PEM) 文件路径。(可选)
insecure (布尔值) – 在建立与身份服务的 SSL 连接时,不执行 X.509 证书验证。默认值:False(可选)
auth_ref (字典) – 为了允许客户端的消费者管理自己的缓存策略,您可以使用先前捕获的 auth_reference(令牌)来初始化客户端
debug (布尔值) – 启用 keystone 的所有请求和响应的调试日志记录。默认 False(选项)
警告
如果启用了 debug,它可能会在输出中以明文形式显示密码。
警告
从 1.7.0 版本开始,不带会话实例化此类已被弃用,将在 2.0.0 版本中删除。
客户端可以像用户一样创建和使用,也可以以严格的引导模式使用。正常操作需要提供用户名、密码、auth_url 和租户名称或 ID。其他值将根据需要从服务目录中延迟加载。
示例
>>> from keystoneauth1.identity import v2 >>> from keystoneauth1 import session >>> from keystoneclient.v2_0 import client >>> auth = v2.Password(auth_url=KEYSTONE_URL, ... username=USER, ... password=PASS, ... tenant_name=TENANT_NAME) >>> sess = session.Session(auth=auth) >>> keystone = client.Client(session=sess) >>> keystone.tenants.list() ... >>> user = keystone.users.get(USER_ID) >>> user.delete()
身份验证后,您可以存储并尝试重用经过身份验证的令牌。客户端上的 auth_ref 属性以类似于字典的对象的形式返回,以便您可以导出和缓存它,并在启动另一个客户端时重用它
>>> from keystoneauth1.identity import v2 >>> from keystoneauth1 import session >>> from keystoneclient.v2_0 import client >>> auth = v2.Password(auth_url=KEYSTONE_URL, ... username=USER, ... password=PASS, ... tenant_name=TENANT_NAME) >>> sess = session.Session(auth=auth) >>> keystone = client.Client(session=sess) >>> auth_ref = keystone.auth_ref >>> # pickle or whatever you like here >>> new_client = client.Client(auth_ref=auth_ref)
或者,您可以提供在 keystone 中配置的管理令牌和直接通信的端点。请参阅 (
admin_token在keystone.conf中) 在这种情况下,不需要 authenticate(),并且不会加载任何服务目录。示例
>>> from keystoneauth1.identity import v2 >>> from keystoneauth1 import session >>> from keystoneclient.v2_0 import client >>> auth = v2.Token(auth_url='https://:35357/v2.0', ... token='12345secret7890') >>> sess = session.Session(auth=auth) >>> keystone = client.Client(session=sess) >>> keystone.tenants.list()
- get_raw_token_from_identity_service(auth_url, username=None, password=None, tenant_name=None, tenant_id=None, token=None, project_name=None, project_id=None, trust_id=None, **kwargs)¶
对 v2 Identity API 进行身份验证。
如果提供了令牌,它将优先于用户名和密码使用。
- 返回值:
如果身份验证成功,则返回 access.AccessInfo。
- 引发:
keystoneclient.exceptions.AuthorizationFailure – 如果无法进行身份验证或验证现有的授权令牌
- version = 'v2.0'¶
keystoneclient.v2_0.ec2 模块¶
- class keystoneclient.v2_0.ec2.CredentialsManager(client)¶
继承自:
ManagerWithFind- delete(user_id, access)¶
删除用户的访问/密钥对。
keystoneclient.v2_0.endpoints 模块¶
keystoneclient.v2_0.extensions 模块¶
- class keystoneclient.v2_0.extensions.Extension(manager, info, loaded=False)¶
基类:
Resource表示 Identity API 扩展。
- class keystoneclient.v2_0.extensions.ExtensionManager(client)¶
继承自:
ManagerWithFind用于列出 Identity API 扩展的管理器类。
- list()¶
列出所有可用的扩展。
keystoneclient.v2_0.roles 模块¶
- class keystoneclient.v2_0.roles.Role(manager, info, loaded=False)¶
基类:
Resource表示 Keystone 角色。
- delete()¶
- class keystoneclient.v2_0.roles.RoleManager(client)¶
继承自:
ManagerWithFind用于操作 Keystone 角色的管理器类。
- add_user_role(user, role, tenant=None)¶
将角色添加到用户。
如果指定了 tenant,则仅将角色添加到该 tenant,否则将全局添加角色。
- create(name)¶
创建一个角色。
- delete(role)¶
删除一个角色。
- get(role)¶
- list()¶
列出所有可用的角色。
- remove_user_role(user, role, tenant=None)¶
从用户中删除一个角色。
如果指定了 tenant,则仅从该 tenant 中删除角色,否则将从用户的全局角色中删除该角色。
- roles_for_user(user, tenant=None)¶
keystoneclient.v2_0.services 模块¶
keystoneclient.v2_0.tenants 模块¶
- class keystoneclient.v2_0.tenants.Tenant(manager, info, loaded=False)¶
基类:
Resource表示一个 Keystone tenant。
- 属性
id: 标识 tenant 的 uuid
name: tenant 名称
description: tenant 描述
enabled: 布尔值,指示 tenant 是否启用
- add_user(user, role)¶
- delete()¶
- list_users()¶
- remove_user(user, role)¶
- update(name=None, description=None, enabled=None)¶
- class keystoneclient.v2_0.tenants.TenantManager(client, role_manager, user_manager)¶
继承自:
ManagerWithFind用于操作 Keystone tenant 的管理器类。
- add_user(tenant, user, role)¶
使用给定的角色将用户添加到 tenant。
- create(tenant_name, description=None, enabled=True, **kwargs)¶
创建一个新的 tenant。
- delete(tenant)¶
删除一个 tenant。
- get(tenant_id)¶
- list(limit=None, marker=None)¶
获取 tenant 列表。
- 参数:
limit (integer) – 最大返回数量。(可选)
marker (string) – 在指定 limit 并进行多次调用查询时使用。(可选)
- 返回类型:
Tenant列表
- list_users(tenant)¶
列出 tenant 的用户。
- remove_user(tenant, user, role)¶
从 tenant 上删除用户指定的角色。
- update(tenant_id, tenant_name=None, description=None, enabled=None, **kwargs)¶
使用新的名称和描述更新 tenant。
keystoneclient.v2_0.tokens 模块¶
- class keystoneclient.v2_0.tokens.Token(manager, info, loaded=False)¶
基类:
Resource- property expires¶
- property id¶
- property tenant¶
- class keystoneclient.v2_0.tokens.TokenManager(client)¶
基类:
Manager- authenticate(username=None, tenant_id=None, tenant_name=None, password=None, token=None, return_raw=False)¶
- delete(token)¶
- endpoints(token)¶
- get_revoked()¶
返回撤销的 token 响应。
响应将是一个包含“signed”的字典,该字典是 CMS 编码的文档。
- validate_access_info(token)¶
验证令牌。
- 参数:
token – 要验证的令牌。这可以是
keystoneclient.access.AccessInfo的实例,或者一个字符串 token_id。- 返回类型:
keystoneclient.v2_0.users 模块¶
- class keystoneclient.v2_0.users.User(manager, info, loaded=False)¶
基类:
Resource表示 Keystone 用户。
- delete()¶
- list_roles(tenant=None)¶
- class keystoneclient.v2_0.users.UserManager(client, role_manager)¶
继承自:
ManagerWithFind用于操作 Keystone 用户的管理器类。
- create(name, password=None, email=None, tenant_id=None, enabled=True)¶
创建一个用户。
- delete(user)¶
删除用户。
- get(user)¶
- list_roles(user, tenant=None)¶
- update(user, **kwargs)¶
更新用户数据。
支持的参数包括
name、email和enabled。
- update_enabled(user, enabled)¶
更新启用状态。
- update_own_password(origpasswd, passwd)¶
更新密码。
- update_password(user, password)¶
更新密码。
- update_tenant(user, tenant)¶
更新默认租户。