Udostępnij przez


Interfejs API języka Python

Interfejs API języka Python CycleCloud umożliwia interakcję z interfejsem API REST usługi CycleCloud bez ręcznej obsługi żądań HTTP. Aby uzyskać dystrybucję źródłową interfejsu API, przejdź do lokalizacji /about w instalacji usługi CycleCloud i wybierz link Pobierz interfejs API języka Python . Po pobraniu dystrybucji źródłowej użyj polecenia pip install , aby dodać ją do środowiska języka Python.

Obiekty klienta

Obiekt klienta można utworzyć z określoną konfiguracją lub bez. Jeśli nie określisz słownika konfiguracji, obiekt klienta automatycznie spróbuje pobrać konfigurację z domyślnego pliku ini interfejsu wiersza polecenia usługi CycleCloud (~/.cycle/config.ini).

Podaj konfigurację jako słownik z następującymi parami klucz/wartość:

  • url - wymagany, adres URL interfejsu internetowego do instalacji usługi CycleCloud
  • username - Wymagane
  • password - wymagane, hasło w postaci zwykłego tekstu dla użytkownika
  • timeout — liczba sekund przed przekroczeniem limitu czasu podczas próby nawiązania połączenia lub komunikacji z systemem (domyślnie 60)
  • verify_certificates — wartość logiczna, która pokazuje, czy sprawdzanie certyfikatu powinno być włączone (domyślnie prawda)

Te wartości można również podać jako argumenty słowa kluczowego konstruktorowi.

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

Właściwości klienta

  • session — obiekt Sesja — używany tylko podczas wykonywania wywołań do interfejsu API bezpośredniego

  • clusters — mapa obiektów klastra w systemie, z kluczami bazującymi na nazwach klastrów

Obiekty klastra

Obiekt klastra zapewnia kontrolę nad określonym klastrem w instalacji usługi CycleCloud.

Właściwości klastra

  • name — nazwa klastra, do którego odwołuje się obiekt

  • nodes — lista, za pomocą której można wykonać iterację zawierającą rekordy węzłów dla klastra

Funkcje klastra

  • get_status(nodes=False) — Pobiera obiekt Stan klastra klastra. Możesz dołączyć listę węzłów.

  • scale_by_cores(node_array, total_core_count) — Ustawia system, aby skalować określoną tablicę węzłów do żądanej całkowitej liczby rdzeni. Jeśli tablica węzłów zawiera już więcej niż total_core_count rdzenie, wywołanie nie działa.

  • scale_by_nodes(node_array, total_node_count) — Ustawia system, aby skalować określoną tablicę węzłów do żądanej całkowitej liczby węzłów. Jeśli tablica węzłów zawiera już więcej niż total_node_count węzły, wywołanie nie działa.

Bezpośredni interfejs API

Dostęp do interfejsu API REST można uzyskać bardziej bezpośrednio przy użyciu interfejsu API pod cyclecloud.api i cyclecloud.model, który jest generowany bezpośrednio z interfejsu API REST. Aby użyć tego interfejsu API, utwórz obiekt Klienta i wykonaj wywołania z właściwością session dostarczoną przez niego.

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)