【VMware Cloud Director】VMware Cloud Director Appliance API

VCDセルの5480ポートへアクセスし、セル情報などを取得できるAPI

参考:https://developer.vmware.com/apis/1633/

例1)サービス状態取得

curl -k --header "Accept: application/json" -u 'root:VMware1!' request GET https://172.16.20.20:5480/api/1.0.0/services

※レスポンス
[
  {
    "serviceName": "vmware-vcd",
    "status": "running"
  },
  {
    "serviceName": "vpostgres",
    "status": "running"
  },
  {
    "serviceName": "repmgrd",
    "status": "dead (normal when appliance is in manual failover mode)"
  },
  {
    "serviceName": "appliance-sync.timer",
    "status": "waiting"
  }
]

例2)ストレージ情報取得

curl -k --header "Accept: application/json" -u 'root:VMware1!' request GET https://172.16.20.20:5480/api/1.0.0/storage

※レスポンス
{
  "nfs": {
    "availableMB": 48814,
    "filesystem": "172.16.20.1:/newnfs",
    "mountedOn": "/opt/vmware/vcloud-director/data/transfer",
    "percentUsed": 53,
    "status": "available",
    "usedMB": 53583,
    "volumeSizeMB": 102397
  },
  "postgres": {
    "availableMB": 108094,
    "filesystem": "/dev/mapper/database_vg-vpostgres",
    "mountedOn": "/var/vmware/vpostgres",
    "percentUsed": 14,
    "status": "available",
    "usedMB": 16220,
    "volumeSizeMB": 130456
  },
  "root": {
    "availableMB": 52587,
    "filesystem": "/dev/sda3",
    "mountedOn": "/",
    "percentUsed": 5,
    "status": "available",
    "usedMB": 2657,
    "volumeSizeMB": 57884
  }
}

例3)NFSストレージ情報のみに絞って取得

curl -k --header "Accept: application/json" -u 'root:VMware1!' request GET https://172.16.20.20:5480/api/1.0.0/storage/nfs

※レスポンス
{
  "availableMB": 48814,
  "filesystem": "172.16.20.1:/newnfs",
  "mountedOn": "/opt/vmware/vcloud-director/data/transfer",
  "percentUsed": 53,
  "status": "available",
  "usedMB": 53583,
  "volumeSizeMB": 102397
}

例4)ノード情報取得

curl -k --header "Accept: application/json" -u 'root:VMware1!' request GET https://172.16.20.20:5480/api/1.0.0/nodes

※レスポンス
{
  "localClusterFailover": "MANUAL",
  "localClusterHealth": "HEALTHY",
  "localClusterState": [
    {
      "connectionString": "host=172.16.20.21 user=repmgr dbname=repmgr connect_timeout=2",
      "failover": {
        "details": "failover = manual",
        "mode": "MANUAL",
        "repmgrd": {
          "details": "On node 26547 (20-vcd-01): repmgrd = not applicable",
          "status": "NOT APPLICABLE"
        }
      },
      "id": 26547,
      "location": "default",
      "name": "20-vcd-01",
      "nodeHealth": "HEALTHY",
      "nodeRole": "PRIMARY",
      "role": "primary",
      "status": "* running",
      "upstream": ""
    }
  ],
  "warnings": []
}

例5)プライマリーノードか確認

curl -k --header "Accept: application/json" -u 'root:VMware1!' request GET https://172.16.20.20:5480/api/1.0.0/isPrimary

※レスポンス
{
  "isPrimary": true
}