你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Python API
CycleCloud Python API 允许你与 CycleCloud REST API 进行交互,而无需手动执行 HTTP 请求。 若要获取 API 源分发,请导航到 CycleCloud 安装上的 /about ,然后单击“ 下载 Python API ”链接。 获得源分发后,即可 pip install
进入 Python 环境并开始使用。
客户端对象
可以使用或不指定配置构造 Client 对象。 如果未指定配置字典,它将自动尝试从默认 CycleCloud CLI ini 文件拉取配置, (~/.cycle/config.ini) 。
可以使用以下键/值对以听写的形式提供配置:
-
url
- 必需,指向 CycleCloud 安装的 Web 接口的 URL -
username
- 必填 -
password
- 必需,用户的纯文本密码 -
timeout
- 尝试连接/与系统通信时超时错误的时间(以秒为单位)默认为 60 () -
verify_certificates
- 一个布尔值,指示默认情况下是否应启用证书检查 (True)
或者,可以将这些值作为构造函数的关键字参数提供。
from cyclecloud.client import Client
# configuration read from ~/.cycle/config.ini
cl1 = Client()
# config provided as dictionary
config = {"url": "http://127.0.0.1:8443",
"username": "admin",
"password": "password",
"timeout": 60,
"verify_certificates": False}
cl2 = Client(config)
# config provided as keyword arguments
cl3 = Client(url="http://127.0.0.1:8443", username="admin", password="password")
客户端属性
session
- 会话对象 - 仅用于调用 直接 APIclusters
- 系统中群集对象的映射,按群集名称键键
群集对象
Cluster 对象允许控制 CycleCloud 安装中的特定群集。
from cyclecloud.client import Client
cl1 = Client()
# gets a Cluster object for a cluster named "test-cluster-1" from the client cl1
cluster_obj = cl1.clusters["test-cluster-1"]
# prints the current state of the cluster
print(cluster_obj.get_status().state)
# start up to 5 new cores
cluster_obj.scale_by_cores("execute", 5)
群集属性
name
- 此对象引用的群集的名称nodes
- 构成此群集的节点记录的可迭代列表
群集函数
get_status(nodes=False)
- 获取群集的 群集状态 对象,可以选择填充节点列表。scale_by_cores(node_array, total_core_count)
- 将系统设置为将指定的节点数组缩放为所需的总核心计数。 如果节点数组已包含多个total_core_count
核心,则调用将不起作用。scale_by_nodes(node_array, total_node_count)
- 将系统设置为将指定的节点数组缩放为所需的总节点计数。 如果节点数组已包含多个total_node_count
节点,则调用将不起作用。
直接 API
可以通过使用 REST API 直接生成的 API cyclecloud.api
cyclecloud.model
,以更直接的方式访问 其余 API。 为此,只需构造客户端对象并使用其上提供的属性进行调用 session
。
from cyclecloud.client import Client
from cyclecloud.api import clusters
cl1 = Client()
# prints the current state of the cluster
response_status, cluster_status = clusters.get_cluster_status(cl1.session, "test-cluster-1", nodes=False)
print(cluster_status.state)