Freigeben über


Python-API

Mit der CycleCloud Python-API können Sie mit der CycleCloud-REST-API interagieren, ohne HTTP-Anforderungen manuell zu verarbeiten. Um die API-Quellverteilung zu erhalten, wechseln Sie zu /about in Ihrer CycleCloud-Installation, und wählen Sie den Link "Python-API herunterladen " aus. Nachdem Sie die Quellverteilung heruntergeladen haben, fügen Sie pip install zu Ihrer Python-Umgebung hinzu.

Clientobjekte

Sie können ein Clientobjekt mit einer angegebenen Konfiguration oder ohne eine erstellen. Wenn Sie kein Konfigurationswörterbuch angeben, versucht das Client-Objekt automatisch, die Konfiguration aus der Standardmäßigen CycleCloud CLI-Ini-Datei (~/.cycle/config.ini) abzurufen.

Stellen Sie die Konfiguration als Wörterbuch mit den folgenden Schlüssel-Wert-Paaren bereit:

  • url - erforderlich, die URL für die Webschnittstelle zur CycleCloud-Installation
  • username - Erforderlich
  • password - erforderlich, das Nur-Text-Kennwort für den Benutzer
  • timeout - die Anzahl der Sekunden, bevor ein Timeout auftritt, wenn versucht wird, eine Verbindung mit dem System herzustellen oder mit dem System zu kommunizieren (standardmäßig 60)
  • verify_certificates - ein boolescher Wert, der angibt, ob die Zertifikatüberprüfung aktiviert werden soll (Standardmäßig True)

Sie können diese Werte auch als Schlüsselwortargumente für den Konstruktor bereitstellen.

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

Clienteigenschaften

  • session- das Session-Objekt – wird nur für Aufrufe an die Direct-API verwendet

  • clusters - eine Zuordnung der Clusterobjekte im System, schlüsselt nach Clusternamen

Clusterobjekte

Ein Clusterobjekt bietet Ihnen die Kontrolle über einen bestimmten Cluster in einer CycleCloud-Installation.

Clustereigenschaften

  • name - der Name des Clusters, auf den sich das Objekt bezieht

  • nodes - eine Liste, durch die man iterieren kann und die die Knoteneinträge für den Cluster enthält

Clusterfunktionen

  • get_status(nodes=False) - Ruft ein Clusterstatusobjekt des Clusters ab. Sie können wählen, die Knotenliste einzuschließen.

  • scale_by_cores(node_array, total_core_count) - Konfiguriert das System, damit die angegebene Knotenanordnung auf die gewünschte Gesamtkernanzahl skaliert wird. Wenn das Knotenarray bereits mehr als total_core_count Kerne enthält, hat der Aufruf keine Auswirkung.

  • scale_by_nodes(node_array, total_node_count) - Das System wird so eingestellt, dass das angegebene Knotenarray auf die gewünschte Gesamtanzahl von Knoten skaliert wird. Wenn das Knotenarray bereits mehr als total_node_count Knoten enthält, hat der Aufruf keine Auswirkung.

Direkte API

Sie können direkter auf die cyclecloud.api zugreifen, indem Sie die API unter cyclecloud.model und verwenden, die direkt aus der REST-API generiert wird. Um diese API zu verwenden, erstellen Sie ein Clientobjekt, und führen Sie Aufrufe mit der session von ihr bereitgestellten Eigenschaft durch.

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)