Skip to content

REST API リファレンス

Cockpit REST API を使用すると、管理者はホストの登録を自動化し、仮想マシンのライフサイクルを管理し、HTTP を介してシステムテレメトリを取得できます。


認証とセッション管理

REST API は、要求を検証するために JSON Web Token (JWT) 認証を実装しています。

すべての API 要求には、HTTP 認証ヘッダーに JWT トークンを含める必要があります。

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

VM の電源アクションのトリガー (VM Power Action)

  • エンドポイント: POST /api/v1/vms/:id/action
  • 要求ペイロードの例:
    • VM の起動: {"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"
    }