Skip to content

مرجع REST API

يتيح Cockpit REST API للمسؤولين والأنظمة الخارجية أتمتة تسجيل المضيفين، وإدارة دورات حياة الآلات الافتراضية، واسترداد بيانات قياس النظام عبر HTTP.


المصادقة وإدارة الجلسات

يعتمد REST API مصادقة JSON Web Token (JWT) للتحقق من صحة الطلبات.

يجب أن تتضمن جميع طلبات API رمز JWT في ترويسة التفويض HTTP:

http
Authorization: Bearer <YOUR_JWT_TOKEN>
Content-Type: application/json

1. المصادقة (استرداد رمز الجلسة)

  • نقطة النهاية: POST /api/v1/auth/login
  • حمولة الطلب:
    json
    {
      "username": "admin",
      "password": "yourpassword"
    }
  • حمولة الاستجابة:
    json
    {
      "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
      "refresh_token": "a1b2c3d4-...",
      "expires_in": 3600
    }

2. تجديد رمز الجلسة منتهي الصلاحية

  • نقطة النهاية: POST /api/v1/auth/refresh
  • حمولة الطلب:
    json
    {
      "refresh_token": "a1b2c3d4-..."
    }

إدارة عقد المضيف

عرض المضيفين المسجّلين

  • نقطة النهاية: GET /api/v1/hosts
  • حمولة الاستجابة:
    json
    {
      "hosts": [
        {
          "id": "019e0014-abcd-7057-b326-000000000001",
          "hostname": "vapor-node-01.corp.awan.io",
          "status": "connected",
          "sync_cursor": 1716999901
        }
      ]
    }

عمليات الآلات الافتراضية

عرض جميع الآلات الافتراضية

  • نقطة النهاية: GET /api/v1/vms

تشغيل إجراء على طاقة الآلة الافتراضية

  • نقطة النهاية: POST /api/v1/vms/:id/action
  • أمثلة على حمولة الطلب:
    • تشغيل الآلة الافتراضية: {"action": "start"}
    • إيقاف تشغيل آمن: {"action": "shutdown"}
    • إيقاف تشغيل قسري: {"action": "stop", "force": true}

تنفيذ ترحيل الآلة الافتراضية

  • نقطة النهاية: POST /api/v1/vms/:id/migrate
  • حمولة الطلب:
    json
    {
      "destination_host_id": "019e0014-ffff-7057-b326-000000000002",
      "live": true,
      "persistent": true,
      "undefine_source": true,
      "copy_storage": "none"
    }
  • حمولة الاستجابة:
    json
    {
      "migration_id": "abc123def456",
      "status": "initiated"
    }