# servers

Manage server hardware, configuration, and services.
Set management node URL:

# GET /disks

# Parameters

  • No parameters...

# Endpoint

curl -X GET http://mgmt-node:8080/api/disks

# Response 200

  • idintegeroptional-
  • hostnamestringoptional-
  • serverintegeroptional-
  • rolestringoptional[unassigned, mon, osd, journal, other, raid, deleting, updating, mon_unused, old_osd, old_mon]
  • serialstringoptional-
  • capacityintegeroptional-
  • namestringoptional-
  • pathstringoptional-
  • infostringoptional-
  • deviceClassstringoptional[hdd, ssd, nvme]
  • lastSeennumberoptionalDuration in seconds.
  • serverLastSeennumberoptionalDuration in seconds.
  • partitionsintegeroptional-
  • usedPartitionsintegeroptional-
  • journalDiskintegeroptional-
  • journalPartitionintegeroptional-
  • osdIdintegeroptional-
  • smartobjectoptional-
    • statusstringoptional-
    • detailsstringoptional-
  • missingbooleanoptional-
  • daemonRunningbooleanoptional-
  • bluestorebooleanoptional-
  • wwnstringoptional-
  • encryptedbooleanoptional-

# Example response

[
  {
    "id": 0,
    "hostname": "string",
    "server": 0,
    "role": "unassigned",
    "serial": "string",
    "capacity": 0,
    "name": "string",
    "path": "string",
    "info": "string",
    "deviceClass": "hdd",
    "lastSeen": ,
    "serverLastSeen": ,
    "partitions": 0,
    "usedPartitions": 0,
    "journalDisk": 0,
    "journalPartition": 0,
    "osdId": 0,
    "smart": {
      "status": "string",
      "details": "string"
    },
    "missing": true,
    "daemonRunning": true,
    "bluestore": true,
    "wwn": "string",
    "encrypted": true
  }
]

# DELETE /disks/{diskId}

# Parameters

  • diskIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/disks/{diskId}

# POST /disks/{diskId}/benchmark/basic

# Parameters

  • diskIdintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/disks/{diskId}/benchmark/basic

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# GET /services/iscsi/{serviceId}

Get configuration of an iSCSI gateway

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/services/iscsi/{serviceId}

# Response 200

  • iqnstringoptional-
  • gatewaysarrayoptional-
    • namestringoptional-
    • ipstringoptional-
  • clientsarrayoptional-
    • namestringoptional-
    • groupstringoptional-
    • usernamestringoptional-
    • passwordstringoptional-
    • lunsarrayoptional-
      • poolstringoptional-
      • imagestringoptional-
      • idintegeroptional-
      • wwnstringoptional-
  • groupsarrayoptional-
    • namestringoptional-
    • membersarrayoptional-
    • lunsarrayoptional-
      • poolstringoptional-
      • imagestringoptional-
      • idintegeroptional-
      • wwnstringoptional-

# Example response

{
  "iqn": "string",
  "gateways": [
    {
      "name": "string",
      "ip": "string"
    }
  ],
  "clients": [
    {
      "name": "string",
      "group": "string",
      "username": "string",
      "password": "string",
      "luns": [
        {
          "pool": "string",
          "image": "string",
          "id": 0,
          "wwn": "string"
        }
      ]
    }
  ],
  "groups": [
    {
      "name": "string",
      "members": [
        "string"
      ],
      "luns": [
        {
          "pool": "string",
          "image": "string",
          "id": 0,
          "wwn": "string"
        }
      ]
    }
  ]
}

# POST /services/iscsi/{serviceId}

Add a server to an existing iSCSI gateway service.

# Parameters

  • serviceIdintegerpath-
  • bodyobjectoptional-
    • serverIdintegeroptional-
    • ipstringoptionalClient-facing IP address of this gateway, must be configured on the server.

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/iscsi/{serviceId}

# Example body

{
  "serverId": 0,
  "ip": "string"
}

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# DELETE /services/iscsi/{serviceId}

Delete an iSCSI service.

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/iscsi/{serviceId}

# POST /services/iscsi

Create a new iSCSI gateway service.

# Parameters

  • bodyobjectoptional-
    • serversarrayoptional-
      • serverIdintegeroptional-
      • ipstringoptionalClient-facing IP address of this gateway, must be configured on the server.

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/iscsi

# Example body

{
  "servers": [
    {
      "serverId": 0,
      "ip": "string"
    }
  ]
}

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# PUT /services/iscsi/{serviceId}/clients/{name}

Configure a new iSCSI client

# Parameters

  • serviceIdintegerpath-
  • namestringpath-
  • bodyobjectoptional-
    • usernamestringoptional-
    • passwordstringoptional-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/iscsi/{serviceId}/clients/{name}

# Example body

{
  "username": "string",
  "password": "string"
}

# DELETE /services/iscsi/{serviceId}/clients/{name}

Delete an iSCSI client

# Parameters

  • serviceIdintegerpath-
  • namestringpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/iscsi/{serviceId}/clients/{name}

# PATCH /services/iscsi/{serviceId}/clients/{name}

Change a client's username/password

# Parameters

  • serviceIdintegerpath-
  • namestringpath-
  • bodyobjectoptional-
    • usernamestringoptional-
    • passwordstringoptional-

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/services/iscsi/{serviceId}/clients/{name}

# Example body

{
  "username": "string",
  "password": "string"
}

# PUT /services/iscsi/{serviceId}/clients/{name}/disks

Add new disk(s) to an iSCSI client

# Parameters

  • serviceIdintegerpath-
  • namestringpath-
  • bodybodyoptionalRBD image will be created if it doesn't exist yet

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/iscsi/{serviceId}/clients/{name}/disks

# Example body

[
  {
    "pool": "string",
    "name": "string",
    "size": 0
  }
]

# DELETE /services/iscsi/{serviceId}/clients/{name}/disks

Remove a disk from an iSCSI client

# Parameters

  • serviceIdintegerpath-
  • namestringpath-
  • bodyobjectoptional-
    • poolstringoptional-
    • namestringoptional-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/iscsi/{serviceId}/clients/{name}/disks

# Example body

{
  "pool": "string",
  "name": "string"
}

# PUT /services/iscsi/{serviceId}/groups/{group}

Create a new host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}

# DELETE /services/iscsi/{serviceId}/groups/{group}

Delete a host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}

# PUT /services/iscsi/{serviceId}/groups/{group}/disks

Add disks to a host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-
  • bodybodyoptional-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}/disks

# Example body

[
  {
    "pool": "string",
    "name": "string",
    "size": 0
  }
]

# DELETE /services/iscsi/{serviceId}/groups/{group}/disks

Remove a disk from a host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-
  • bodyobjectoptional-
    • poolstringoptional-
    • namestringoptional-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}/disks

# Example body

{
  "pool": "string",
  "name": "string"
}

# PUT /services/iscsi/{serviceId}/groups/{group}/hosts/{host}

Add a host to a host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-
  • hoststringpath-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}/hosts/{host}

# DELETE /services/iscsi/{serviceId}/groups/{group}/hosts/{host}

Remove a host from a host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-
  • hoststringpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}/hosts/{host}

# PUT /services/iscsi/{serviceId}/groups/{group}/hosts

Add hosts to a host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-
  • bodybodyoptional-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}/hosts

# Example body

[
  "string"
]

# DELETE /services/iscsi/{serviceId}/groups/{group}/hosts

Remove hosts from a host group.

# Parameters

  • serviceIdintegerpath-
  • groupstringpath-
  • bodybodyoptional-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/iscsi/{serviceId}/groups/{group}/hosts

# Example body

[
  "string"
]

# POST /services/iscsi/{serviceId}/terminal/connect

Connect to the ceph-iscsi config shell

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/iscsi/{serviceId}/terminal/connect

# Response 200

  • pathstringoptionalConnect here.
  • tlsPortintegeroptionalConnect to this port for TLS.
  • plaintextPortintegeroptionalConnect to this port for an unencrypted connection.
  • authTokenstringoptionalPass as Authorization header.
  • validUntilintegeroptionalURL is valid until this time, existing connections stay connected afterwards.
  • iscsibooleanoptionalWhether this is a connection to an iSCSI gateway.

# Example response

{
  "path": "string",
  "tlsPort": 0,
  "plaintextPort": 0,
  "authToken": "string",
  "validUntil": 0,
  "iscsi": true
}

# GET /services/nfs-gateways/{serviceId}

Get a NFS gateway configuration.

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/services/nfs-gateways/{serviceId}

# Response 200

  • serversarrayoptional-
  • exportsarrayoptional-
    • idintegeroptionalId of this export, assigned by the server on creation.
    • nfsPathstringoptionalThe path on the NFS server at which this export is available.
    • pathstringoptionalThe path to export.
    • accessarrayoptionalClients allowed to access this export.
      • subnetstringoptional-
      • rwbooleanoptional-

# Example response

{
  "servers": [
    0
  ],
  "exports": [
    {
      "id": 0,
      "nfsPath": "string",
      "path": "string",
      "access": [
        {
          "subnet": "string",
          "rw": true
        }
      ]
    }
  ]
}

# PATCH /services/nfs-gateways/{serviceId}

Update a NFS gateway service.

# Parameters

  • serviceIdintegerpath-
  • bodyobjectoptional-
    • serversarrayoptional-

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/services/nfs-gateways/{serviceId}

# Example body

{
  "servers": [
    0
  ]
}

# GET /services/nfs-gateways/{serviceId}/exports

Get exports of a NFS gateway.

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/services/nfs-gateways/{serviceId}/exports

# Response 200

  • idintegeroptionalId of this export, assigned by the server on creation.
  • nfsPathstringoptionalThe path on the NFS server at which this export is available.
  • pathstringoptionalThe path to export.
  • accessarrayoptionalClients allowed to access this export.
    • subnetstringoptional-
    • rwbooleanoptional-

# Example response

[
  {
    "id": 0,
    "nfsPath": "string",
    "path": "string",
    "access": [
      {
        "subnet": "string",
        "rw": true
      }
    ]
  }
]

# POST /services/nfs-gateways/{serviceId}/exports

Add an export to the NFS gateway.

# Parameters

  • serviceIdintegerpath-
  • bodyobjectoptional-
    • idintegeroptionalId of this export, assigned by the server on creation.
    • nfsPathstringoptionalThe path on the NFS server at which this export is available.
    • pathstringoptionalThe path to export.
    • accessarrayoptionalClients allowed to access this export.
      • subnetstringoptional-
      • rwbooleanoptional-

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/nfs-gateways/{serviceId}/exports

# Example body

{
  "id": 0,
  "nfsPath": "string",
  "path": "string",
  "access": [
    {
      "subnet": "string",
      "rw": true
    }
  ]
}

# Response 200

  • idintegeroptionalId of this export, assigned by the server on creation.
  • nfsPathstringoptionalThe path on the NFS server at which this export is available.
  • pathstringoptionalThe path to export.
  • accessarrayoptionalClients allowed to access this export.
    • subnetstringoptional-
    • rwbooleanoptional-

# Example response

{
  "id": 0,
  "nfsPath": "string",
  "path": "string",
  "access": [
    {
      "subnet": "string",
      "rw": true
    }
  ]
}

# GET /services/nfs-gateways/{serviceId}/servers

Get servers running this service.

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/services/nfs-gateways/{serviceId}/servers

# Response 200

# Example response

[
  0
]

# PUT /services/nfs-gateways/{serviceId}/exports/{exportId}

Replace an export entry on the NFS gateway.

# Parameters

  • serviceIdintegerpath-
  • exportIdintegerpath-
  • bodyobjectoptional-
    • idintegeroptionalId of this export, assigned by the server on creation.
    • nfsPathstringoptionalThe path on the NFS server at which this export is available.
    • pathstringoptionalThe path to export.
    • accessarrayoptionalClients allowed to access this export.
      • subnetstringoptional-
      • rwbooleanoptional-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/nfs-gateways/{serviceId}/exports/{exportId}

# Example body

{
  "id": 0,
  "nfsPath": "string",
  "path": "string",
  "access": [
    {
      "subnet": "string",
      "rw": true
    }
  ]
}

# DELETE /services/nfs-gateways/{serviceId}/exports/{exportId}

Remove an export entry from the NFS gateway.

# Parameters

  • serviceIdintegerpath-
  • exportIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/nfs-gateways/{serviceId}/exports/{exportId}

# POST /services/nfs-gateways

Create a new NFS gateway service.

# Parameters

  • bodyobjectoptional-
    • serversarrayoptional-
    • exportsarrayoptional-
      • idintegeroptionalId of this export, assigned by the server on creation.
      • nfsPathstringoptionalThe path on the NFS server at which this export is available.
      • pathstringoptionalThe path to export.
      • accessarrayoptionalClients allowed to access this export.
        • subnetstringoptional-
        • rwbooleanoptional-

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/nfs-gateways

# Example body

{
  "servers": [
    0
  ],
  "exports": [
    {
      "id": 0,
      "nfsPath": "string",
      "path": "string",
      "access": [
        {
          "subnet": "string",
          "rw": true
        }
      ]
    }
  ]
}

# Response 200

  • idintegeroptional-

# Example response

{
  "id": 0
}

# DELETE /servers/{id}/disks/{diskId}

# Parameters

  • idintegerpath-
  • diskIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/servers/{id}/disks/{diskId}

# PATCH /servers/{id}/disks/{diskId}

# Parameters

  • idintegerpath-
  • diskIdintegerpath-
  • bodyobjectoptional-
    • rolestringoptional[unassigned, mon, osd, journal, other, raid, deleting, updating, mon_unused, old_osd, old_mon]
    • partitionsintegeroptional-
    • journalDiskintegeroptional-
    • osdStoreBackendstringoptional[Filestore, Bluestore]
    • encryptedbooleanoptional-
    • reuseOsdIdintegeroptional-
    • crushDeviceClassstringoptional-

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/servers/{id}/disks/{diskId}

# Example body

{
  "role": "unassigned",
  "partitions": 0,
  "journalDisk": 0,
  "osdStoreBackend": "Filestore",
  "encrypted": true,
  "reuseOsdId": 0,
  "crushDeviceClass": "string"
}

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# DELETE /servers/{id}/nics/{nicId}

# Parameters

  • idintegerpath-
  • nicIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/servers/{id}/nics/{nicId}

# PATCH /servers/{id}/nics/{nicId}

# Parameters

  • idintegerpath-
  • nicIdintegerpath-
  • bodyobjectoptional-
    • ipstringoptional-
    • ip6stringoptional-

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/servers/{id}/nics/{nicId}

# Example body

{
  "ip": "string",
  "ip6": "string"
}

# GET /servers

# Parameters

  • No parameters...

# Endpoint

curl -X GET http://mgmt-node:8080/api/servers

# Response 200

  • idintegeroptional-
  • hostnamestringoptional-
  • statestringoptional[booting, running, offline, rebooting]
  • macstringoptional-
  • ipstringoptional-
  • imagestringoptional-
  • hardwareobjectoptional-
    • ramnumberoptional-
    • cpustringoptional-
    • cpusintegeroptional-
    • coresPerCpuintegeroptional-
    • cpuFreqnumberoptional-
    • mainboardstringoptional-
    • mainboardSerialstringoptional-
  • lastSeennumberoptionalDuration in seconds.
  • servicesobjectoptionalNumber of services configured on the server by type.
  • servicesRunningobjectoptionalNumber of services currently running on the server by type.
  • osdsintegeroptionalNumber of disks currently mounted as OSD.
  • osdsRunningintegeroptionalNumber of OSD daemons currently running.
  • ipsarrayoptionalIPs configured on all NICs, only these are valid for the main IP.
  • healthobjectoptional-
    • uptimenumberoptionalDuration in seconds.
    • hwDetectTimenumberoptionalDuration in seconds.
    • cephDiskProcsintegeroptional-
    • runningImagestringoptional-
  • hostVarsobjectoptional-

# Example response

[
  {
    "id": 0,
    "hostname": "string",
    "state": "booting",
    "mac": "string",
    "ip": "string",
    "image": "string",
    "hardware": {
      "ram": ,
      "cpu": "string",
      "cpus": 0,
      "coresPerCpu": 0,
      "cpuFreq": ,
      "mainboard": "string",
      "mainboardSerial": "string"
    },
    "lastSeen": ,
    "services": {},
    "servicesRunning": {},
    "osds": 0,
    "osdsRunning": 0,
    "ips": [
      "string"
    ],
    "health": {
      "uptime": ,
      "hwDetectTime": ,
      "cephDiskProcs": 0,
      "runningImage": "string"
    },
    "hostVars": {}
  }
]

# GET /servers/{id}/nics/{nicId}/vlans

# Parameters

  • idintegerpath-
  • nicIdintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/servers/{id}/nics/{nicId}/vlans

# Response 200

  • idintegeroptional-
  • nicintegeroptional-
  • vlanintegeroptional-
  • ipstringoptional-
  • ip6stringoptional-

# Example response

[
  {
    "id": 0,
    "nic": 0,
    "vlan": 0,
    "ip": "string",
    "ip6": "string"
  }
]

# POST /servers/{id}/nics/{nicId}/vlans

# Parameters

  • idintegerpath-
  • nicIdintegerpath-
  • bodyobjectoptional-
    • vlanintegeroptional-
    • ipstringoptional-
    • ip6stringoptional-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{id}/nics/{nicId}/vlans

# Example body

{
  "vlan": 0,
  "ip": "string",
  "ip6": "string"
}

# DELETE /servers/{id}/nics/{nicId}/vlans/{vlanId}

# Parameters

  • idintegerpath-
  • nicIdintegerpath-
  • vlanIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/servers/{id}/nics/{nicId}/vlans/{vlanId}

# PATCH /servers/{id}/nics/{nicId}/vlans/{vlanId}

# Parameters

  • idintegerpath-
  • nicIdintegerpath-
  • vlanIdintegerpath-
  • bodyobjectoptional-
    • vlanintegeroptional-
    • ipstringoptional-
    • ip6stringoptional-

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/servers/{id}/nics/{nicId}/vlans/{vlanId}

# Example body

{
  "vlan": 0,
  "ip": "string",
  "ip6": "string"
}

# DELETE /servers/{id}

# Parameters

  • idintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/servers/{id}

# PATCH /servers/{id}

# Parameters

  • idintegerpath-
  • bodyobjectoptional-
    • hostnamestringoptional-
    • ipstringoptional-
    • imagestringoptional-

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/servers/{id}

# Example body

{
  "hostname": "string",
  "ip": "string",
  "image": "string"
}

# GET /servers/{id}/services

# Parameters

  • idintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/servers/{id}/services

# Response 200

  • idstringoptional-
  • typestringoptional[osd, mon, mgr, radosgw, mds, nfs_gateway, iscsi, smb, unknown]
  • statestringoptional[creating, enabled, disabled, creation_failed]
  • serverintegeroptional-
  • ipstringoptional-
  • runningbooleanoptional-

# Example response

[
  {
    "id": "string",
    "type": "osd",
    "state": "creating",
    "server": 0,
    "ip": "string",
    "running": true
  }
]

# GET /servers/{id}/nics

# Parameters

  • idintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/servers/{id}/nics

# Response 200

  • idintegeroptional-
  • serverintegeroptional-
  • macstringoptional-
  • speednumberoptional-
  • namestringoptional-
  • ipstringoptional-
  • ip6stringoptional-
  • typestringoptional[normal, bond]
  • bondedNicsarrayoptional-
  • lastSeennumberoptionalDuration in seconds.
  • serverLastSeennumberoptionalDuration in seconds.
  • vlansarrayoptional-
    • idintegeroptional-
    • nicintegeroptional-
    • vlanintegeroptional-
    • ipstringoptional-
    • ip6stringoptional-
  • linuxNamestringoptional-
  • lldpobjectoptional-
    • chassisobjectoptional-
    • portobjectoptional-
      • idobjectoptional-
        • typestringoptional-
        • valuestringoptional-
      • descrstringoptional-
  • bondTypestringoptional[lacp, active_passive]
  • bondPrimaryintegeroptional-

# Example response

[
  {
    "id": 0,
    "server": 0,
    "mac": "string",
    "speed": ,
    "name": "string",
    "ip": "string",
    "ip6": "string",
    "type": "normal",
    "bondedNics": [
      0
    ],
    "lastSeen": ,
    "serverLastSeen": ,
    "vlans": [
      {
        "id": 0,
        "nic": 0,
        "vlan": 0,
        "ip": "string",
        "ip6": "string"
      }
    ],
    "linuxName": "string",
    "lldp": {
      "chassis": {},
      "port": {
        "id": {
          "type": "string",
          "value": "string"
        },
        "descr": "string"
      }
    },
    "bondType": "lacp",
    "bondPrimary": 0
  }
]

# GET /servers/nics

# Parameters

  • No parameters...

# Endpoint

curl -X GET http://mgmt-node:8080/api/servers/nics

# Response 200

  • idintegeroptional-
  • serverintegeroptional-
  • macstringoptional-
  • speednumberoptional-
  • namestringoptional-
  • ipstringoptional-
  • ip6stringoptional-
  • typestringoptional[normal, bond]
  • bondedNicsarrayoptional-
  • lastSeennumberoptionalDuration in seconds.
  • serverLastSeennumberoptionalDuration in seconds.
  • vlansarrayoptional-
    • idintegeroptional-
    • nicintegeroptional-
    • vlanintegeroptional-
    • ipstringoptional-
    • ip6stringoptional-
  • linuxNamestringoptional-
  • lldpobjectoptional-
    • chassisobjectoptional-
    • portobjectoptional-
      • idobjectoptional-
        • typestringoptional-
        • valuestringoptional-
      • descrstringoptional-
  • bondTypestringoptional[lacp, active_passive]
  • bondPrimaryintegeroptional-

# Example response

[
  {
    "id": 0,
    "server": 0,
    "mac": "string",
    "speed": ,
    "name": "string",
    "ip": "string",
    "ip6": "string",
    "type": "normal",
    "bondedNics": [
      0
    ],
    "lastSeen": ,
    "serverLastSeen": ,
    "vlans": [
      {
        "id": 0,
        "nic": 0,
        "vlan": 0,
        "ip": "string",
        "ip6": "string"
      }
    ],
    "linuxName": "string",
    "lldp": {
      "chassis": {},
      "port": {
        "id": {
          "type": "string",
          "value": "string"
        },
        "descr": "string"
      }
    },
    "bondType": "lacp",
    "bondPrimary": 0
  }
]

# POST /servers/{id}/nics/bonds

# Parameters

  • idintegerpath-
  • bodyobjectoptional-
    • namestringoptional-
    • nicsarrayoptional-
    • activePassivebooleanoptional-
    • primaryintegeroptional-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{id}/nics/bonds

# Example body

{
  "name": "string",
  "nics": [
    0
  ],
  "activePassive": true,
  "primary": 0
}

# POST /servers/{serverId}/services/mon

# Parameters

  • serverIdintegerpath-
  • bodyobjectoptional-
    • ipstringoptional-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{serverId}/services/mon

# Example body

{
  "ip": "string"
}

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# POST /servers/{serverId}/services/mds

# Parameters

  • serverIdintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{serverId}/services/mds

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# POST /servers/{serverId}/services/rgw

# Parameters

  • serverIdintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{serverId}/services/rgw

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# DELETE /servers/{id}/services/{serviceId}

# Parameters

  • idintegerpath-
  • serviceIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/servers/{id}/services/{serviceId}

# Response 200

  • objectstringoptional-
  • idintegeroptional-
  • donebooleanoptional-
  • statusCodeintegeroptional-
  • startedAtintegeroptional-
  • startedBystringoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • outputstringoptional-

# Example response

{
  "object": "string",
  "id": 0,
  "done": true,
  "statusCode": 0,
  "startedAt": 0,
  "startedBy": "string",
  "name": "string",
  "state": "WAITING",
  "output": "string"
}

# POST /servers/{id}/reboot

# Parameters

  • idintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{id}/reboot

# POST /servers/{id}/shutdown

# Parameters

  • idintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{id}/shutdown

# POST /servers/reboot

# Parameters

  • bodyobjectoptional-
    • serversarrayoptional-
    • rebootTypestringoptional[FULL, QUICK]

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/reboot

# Example body

{
  "servers": [
    0
  ],
  "rebootType": "FULL"
}

# Response 200

  • objectstringoptional-
  • donebooleanoptional-
  • idintegeroptional-
  • statusCodeintegeroptional-
  • startedAtintegeroptional-
  • startedBystringoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • outputstringoptional-

# Example response

{
  "object": "string",
  "done": true,
  "id": 0,
  "statusCode": 0,
  "startedAt": 0,
  "startedBy": "string",
  "name": "string",
  "state": "WAITING",
  "output": "string"
}

# DELETE /servers/{id}/disks/{diskId}/wipe

# Parameters

  • idintegerpath-
  • diskIdintegerpath-
  • bodyobjectoptional-
    • serialstringoptional-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/servers/{id}/disks/{diskId}/wipe

# Example body

{
  "serial": "string"
}

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# POST /servers/{id}/redetect

# Parameters

  • idintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{id}/redetect

# POST /servers/{serverId}/services/{type}/{serviceId}/start

Start a service.

# Parameters

  • serverIdintegerpath-
  • typestringpath[osds, mons, radosgws, mds, mgrs, nfs_gateways, iscsis, smbs]
  • serviceIdintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{serverId}/services/{type}/{serviceId}/start

# POST /servers/{serverId}/services/{type}/{serviceId}/stop

Stop a service.

# Parameters

  • serverIdintegerpath-
  • typestringpath[osds, mons, radosgws, mds, mgrs, nfs_gateways, iscsis, smbs]
  • serviceIdintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{serverId}/services/{type}/{serviceId}/stop

# POST /servers/{serverId}/services/{type}/{serviceId}/restart

Restart a service.

# Parameters

  • serverIdintegerpath-
  • typestringpath[osds, mons, radosgws, mds, mgrs, nfs_gateways, iscsis, smbs]
  • serviceIdintegerpath-

# Endpoint

curl -X POST http://mgmt-node:8080/api/servers/{serverId}/services/{type}/{serviceId}/restart

# PATCH /servers/{serverId}/ipmi/leds/chassis

Enable the locate LED.

# Parameters

  • serverIdintegerpath-
  • bodyobjectoptional-
    • ledStatebooleanoptional-

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/servers/{serverId}/ipmi/leds/chassis

# Example body

{
  "ledState": true
}

# GET /servers/{id}/disks

# Parameters

  • idintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/servers/{id}/disks

# Response 200

  • idintegeroptional-
  • hostnamestringoptional-
  • serverintegeroptional-
  • rolestringoptional[unassigned, mon, osd, journal, other, raid, deleting, updating, mon_unused, old_osd, old_mon]
  • serialstringoptional-
  • capacityintegeroptional-
  • namestringoptional-
  • pathstringoptional-
  • infostringoptional-
  • deviceClassstringoptional[hdd, ssd, nvme]
  • lastSeennumberoptionalDuration in seconds.
  • serverLastSeennumberoptionalDuration in seconds.
  • partitionsintegeroptional-
  • usedPartitionsintegeroptional-
  • journalDiskintegeroptional-
  • journalPartitionintegeroptional-
  • osdIdintegeroptional-
  • smartobjectoptional-
    • statusstringoptional-
    • detailsstringoptional-
  • missingbooleanoptional-
  • daemonRunningbooleanoptional-
  • bluestorebooleanoptional-
  • wwnstringoptional-
  • encryptedbooleanoptional-

# Example response

[
  {
    "id": 0,
    "hostname": "string",
    "server": 0,
    "role": "unassigned",
    "serial": "string",
    "capacity": 0,
    "name": "string",
    "path": "string",
    "info": "string",
    "deviceClass": "hdd",
    "lastSeen": ,
    "serverLastSeen": ,
    "partitions": 0,
    "usedPartitions": 0,
    "journalDisk": 0,
    "journalPartition": 0,
    "osdId": 0,
    "smart": {
      "status": "string",
      "details": "string"
    },
    "missing": true,
    "daemonRunning": true,
    "bluestore": true,
    "wwn": "string",
    "encrypted": true
  }
]

# POST /services/smb

Create a new SMB gateway service.

# Parameters

  • bodyobjectoptional-
    • serversarrayoptional-
      • serverintegeroptional-
      • nicintegeroptionalInterface on which HA virtual IPs will be bound.
      • vlanintegeroptionalVLAN tag on the selected interface.
    • virtualIpsarrayoptionalVirtual IP addresses to be distributed evenly across all healthy servers.
    • adminPasswordstringoptionalPassword of the croit admin user.
    • readonlyPasswordstringoptionalPassword of the croit-read read-only user.
    • sharesarrayoptional-
      • sharestringoptionalName of the SMB share.
      • pathstringoptionalPath in CephFS to export.
      • guestbooleanoptionalEnable access for the guest user.
      • rwbooleanoptionalEnable access for the admin/croit user.
      • robooleanoptionalEnable access for the croit-ro user.
      • idintegeroptionalUnique ID of this share, will be created by the server

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/smb

# Example body

{
  "servers": [
    {
      "server": 0,
      "nic": 0,
      "vlan": 0
    }
  ],
  "virtualIps": [
    "string"
  ],
  "adminPassword": "string",
  "readonlyPassword": "string",
  "shares": [
    {
      "share": "string",
      "path": "string",
      "guest": true,
      "rw": true,
      "ro": true,
      "id": 0
    }
  ]
}

# Response 200

  • idintegeroptional-

# Example response

{
  "id": 0
}

# GET /services/smb/{serviceId}

Get SMB gateway config and state.

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X GET http://mgmt-node:8080/api/services/smb/{serviceId}

# Response 200

  • serversarrayoptional-
    • serverintegeroptional-
    • nicintegeroptionalInterface on which HA virtual IPs will be bound.
    • vlanintegeroptionalVLAN tag on the selected interface.
    • virtualIpsarrayoptionalVirtual IPs currently bound on the server.
    • healthybooleanoptionaltrue if all health checks succeeded.
  • virtualIpsarrayoptionalVirtual IP addresses to be distributed evenly across all healthy servers.
  • sharesarrayoptional-
    • sharestringoptionalName of the SMB share.
    • pathstringoptionalPath in CephFS to export.
    • guestbooleanoptionalEnable access for the guest user.
    • rwbooleanoptionalEnable access for the admin/croit user.
    • robooleanoptionalEnable access for the croit-ro user.
    • idintegeroptionalUnique ID of this share, will be created by the server

# Example response

{
  "servers": [
    {
      "server": 0,
      "nic": 0,
      "vlan": 0,
      "virtualIps": [
        "string"
      ],
      "healthy": true
    }
  ],
  "virtualIps": [
    "string"
  ],
  "shares": [
    {
      "share": "string",
      "path": "string",
      "guest": true,
      "rw": true,
      "ro": true,
      "id": 0
    }
  ]
}

# DELETE /services/smb/{serviceId}

Delete an SMB gateway.

# Parameters

  • serviceIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/smb/{serviceId}

# PATCH /services/smb/{serviceId}

Update an SMB gateway.

# Parameters

  • serviceIdintegerpath-
  • bodyobjectoptional-
    • virtualIpsarrayoptionalVirtual IP addresses to be distributed evenly across all healthy servers.
    • adminPasswordstringoptionalPassword of the croit admin user.
    • readonlyPasswordstringoptionalPassword of the croit-read read-only user.

# Endpoint

curl -X PATCH http://mgmt-node:8080/api/services/smb/{serviceId}

# Example body

{
  "virtualIps": [
    "string"
  ],
  "adminPassword": "string",
  "readonlyPassword": "string"
}

# POST /services/smb/{serviceId}/shares

Add a share to an SMB gateway.

# Parameters

  • serviceIdintegerpath-
  • bodyobjectoptional-
    • sharestringoptionalName of the SMB share.
    • pathstringoptionalPath in CephFS to export.
    • guestbooleanoptionalEnable access for the guest user.
    • rwbooleanoptionalEnable access for the admin/croit user.
    • robooleanoptionalEnable access for the croit-ro user.
    • idintegeroptionalUnique ID of this share, will be created by the server

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/smb/{serviceId}/shares

# Example body

{
  "share": "string",
  "path": "string",
  "guest": true,
  "rw": true,
  "ro": true,
  "id": 0
}

# Response 200

  • idintegeroptional-

# Example response

{
  "id": 0
}

# PUT /services/smb/{serviceId}/shares/{shareId}

Replace a share on an SMB gateway.

# Parameters

  • serviceIdintegerpath-
  • shareIdintegerpath-
  • bodyobjectoptional-
    • sharestringoptionalName of the SMB share.
    • pathstringoptionalPath in CephFS to export.
    • guestbooleanoptionalEnable access for the guest user.
    • rwbooleanoptionalEnable access for the admin/croit user.
    • robooleanoptionalEnable access for the croit-ro user.
    • idintegeroptionalUnique ID of this share, will be created by the server

# Endpoint

curl -X PUT http://mgmt-node:8080/api/services/smb/{serviceId}/shares/{shareId}

# Example body

{
  "share": "string",
  "path": "string",
  "guest": true,
  "rw": true,
  "ro": true,
  "id": 0
}

# DELETE /services/smb/{serviceId}/shares/{shareId}

Remove a share from an SMB gateway.

# Parameters

  • serviceIdintegerpath-
  • shareIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/smb/{serviceId}/shares/{shareId}

# POST /services/smb/{serviceId}/servers

Add a server to an SMB gateway.

# Parameters

  • serviceIdintegerpath-
  • bodyobjectoptional-
    • serverintegeroptional-
    • nicintegeroptionalInterface on which HA virtual IPs will be bound.
    • vlanintegeroptionalVLAN tag on the selected interface.

# Endpoint

curl -X POST http://mgmt-node:8080/api/services/smb/{serviceId}/servers

# Example body

{
  "server": 0,
  "nic": 0,
  "vlan": 0
}

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# DELETE /services/smb/{serviceId}/servers/{serverId}

Remove a server from an SMB gateway.

# Parameters

  • serviceIdintegerpath-
  • serverIdintegerpath-

# Endpoint

curl -X DELETE http://mgmt-node:8080/api/services/smb/{serviceId}/servers/{serverId}

# Response 200

  • statusCodeintegeroptional-
  • idintegeroptional-
  • startedBystringoptional-
  • startedAtintegeroptional-
  • donebooleanoptional-
  • namestringoptional-
  • statestringoptional[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstringoptional-
  • outputstringoptional-

# Example response

{
  "statusCode": 0,
  "id": 0,
  "startedBy": "string",
  "startedAt": 0,
  "done": true,
  "name": "string",
  "state": "WAITING",
  "object": "string",
  "output": "string"
}

# GET /ssh/host-keys

# Parameters

  • No parameters...

# Endpoint

curl -X GET http://mgmt-node:8080/api/ssh/host-keys

# Response 200

# Example response

{}

# GET /ssh/keys

# Parameters

  • No parameters...

# Endpoint

curl -X GET http://mgmt-node:8080/api/ssh/keys

# Response 200

# Example response

[
  "string"
]

# PUT /ssh/keys

# Parameters

  • bodyobjectoptional-
    • keysarrayoptional-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/ssh/keys

# Example body

{
  "keys": [
    "string"
  ]
}

# GET /ssh/support-key

# Parameters

  • No parameters...

# Endpoint

curl -X GET http://mgmt-node:8080/api/ssh/support-key

# Response 200

  • enabledbooleanoptional-

# Example response

{
  "enabled": true
}

# PUT /ssh/support-key

# Parameters

  • bodyobjectoptional-
    • enabledbooleanoptional-

# Endpoint

curl -X PUT http://mgmt-node:8080/api/ssh/support-key

# Example body

{
  "enabled": true
}