Sdílet prostřednictvím


Rozhraní API pro Python

Rozhraní API CycleCloud Pythonu umožňuje pracovat s rozhraním REST API CycleCloud, aniž byste museli ručně provádět požadavky HTTP. Pokud chcete získat zdrojovou distribuci rozhraní API, přejděte na /about v instalaci CycleCloudu a klikněte na odkaz Stáhnout rozhraní API Pythonu . Jakmile budete mít zdrojová distribuce, můžete pip install ji do prostředí Pythonu a začít.

Klientské objekty

Objekt klienta lze vytvořit s zadanou konfigurací nebo bez této konfigurace. Pokud nezadáte konfigurační slovník, pokusí se automaticky stáhnout konfiguraci z výchozího souboru Rozhraní příkazového řádku CycleCloud (~/.cycle/config.ini).

Konfiguraci je možné zadat jako diktování s následujícími páry klíč/hodnota:

  • url - požadovaná adresa URL webového rozhraní k instalaci CycleCloudu
  • username - Požadované
  • password - povinné, heslo uživatele ve formátu prostého textu
  • timeout – doba v sekundách, než dojde k chybě časového limitu při pokusu o připojení nebo komunikaci se systémem (ve výchozím nastavení 60)
  • verify_certificates – logická hodnota označující, jestli má být povolená kontrola certifikátu (ve výchozím nastavení true)

Alternativně lze tyto hodnoty zadat jako argumenty klíčových slov konstruktoru.

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")

Vlastnosti klienta

  • session - Objekt relace – používá se pouze při volání rozhraní API Direct

  • clusters – mapa objektů clusteru v systému s klíčem podle názvu clusteru

Objekty clusteru

Objekt clusteru umožňuje kontrolu nad konkrétním clusterem v instalaci CycleCloudu.

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)

Vlastnosti clusteru

  • name – název clusteru, na který tento objekt odkazuje

  • nodes – iterovatelný seznam záznamů uzlů, které tvoří tento cluster

Funkce clusteru

  • get_status(nodes=False) – Získá objekt stavu clusteru clusteru, volitelně naplnění seznamu uzlů.

  • scale_by_cores(node_array, total_core_count) – Nastaví systém pro škálování zadaného pole uzlu na požadovaný celkový počet jader. Pokud pole uzlů již obsahuje více než total_core_count jádra, volání nebude mít žádný vliv.

  • scale_by_nodes(node_array, total_node_count) – Nastaví systém tak, aby škáluje zadané pole uzlů na požadovaný celkový počet uzlů. Pokud pole uzlů již obsahuje více než total_node_count uzly, volání nebude mít žádný vliv.

Přímé rozhraní API

K rozhraní REST API můžete přistupovat přesněji pomocí rozhraní API cyclecloud.api a cyclecloud.model vygenerovaného přímo z rozhraní REST API. Uděláte to jednoduše tak, že vytvoříte objekt Client a provedete volání pomocí session vlastnosti poskytnuté na něm.

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)