Partager via


API Python

L’API Python CycleCloud vous permet d’interagir avec l’API REST CycleCloud sans gérer manuellement les requêtes HTTP. Pour obtenir la distribution de la source de l’API, accédez à /about sur votre installation cycleCloud et sélectionnez le lien Télécharger l’API Python . Après avoir téléchargé la distribution source, utilisez-la pip install pour l’ajouter à votre environnement Python.

Objets clients

Vous pouvez créer un objet Client avec une configuration spécifiée ou sans configuration. Si vous ne spécifiez pas de dictionnaire de configuration, l’objet client tente automatiquement d’obtenir la configuration à partir du fichier d’interface CLI CycleCloud par défaut (~/.cycle/config.ini).

Fournissez la configuration en tant que dictionnaire avec les paires clé/valeur suivantes :

  • url - obligatoire, l’URL de l’interface web vers l’installation de CycleCloud
  • username - Obligatoire
  • password - obligatoire, mot de passe en texte brut pour l’utilisateur
  • timeout - nombre de secondes avant qu’un délai d’expiration ne se produise lors de la tentative de connexion ou de communication avec le système (60 par défaut)
  • verify_certificates - valeur booléenne qui indique si la vérification des certificats doit être activée (True par défaut)

Vous pouvez également fournir ces valeurs en tant qu’arguments de mot clé au constructeur.

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

Propriétés du client

  • session - l’objet Session - utilisé uniquement pour effectuer des appels à l’API Direct

  • clusters - Carte des objets cluster dans le système, clé par nom de cluster

Objets de cluster

Un objet Cluster vous permet de contrôler un cluster spécifique dans une installation CycleCloud.

Propriétés du cluster

  • name - nom du cluster auquel l’objet fait référence

  • nodes - une liste dans laquelle vous pouvez itérer et qui contient les enregistrements de nœud pour le cluster

Fonctions de cluster

  • get_status(nodes=False) - Obtient un objet État du cluster. Vous pouvez choisir d’inclure la liste des nœuds.

  • scale_by_cores(node_array, total_core_count) - Définit le système afin de faire évoluer le tableau de nœuds spécifié pour atteindre le nombre total de cœurs souhaité. Si le tableau de nœuds contient déjà plus de total_core_count cœurs, l’appel n’a aucun effet.

  • scale_by_nodes(node_array, total_node_count) - Configure le système pour mettre à l’échelle le tableau de nœuds spécifié au nombre total de nœuds souhaité. Si le tableau de nœuds contient déjà plus de total_node_count nœuds, l’appel n’a aucun effet.

API directe

Vous pouvez accéder à l’API REST plus directement à l’aide de l’API à l’adresse cyclecloud.api et cyclecloud.model, qui est générée directement à partir de l’API REST. Pour utiliser cette API, créez un objet client et effectuez des appels avec la session propriété qu’elle fournit.

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)