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.identity 或 http_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'¶