Bagikan melalui


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 CycleCloud
  • username - Diperlukan
  • password - diperlukan, kata sandi teks biasa pengguna
  • timeout - 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 Langsung

  • clusters - 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 ini

  • nodes - 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 dari total_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 dari total_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)