CycleCloud Python API 可讓您與 CycleCloud REST API 互動,而不需要手動處理 HTTP 要求。 若要取得 API 來源發佈,請移至 CycleCloud 安裝上的 /about ,然後選取 [下載 Python API ] 連結。 下載原始碼分發之後,請使用 pip install 新增它到 Python 環境中。
客戶端物件
您可以使用指定的組態建立 Client 物件,或沒有一個。 如果您未指定組態字典,Client 物件會自動嘗試從預設 CycleCloud CLI ini 檔案取得組態 (~/.cycle/config.ini)。
以字典形式提供包含以下索引鍵/值組的設定:
-
url- 必需,CycleCloud 安裝程式 Web 介面的網址 -
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- Session 物件 - 僅用於呼叫 Direct APIclusters- 系統中叢集物件的對應,按叢集名稱索引
叢集物件
Cluster 物件可讓您控制 CycleCloud 安裝中的特定叢集。
叢集屬性
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
您可以透過使用位於 cyclecloud.api 和 cyclecloud.model 的 API,更直接地存取 REST API,這些 API 是直接由 REST API 產生的。 若要使用此 API,請建立 Client 物件,並使用它所提供的 屬性進行呼叫 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)