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