你当前正在访问 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 - 会话对象 - 仅用于调用 直接 API

  • clusters - 系统中群集对象的映射,按群集名称键键

群集对象

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.apicyclecloud.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)