troveclient.apiclient.client 模块

OpenStack 客户端接口。处理 REST 调用和响应。

class troveclient.apiclient.client.BaseClient(http_client, extensions=None)

基类: object

访问 OpenStack API 的顶层对象。

此客户端使用 HTTPClient 发送请求。 HTTPClient 将处理许多问题,例如身份验证。

cached_endpoint = None
client_request(method, url, **kwargs)
delete(url, **kwargs)
endpoint_type = None
get(url, **kwargs)
static get_class(api_name, version, version_map)

返回请求的 API 版本的客户端类

参数:
  • api_name – API 的名称,例如“compute”、“image”等

  • version – 请求的 API 版本

  • version_map – 以版本为键的客户端类字典

返回类型:

请求的 API 版本的客户端类

head(url, **kwargs)
patch(url, **kwargs)
post(url, **kwargs)
put(url, **kwargs)
service_type = None
class troveclient.apiclient.client.HTTPClient(auth_plugin, region_name=None, endpoint_type='publicURL', original_ip=None, verify=True, cert=None, timeout=None, timings=False, keyring_saver=None, debug=False, user_agent=None, http=None)

基类: object

此客户端处理向 OpenStack 服务器发送 HTTP 请求。

特性

  • 在多个客户端之间共享身份验证信息到不同的服务(例如,用于计算和镜像客户端);

  • 重新颁发已过期令牌的身份验证请求;

  • 编码/解码 JSON 主体;

  • 在 HTTP 错误时引发异常;

  • 可插拔的身份验证;

  • 将身份验证信息存储在密钥环中;

  • 存储请求所花费的时间;

  • 注册特定服务的客户端,以便可以使用 http_client.identityhttp_client.compute

  • 以易于复制粘贴到终端并使用 curl 发送相同请求的格式记录请求和响应。

add_client(base_client_instance)

添加 BaseClient 后代的新实例。

self 将存储对 base_client_instance 的引用。

示例

>>> def test_clients():
...     from keystoneclient.auth import keystone
...     from openstack.common.apiclient import client
...     auth = keystone.KeystoneAuthPlugin(
...         username="user", password="pass", tenant_name="tenant",
...         auth_url="http://auth:5000/v2.0")
...     openstack_client = client.HTTPClient(auth)
...     # create nova client
...     from novaclient.v1_1 import client
...     client.Client(openstack_client)
...     # create keystone client
...     from keystoneclient.v2_0 import client
...     client.Client(openstack_client)
...     # use them
...     openstack_client.identity.tenants.list()
...     openstack_client.compute.servers.list()
authenticate()
client_request(client, method, url, **kwargs)

使用 client 的端点和指定的 url 发送 http 请求。

如果请求被拒绝为未授权(可能是因为令牌已过期),则发起一次授权尝试并再次发送请求。

参数:
  • client – BaseClient 后代的实例

  • method – HTTP 请求的方法

  • url – HTTP 请求的 URL

  • kwargs – 可以传递给 HTTPClient.request 的任何其他参数

static concat_url(endpoint, url)

连接端点和最终 URL。

例如,“http://keystone/v2.0/”和“/tokens”连接到“http://keystone/v2.0/tokens”。

参数:
  • endpoint – 基本 URL

  • url – 最终 URL

get_timings()
request(method, url, **kwargs)

使用指定的特征发送 http 请求。

requests.Session.request 的封装,用于处理诸如设置标头、JSON 编码/解码和错误处理之类的任务。

参数:
  • method – HTTP 请求的方法

  • url – HTTP 请求的 URL

  • kwargs – 可以传递给 requests.Session.request(例如 headers)或 json 的任何其他参数,该参数将编码为 JSON 并用作 data 参数

reset_timings()
serialize(kwargs)
user_agent = 'troveclient.apiclient'