مشاركة عبر


واجهة برمجة تطبيقات Python

تتيح لك واجهة برمجة تطبيقات CycleCloud Python التفاعل مع واجهة برمجة تطبيقات CycleCloud REST دون الحاجة إلى تنفيذ طلبات HTTP يدويا. للحصول على توزيع مصدر واجهة برمجة التطبيقات، انتقل إلى /about على تثبيت CycleCloud وانقر على ارتباط Download Python API . بمجرد أن يكون لديك توزيع المصدر، يمكنك القيام بذلك pip install في بيئة python الخاصة بك والبدء.

كائنات العميل

يمكن إنشاء كائن العميل مع تكوين محدد أو بدونه. إذا لم تحدد قاموس تكوين، فإنه يحاول تلقائيا سحب التكوين من الملف الافتراضي CycleCloud CLI ini (~/.cycle/config.ini).

يمكن توفير التكوين كمقدمة مع أزواج المفاتيح/القيم التالية:

  • url - مطلوب، عنوان URL لواجهة الويب لتثبيت CycleCloud
  • username - مطلوب
  • 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)