keystoneclient.v2_0 包

子模块

keystoneclient.v2_0.certificates 模块

class keystoneclient.v2_0.certificates.CertificatesManager(client)

基类: object

证书管理器。

get_ca_certificate()

获取 CA 证书。

返回值:

PEM 格式的字符串。

返回类型:

str

get_signing_certificate()

获取签名证书。

返回值:

PEM 格式的字符串。

返回类型:

str

keystoneclient.v2_0.client 模块

class keystoneclient.v2_0.client.Client(**kwargs)

继承自:HTTPClient

OpenStack 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_tokenkeystone.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

create(user_id, tenant_id)

为用户/租户对创建一个新的访问/密钥对。

返回类型:

类型为 EC2 的对象

delete(user_id, access)

删除用户的访问/密钥对。

get(user_id, access)

获取给定访问密钥的访问/密钥对。

返回类型:

类型为 EC2 的对象

list(user_id)

获取用户 ID 的访问/密钥对列表。

返回类型:

EC2 列表

resource_class

别名 EC2

class keystoneclient.v2_0.ec2.EC2(manager, info, loaded=False)

基类: Resource

delete()

keystoneclient.v2_0.endpoints 模块

class keystoneclient.v2_0.endpoints.Endpoint(manager, info, loaded=False)

基类: Resource

表示 Keystone 端点。

class keystoneclient.v2_0.endpoints.EndpointManager(client)

继承自:ManagerWithFind

用于操作 Keystone 端点的管理器类。

create(region, service_id, publicurl, adminurl=None, internalurl=None)

创建一个新的端点。

delete(id)

删除一个端点。

list()

列出所有可用的端点。

resource_class

别名 Endpoint

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()

列出所有可用的扩展。

resource_class

别名 Extension

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 中删除角色,否则将从用户的全局角色中删除该角色。

resource_class

Role 的别名

roles_for_user(user, tenant=None)

keystoneclient.v2_0.services 模块

class keystoneclient.v2_0.services.Service(manager, info, loaded=False)

基类: Resource

表示一个 Keystone 服务。

class keystoneclient.v2_0.services.ServiceManager(client)

继承自:ManagerWithFind

用于操作 Keystone 服务的管理器类。

create(name, service_type, description=None)

创建一个新的服务。

delete(id)

删除一个服务。

get(id)

通过 id 获取服务。

list()

列出可用的服务。

resource_class

Service 的别名

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 上删除用户指定的角色。

resource_class

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 编码的文档。

get_token_data(token)

从身份服务器获取 token 的数据。

参数:

token (str) – token id。

返回类型:

dict

resource_class

Token 的别名

validate(token)

验证令牌。

参数:

token – 要验证的令牌。

返回类型:

令牌

validate_access_info(token)

验证令牌。

参数:

token – 要验证的令牌。这可以是 keystoneclient.access.AccessInfo 的实例,或者一个字符串 token_id。

返回类型:

keystoneclient.access.AccessInfoV2

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(tenant_id=None, limit=None, marker=None)

获取用户列表(可以选择限制在某个租户内)。

返回类型:

用户列表 User

list_roles(user, tenant=None)
resource_class

别名 User

update(user, **kwargs)

更新用户数据。

支持的参数包括 nameemailenabled

update_enabled(user, enabled)

更新启用状态。

update_own_password(origpasswd, passwd)

更新密码。

update_password(user, password)

更新密码。

update_tenant(user, tenant)

更新默认租户。

模块内容