Dela via


Python-API

Med CycleCloud Python API kan du interagera med CycleCloud REST API utan att hantera HTTP-begäranden manuellt. Om du vill hämta API-källdistributionen går du till /about i din CycleCloud-installation och väljer länken Ladda ned Python API . När du har laddat ned källdistributionen använder pip install du för att lägga till den i Python-miljön.

Klientobjekt

Du kan skapa ett klientobjekt med en angiven konfiguration eller utan ett. Om du inte anger någon konfigurationsordlista försöker klientobjektet automatiskt hämta konfigurationen från standardfilen CycleCloud CLI ini (~/.cycle/config.ini).

Ange konfigurationen som en ordlista med följande nyckel/värde-par:

  • url - krävs url:en för webbgränssnittet till CycleCloud-installationen
  • username - krävs
  • password - krävs, lösenordet för oformaterad text för användaren
  • timeout – antalet sekunder innan en timeout inträffar när du försöker ansluta eller kommunicera med systemet (60 som standard)
  • verify_certificates – ett booleskt värde som visar om certifikatkontroll ska vara aktiverat (sant som standard)

Du kan också ange dessa värden som nyckelordsargument till konstruktorn.

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

Klientegenskaper

  • session – Sessionsobjektet – används endast för att göra anrop till Direct API

  • clusters – en karta över klusterobjekten i systemet, med namnet på klustret

Klusterobjekt

Ett klusterobjekt ger dig kontroll över ett specifikt kluster i en CycleCloud-installation.

Klusteregenskaper

  • name – namnet på klustret som objektet refererar till

  • nodes – en lista som du kan iterera genom som innehåller nodposterna för klustret

Klusterfunktioner

  • get_status(nodes=False) – Hämtar klustrets klusterstatusobjekt . Du kan välja att inkludera nodlistan.

  • scale_by_cores(node_array, total_core_count) – Anger att systemet skalar den angivna nodmatrisen till önskat totalt antal kärnor. Om nodmatrisen redan innehåller fler än total_core_count kärnor har anropet ingen effekt.

  • scale_by_nodes(node_array, total_node_count) – Anger att systemet skalar den angivna nodmatrisen till önskat totalt antal noder. Om nodmatrisen redan innehåller fler än total_node_count noder har anropet ingen effekt.

Direkt-API

Du kan komma åt REST-API:et mer direkt med hjälp av API:et på cyclecloud.api och cyclecloud.model, som genereras direkt från REST-API:et. Om du vill använda det här API:et skapar du ett klientobjekt och anropar med den egenskap som session det tillhandahåller.

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)