Python API
تسمح لك واجهة برمجة تطبيقات CycleCloud Python بالتفاعل مع واجهة برمجة تطبيقات CycleCloud REST دون الحاجة إلى تنفيذ طلبات HTTP يدويا. للحصول على توزيع مصدر واجهة برمجة التطبيقات، انتقل إلى /about على تثبيت CycleCloud وانقر على ارتباط Download Python API . بمجرد حصولك على توزيع المصدر، يمكنك pip install
ذلك في بيئة python الخاصة بك والبدء.
كائنات العميل
يمكن إنشاء كائن العميل مع تكوين محدد أو بدونه. إذا لم تحدد قاموس تكوين، فسيحاول تلقائيا سحب التكوين من ملف CycleCloud CLI ini الافتراضي (~/.cycle/config.ini).
يمكن توفير التكوين كمقدمة مع أزواج المفاتيح/القيم التالية:
url
- مطلوب، عنوان url لواجهة الويب لتثبيت CycleCloudusername
- مطلوبpassword
- مطلوب، كلمة مرور النص العادي للمستخدمtimeout
- الوقت، بالثوان، قبل حدوث خطأ في المهلة عند محاولة الاتصال/الاتصال بالنظام (60 افتراضيا)verify_certificates
- قيمة منطقية تشير إلى ما إذا كان يجب تمكين التحقق من الشهادة (True افتراضيا)
بدلا من ذلك، يمكن إعطاء هذه القيم كوسيطات كلمات أساسية إلى الدالة الإنشائية.
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")
خصائص العميل
session
- كائن جلسة العمل - يستخدم فقط في إجراء مكالمات إلى واجهة برمجة التطبيقات المباشرةclusters
- خريطة لكائنات نظام المجموعة في النظام، يتم مفتاحها بواسطة اسم نظام المجموعة
كائنات نظام المجموعة
يسمح كائن نظام المجموعة بالتحكم في مجموعة معينة في تثبيت CycleCloud.
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)
خصائص مقطع التخزين
name
- اسم نظام المجموعة الذي يشير إليه هذا الكائنnodes
- قائمة قابلة للتكسير لسجلات العقدة التي تشكل هذه المجموعة
دوال نظام المجموعة
get_status(nodes=False)
- يحصل على كائن حالة نظام المجموعة للمجموعة، وملء قائمة العقدة اختياريا أيضا.scale_by_cores(node_array, total_core_count)
- يعين النظام لتوسيع نطاق صفيف العقدة المحدد إلى العدد الأساسي الإجمالي المطلوب. إذا كان صفيف العقدة يحتوي بالفعل على أكثر منtotal_core_count
الذاكرات الأساسية، فلن يكون للاتصال أي تأثير.scale_by_nodes(node_array, total_node_count)
- يعين النظام لتوسيع نطاق صفيف العقدة المحدد إلى إجمالي عدد العقد المطلوبة. إذا كان صفيف العقدة يحتوي بالفعل على أكثر منtotal_node_count
عقد، فلن يكون للاتصال أي تأثير.
واجهة برمجة التطبيقات المباشرة
يمكن الوصول إلى واجهة برمجة التطبيقات المتبقية بطريقة أكثر مباشرة باستخدام واجهة برمجة التطبيقات في cyclecloud.api
والتي cyclecloud.model
يتم إنشاؤها مباشرة من واجهة برمجة تطبيقات REST. للقيام بذلك، يمكنك ببساطة إنشاء كائن عميل وإجراء استدعاءات باستخدام الخاصية المتوفرة session
عليه.
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)