Python API
CycleCloud Python API'si, HTTP isteklerini el ile gerçekleştirmek zorunda kalmadan CycleCloud REST API ile etkileşim kurmanızı sağlar. API kaynak dağıtımını almak için CycleCloud yüklemenizde /about konumuna gidin ve Python API'sini İndir bağlantısına tıklayın. Kaynak dağıtımı aldıktan sonra python ortamınıza aktarabilir pip install
ve kullanmaya başlayabilirsiniz.
İstemci Nesneleri
İstemci nesnesi, belirtilen bir yapılandırmayla veya yapılandırma olmadan oluşturulabilir. Yapılandırma sözlüğü belirtmezseniz, yapılandırmayı otomatik olarak varsayılan CycleCloud CLI ini dosyasından (~/.cycle/config.ini) çekmeye çalışır.
Yapılandırma, aşağıdaki anahtar/değer çiftleriyle bir dikte olarak sağlanabilir:
-
url
- gerekli, Web arabiriminin CycleCloud yüklemesinin URL'si -
username
- Gerekli -
password
- gerekli, kullanıcının düz metin parolası -
timeout
- sistemle bağlanmaya/iletişim kurmaya çalışırken zaman aşımı hatası oluşmadan önce saniye olarak süre (varsayılan olarak 60) -
verify_certificates
- Sertifika denetiminin etkinleştirilip etkinleştirilmeydiğini belirten bir boole değeri (Varsayılan olarak True)
Alternatif olarak, bu değerler oluşturucuya anahtar sözcük bağımsız değişkenleri olarak verilebilir.
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")
İstemci özellikleri
session
- Session nesnesi - yalnızca Doğrudan API'ye çağrı yapmak için kullanılırclusters
- Sistemdeki Küme nesnelerinin küme adına göre anahtarlanmış bir haritası
Küme Nesneleri
Küme nesnesi, CycleCloud yüklemesindeki belirli bir küme üzerinde denetime olanak tanır.
from cyclecloud.client import Client
cl1 = Client()
# gets a Cluster object for a cluster named "test-cluster-1" from the client cl1
cluster_obj = cl1.clusters["test-cluster-1"]
# prints the current state of the cluster
print(cluster_obj.get_status().state)
# start up to 5 new cores
cluster_obj.scale_by_cores("execute", 5)
Küme özellikleri
name
- bu nesnenin başvurduğu kümenin adınodes
- bu kümeyi oluşturan düğüm kayıtlarının yinelenebilir listesi
Küme işlevleri
get_status(nodes=False)
- İsteğe bağlı olarak düğüm listesini de doldurarak kümenin Küme Durumu nesnesini alır.scale_by_cores(node_array, total_core_count)
- Belirtilen düğüm dizisini istenen toplam çekirdek sayısıyla ölçeklendirmek için sistemi ayarlar. Düğüm dizisi zaten çekirdekten daha fazlasınıtotal_core_count
içeriyorsa, çağrının hiçbir etkisi olmaz.scale_by_nodes(node_array, total_node_count)
- Belirtilen düğüm dizisini istenen toplam düğüm sayısıyla ölçeklendirmek için sistemi ayarlar. Düğüm dizisi zaten düğümden daha fazlatotal_node_count
düğüm içeriyorsa, çağrının hiçbir etkisi olmaz.
Doğrudan API
rest API'ye, doğrudan REST API'den oluşturulan ve cyclecloud.model
api'sini cyclecloud.api
kullanarak daha doğrudan erişilebilir. Bunu yapmak için bir client nesnesi oluşturmanız ve üzerinde sağlanan özelliği kullanarak session
çağrılar yapmanız yeterlidir.
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)