Python API
CycleCloud Python API memungkinkan Anda berinteraksi dengan CycleCloud REST API tanpa harus melakukan permintaan HTTP secara manual. Untuk memperoleh distribusi sumber API, navigasikan ke /tentang pada penginstalan CycleCloud Anda dan klik tautan Unduh Python API . Setelah Anda memiliki distribusi sumber, Anda dapat pip install
melakukannya ke lingkungan python Anda dan memulai.
Objek Klien
Objek Klien dapat dibangun dengan atau tanpa konfigurasi yang ditentukan. Jika Anda tidak menentukan kamus konfigurasi, anda akan secara otomatis mencoba menarik konfigurasi dari file ini CycleCloud CLI default (~/.cycle/config.ini).
Konfigurasi dapat disediakan sebagai dict dengan pasangan kunci/nilai berikut:
url
- diperlukan, url antarmuka web ke penginstalan CycleCloudusername
- Diperlukanpassword
- diperlukan, kata sandi teks biasa penggunatimeout
- waktu, dalam detik, sebelum kesalahan waktu habis akan terjadi ketika mencoba untuk terhubung/berkomunikasi dengan sistem (60 secara default)verify_certificates
- boolean yang menunjukkan apakah pemeriksaan sertifikat harus diaktifkan (Benar secara default)
Atau, nilai-nilai ini dapat diberikan sebagai argumen kata kunci ke konstruktor.
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")
Properti klien
session
- objek Sesi - hanya digunakan dalam melakukan panggilan ke API Langsungclusters
- peta objek Kluster dalam sistem, dikuntangani oleh nama kluster
Objek Kluster
Objek Kluster memungkinkan kontrol atas kluster tertentu dalam penginstalan 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)
Properti kluster
name
- nama kluster yang mengacu pada objek ininodes
- daftar rekaman simpul yang dapat diulang yang terdiri dari kluster ini
Fungsi kluster
get_status(nodes=False)
- Mendapatkan objek Status Kluster dari kluster, secara opsional mengisi daftar simpul juga.scale_by_cores(node_array, total_core_count)
- Mengatur sistem untuk menskalakan array simpul yang ditentukan ke jumlah inti total yang diinginkan. Jika array simpul sudah berisi lebih daritotal_core_count
inti maka panggilan tidak akan berpengaruh.scale_by_nodes(node_array, total_node_count)
- Mengatur sistem untuk menskalakan array simpul yang ditentukan ke jumlah total simpul yang diinginkan. Jika array node sudah berisi lebih daritotal_node_count
node maka panggilan tidak akan berpengaruh.
API Langsung
REST API dapat diakses dengan cara yang lebih langsung dengan menggunakan api di cyclecloud.api
dan cyclecloud.model
yang dihasilkan langsung dari REST API. Untuk melakukannya, Anda cukup membuat objek Klien dan melakukan panggilan menggunakan properti yang session
disediakan di dalamnya.
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)