Partilhar via


API Python

A API Python do CycleCloud permite que você interaja com a API REST do CycleCloud sem lidar manualmente com solicitações HTTP. Para obter a distribuição de origem da API, vá para /about em sua instalação do CycleCloud e selecione o link Download Python API . Depois de baixar a distribuição de origem, use pip install para adicioná-la ao seu ambiente Python.

Objetos de cliente

Você pode criar um objeto Client com uma configuração especificada ou sem uma. Se você não especificar um dicionário de configuração, o objeto Client tentará automaticamente obter a configuração do arquivo ini padrão da CLI do CycleCloud (~/.cycle/config.ini).

Forneça a configuração como um dicionário com os seguintes pares chave/valor:

  • url - necessário, o URL da interface web para a instalação do CycleCloud
  • username - Necessário
  • password - obrigatório, a senha de texto simples para o usuário
  • timeout - o número de segundos antes de um tempo limite acontecer ao tentar se conectar ou se comunicar com o sistema (60 por padrão)
  • verify_certificates - um booleano que mostra se a verificação de certificado deve ser ativada (True por padrão)

Você também pode fornecer esses valores como argumentos de palavra-chave para o construtor.

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

Propriedades do cliente

  • session - o objeto Session - usado apenas para fazer chamadas para a API direta

  • clusters - um mapa dos objetos Cluster no sistema, digitado pelo nome do cluster

Objetos de cluster

Um objeto Cluster oferece controle sobre um cluster específico em uma instalação do CycleCloud.

Propriedades do cluster

  • name - o nome do cluster ao qual o objeto se refere

  • nodes - uma lista passível de iteração que contém os registos de nós para o cluster

Funções de cluster

  • get_status(nodes=False) - Obtém um objeto de Status do Cluster do cluster. Você pode optar por incluir a lista de nós.

  • scale_by_cores(node_array, total_core_count) - Define o sistema para dimensionar a matriz de nós especificada para a contagem total de núcleos desejada. Se a matriz de nós já contiver mais do que total_core_count núcleos, a chamada não terá efeito.

  • scale_by_nodes(node_array, total_node_count) - Define o sistema para dimensionar a matriz de nós especificada para a contagem total de nós desejada. Se a matriz de nó já contiver mais de total_node_count nós, a chamada não terá efeito.

API direta

Você pode acessar a API REST mais diretamente usando a API at cyclecloud.api e cyclecloud.model, que é gerada diretamente da API REST. Para usar essa API, crie um objeto Client e faça chamadas com a session propriedade que ele fornece.

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)