# 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

  • idinteger-
  • hostnamestring-
  • serverinteger-
  • rolestring[unassigned, mon, osd, journal, other, raid, deleting, updating, mon_unused, old_osd, old_mon]
  • serialstring-
  • capacityinteger-
  • namestring-
  • pathstring-
  • infostring-
  • deviceClassstring[hdd, ssd, nvme]
  • lastSeennumberDuration in seconds.
  • serverLastSeennumberDuration in seconds.
  • partitionsinteger-
  • usedPartitionsinteger-
  • journalDiskinteger-
  • journalPartitioninteger-
  • osdIdinteger-
  • smartobject-
    • statusstring-
    • detailsstring-
  • missingboolean-
  • daemonRunningboolean-
  • bluestoreboolean-
  • wwnstring-
  • encryptedboolean-

# 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

  • diskIdinteger-

# Endpoint

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

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

# Parameters

  • diskIdinteger-

# Endpoint

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

# Response 200

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • serviceIdinteger-

# Endpoint

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

# Response 200

  • iqnstring-
  • gatewaysarray-
    • namestring-
    • ipstring-
  • clientsarray-
    • namestring-
    • groupstring-
    • usernamestring-
    • passwordstring-
    • lunsarray-
      • poolstring-
      • imagestring-
      • idinteger-
      • wwnstring-
  • groupsarray-
    • namestring-
    • membersarray-
    • lunsarray-
      • poolstring-
      • imagestring-
      • idinteger-
      • wwnstring-

# 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

  • serviceIdinteger-
  • bodyobject-
    • serverIdinteger-
    • ipstringClient-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

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • serviceIdinteger-

# Endpoint

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

# POST /services/iscsi

Create a new iSCSI gateway service.

# Parameters

  • bodyobject-
    • serversarray-
      • serverIdinteger-
      • ipstringClient-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

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • serviceIdinteger-
  • namestring-
  • bodyobject-
    • usernamestring-
    • passwordstring-

# 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

  • serviceIdinteger-
  • namestring-

# 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

  • serviceIdinteger-
  • namestring-
  • bodyobject-
    • usernamestring-
    • passwordstring-

# 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

  • serviceIdinteger-
  • namestring-
  • bodyRBD 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

  • serviceIdinteger-
  • namestring-
  • bodyobject-
    • poolstring-
    • namestring-

# 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

  • serviceIdinteger-
  • groupstring-

# 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

  • serviceIdinteger-
  • groupstring-

# 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

  • serviceIdinteger-
  • groupstring-
  • body-

# 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

  • serviceIdinteger-
  • groupstring-
  • bodyobject-
    • poolstring-
    • namestring-

# 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

  • serviceIdinteger-
  • groupstring-
  • hoststring-

# 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

  • serviceIdinteger-
  • groupstring-
  • hoststring-

# 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

  • serviceIdinteger-
  • groupstring-
  • body-

# 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

  • serviceIdinteger-
  • groupstring-
  • body-

# 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

  • serviceIdinteger-

# Endpoint

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

# Response 200

  • pathstringConnect here.
  • tlsPortintegerConnect to this port for TLS.
  • plaintextPortintegerConnect to this port for an unencrypted connection.
  • authTokenstringPass as Authorization header.
  • validUntilintegerURL is valid until this time, existing connections stay connected afterwards.
  • iscsibooleanWhether 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

  • serviceIdinteger-

# Endpoint

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

# Response 200

  • serversarray-
  • exportsarray-
    • idintegerId of this export, assigned by the server on creation.
    • nfsPathstringThe path on the NFS server at which this export is available.
    • pathstringThe path to export.
    • accessarrayClients allowed to access this export.
      • subnetstring-
      • rwboolean-

# 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

  • serviceIdinteger-
  • bodyobject-
    • serversarray-

# 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

  • serviceIdinteger-

# Endpoint

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

# Response 200

  • idintegerId of this export, assigned by the server on creation.
  • nfsPathstringThe path on the NFS server at which this export is available.
  • pathstringThe path to export.
  • accessarrayClients allowed to access this export.
    • subnetstring-
    • rwboolean-

# 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

  • serviceIdinteger-
  • bodyobject-
    • idintegerId of this export, assigned by the server on creation.
    • nfsPathstringThe path on the NFS server at which this export is available.
    • pathstringThe path to export.
    • accessarrayClients allowed to access this export.
      • subnetstring-
      • rwboolean-

# 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

  • idintegerId of this export, assigned by the server on creation.
  • nfsPathstringThe path on the NFS server at which this export is available.
  • pathstringThe path to export.
  • accessarrayClients allowed to access this export.
    • subnetstring-
    • rwboolean-

# 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

  • serviceIdinteger-

# 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

  • serviceIdinteger-
  • exportIdinteger-
  • bodyobject-
    • idintegerId of this export, assigned by the server on creation.
    • nfsPathstringThe path on the NFS server at which this export is available.
    • pathstringThe path to export.
    • accessarrayClients allowed to access this export.
      • subnetstring-
      • rwboolean-

# 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

  • serviceIdinteger-
  • exportIdinteger-

# 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

  • bodyobject-
    • serversarray-
    • exportsarray-
      • idintegerId of this export, assigned by the server on creation.
      • nfsPathstringThe path on the NFS server at which this export is available.
      • pathstringThe path to export.
      • accessarrayClients allowed to access this export.
        • subnetstring-
        • rwboolean-

# 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

  • idinteger-

# Example response

{
  "id": 0
}

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

# Parameters

  • idinteger-
  • diskIdinteger-

# Endpoint

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

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

# Parameters

  • idinteger-
  • diskIdinteger-
  • bodyobject-
    • rolestring[unassigned, mon, osd, journal, other, raid, deleting, updating, mon_unused, old_osd, old_mon]
    • partitionsinteger-
    • journalDiskinteger-
    • osdStoreBackendstring[Filestore, Bluestore]
    • encryptedboolean-
    • reuseOsdIdinteger-
    • crushDeviceClassstring-

# 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

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • idinteger-
  • nicIdinteger-

# Endpoint

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

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

# Parameters

  • idinteger-
  • nicIdinteger-
  • bodyobject-
    • ipstring-
    • ip6string-

# 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

  • idinteger-
  • hostnamestring-
  • statestring[booting, running, offline, rebooting]
  • macstring-
  • ipstring-
  • imagestring-
  • hardwareobject-
    • ramnumber-
    • cpustring-
    • cpusinteger-
    • coresPerCpuinteger-
    • cpuFreqnumber-
    • mainboardstring-
    • mainboardSerialstring-
  • lastSeennumberDuration in seconds.
  • servicesobjectNumber of services configured on the server by type.
  • servicesRunningobjectNumber of services currently running on the server by type.
  • osdsintegerNumber of disks currently mounted as OSD.
  • osdsRunningintegerNumber of OSD daemons currently running.
  • ipsarrayIPs configured on all NICs, only these are valid for the main IP.
  • healthobject-
    • uptimenumberDuration in seconds.
    • hwDetectTimenumberDuration in seconds.
    • cephDiskProcsinteger-
    • runningImagestring-
  • hostVarsobject-

# 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

  • idinteger-
  • nicIdinteger-

# Endpoint

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

# Response 200

  • idinteger-
  • nicinteger-
  • vlaninteger-
  • ipstring-
  • ip6string-

# Example response

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

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

# Parameters

  • idinteger-
  • nicIdinteger-
  • bodyobject-
    • vlaninteger-
    • ipstring-
    • ip6string-

# 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

  • idinteger-
  • nicIdinteger-
  • vlanIdinteger-

# Endpoint

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

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

# Parameters

  • idinteger-
  • nicIdinteger-
  • vlanIdinteger-
  • bodyobject-
    • vlaninteger-
    • ipstring-
    • ip6string-

# 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

  • idinteger-

# Endpoint

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

# PATCH /servers/{id}

# Parameters

  • idinteger-
  • bodyobject-
    • hostnamestring-
    • ipstring-
    • imagestring-

# Endpoint

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

# Example body

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

# GET /servers/{id}/services

# Parameters

  • idinteger-

# Endpoint

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

# Response 200

  • idstring-
  • typestring[osd, mon, mgr, radosgw, mds, nfs_gateway, iscsi, smb, unknown]
  • statestring[creating, enabled, disabled, creation_failed]
  • serverinteger-
  • ipstring-
  • runningboolean-

# Example response

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

# GET /servers/{id}/nics

# Parameters

  • idinteger-

# Endpoint

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

# Response 200

  • idinteger-
  • serverinteger-
  • macstring-
  • speednumber-
  • namestring-
  • ipstring-
  • ip6string-
  • typestring[normal, bond]
  • bondedNicsarray-
  • lastSeennumberDuration in seconds.
  • serverLastSeennumberDuration in seconds.
  • vlansarray-
    • idinteger-
    • nicinteger-
    • vlaninteger-
    • ipstring-
    • ip6string-
  • linuxNamestring-
  • lldpobject-
    • chassisobject-
    • portobject-
      • idobject-
        • typestring-
        • valuestring-
      • descrstring-
  • bondTypestring[lacp, active_passive]
  • bondPrimaryinteger-

# 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

  • idinteger-
  • serverinteger-
  • macstring-
  • speednumber-
  • namestring-
  • ipstring-
  • ip6string-
  • typestring[normal, bond]
  • bondedNicsarray-
  • lastSeennumberDuration in seconds.
  • serverLastSeennumberDuration in seconds.
  • vlansarray-
    • idinteger-
    • nicinteger-
    • vlaninteger-
    • ipstring-
    • ip6string-
  • linuxNamestring-
  • lldpobject-
    • chassisobject-
    • portobject-
      • idobject-
        • typestring-
        • valuestring-
      • descrstring-
  • bondTypestring[lacp, active_passive]
  • bondPrimaryinteger-

# 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

  • idinteger-
  • bodyobject-
    • namestring-
    • nicsarray-
    • activePassiveboolean-
    • primaryinteger-

# 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

  • serverIdinteger-
  • bodyobject-
    • ipstring-

# Endpoint

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

# Example body

{
  "ip": "string"
}

# Response 200

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • serverIdinteger-

# Endpoint

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

# Response 200

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • serverIdinteger-

# Endpoint

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

# Response 200

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • idinteger-
  • serviceIdinteger-

# Endpoint

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

# Response 200

  • objectstring-
  • idinteger-
  • doneboolean-
  • statusCodeinteger-
  • startedAtinteger-
  • startedBystring-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • outputstring-

# 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

  • idinteger-

# Endpoint

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

# POST /servers/{id}/shutdown

# Parameters

  • idinteger-

# Endpoint

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

# POST /servers/reboot

# Parameters

  • bodyobject-
    • serversarray-
    • rebootTypestring[FULL, QUICK]

# Endpoint

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

# Example body

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

# Response 200

  • objectstring-
  • doneboolean-
  • idinteger-
  • statusCodeinteger-
  • startedAtinteger-
  • startedBystring-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • outputstring-

# 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

  • idinteger-
  • diskIdinteger-
  • bodyobject-
    • serialstring-

# Endpoint

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

# Example body

{
  "serial": "string"
}

# Response 200

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • idinteger-

# Endpoint

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

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

Start a service.

# Parameters

  • serverIdinteger-
  • typestring[osds, mons, radosgws, mds, mgrs, nfs_gateways, iscsis, smbs]
  • serviceIdinteger-

# 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

  • serverIdinteger-
  • typestring[osds, mons, radosgws, mds, mgrs, nfs_gateways, iscsis, smbs]
  • serviceIdinteger-

# 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

  • serverIdinteger-
  • typestring[osds, mons, radosgws, mds, mgrs, nfs_gateways, iscsis, smbs]
  • serviceIdinteger-

# 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

  • serverIdinteger-
  • bodyobject-
    • ledStateboolean-

# Endpoint

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

# Example body

{
  "ledState": true
}

# GET /servers/{id}/disks

# Parameters

  • idinteger-

# Endpoint

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

# Response 200

  • idinteger-
  • hostnamestring-
  • serverinteger-
  • rolestring[unassigned, mon, osd, journal, other, raid, deleting, updating, mon_unused, old_osd, old_mon]
  • serialstring-
  • capacityinteger-
  • namestring-
  • pathstring-
  • infostring-
  • deviceClassstring[hdd, ssd, nvme]
  • lastSeennumberDuration in seconds.
  • serverLastSeennumberDuration in seconds.
  • partitionsinteger-
  • usedPartitionsinteger-
  • journalDiskinteger-
  • journalPartitioninteger-
  • osdIdinteger-
  • smartobject-
    • statusstring-
    • detailsstring-
  • missingboolean-
  • daemonRunningboolean-
  • bluestoreboolean-
  • wwnstring-
  • encryptedboolean-

# 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

  • bodyobject-
    • serversarray-
      • serverinteger-
      • nicintegerInterface on which HA virtual IPs will be bound.
      • vlanintegerVLAN tag on the selected interface.
    • virtualIpsarrayVirtual IP addresses to be distributed evenly across all healthy servers.
    • adminPasswordstringPassword of the croit admin user.
    • readonlyPasswordstringPassword of the croit-read read-only user.
    • sharesarray-
      • sharestringName of the SMB share.
      • pathstringPath in CephFS to export.
      • guestbooleanEnable access for the guest user.
      • rwbooleanEnable access for the admin/croit user.
      • robooleanEnable access for the croit-ro user.
      • idintegerUnique 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

  • idinteger-

# Example response

{
  "id": 0
}

# GET /services/smb/{serviceId}

Get SMB gateway config and state.

# Parameters

  • serviceIdinteger-

# Endpoint

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

# Response 200

  • serversarray-
    • serverinteger-
    • nicintegerInterface on which HA virtual IPs will be bound.
    • vlanintegerVLAN tag on the selected interface.
    • virtualIpsarrayVirtual IPs currently bound on the server.
    • healthybooleantrue if all health checks succeeded.
  • virtualIpsarrayVirtual IP addresses to be distributed evenly across all healthy servers.
  • sharesarray-
    • sharestringName of the SMB share.
    • pathstringPath in CephFS to export.
    • guestbooleanEnable access for the guest user.
    • rwbooleanEnable access for the admin/croit user.
    • robooleanEnable access for the croit-ro user.
    • idintegerUnique 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

  • serviceIdinteger-

# Endpoint

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

# PATCH /services/smb/{serviceId}

Update an SMB gateway.

# Parameters

  • serviceIdinteger-
  • bodyobject-
    • virtualIpsarrayVirtual IP addresses to be distributed evenly across all healthy servers.
    • adminPasswordstringPassword of the croit admin user.
    • readonlyPasswordstringPassword 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

  • serviceIdinteger-
  • bodyobject-
    • sharestringName of the SMB share.
    • pathstringPath in CephFS to export.
    • guestbooleanEnable access for the guest user.
    • rwbooleanEnable access for the admin/croit user.
    • robooleanEnable access for the croit-ro user.
    • idintegerUnique 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

  • idinteger-

# Example response

{
  "id": 0
}

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

Replace a share on an SMB gateway.

# Parameters

  • serviceIdinteger-
  • shareIdinteger-
  • bodyobject-
    • sharestringName of the SMB share.
    • pathstringPath in CephFS to export.
    • guestbooleanEnable access for the guest user.
    • rwbooleanEnable access for the admin/croit user.
    • robooleanEnable access for the croit-ro user.
    • idintegerUnique 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

  • serviceIdinteger-
  • shareIdinteger-

# 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

  • serviceIdinteger-
  • bodyobject-
    • serverinteger-
    • nicintegerInterface on which HA virtual IPs will be bound.
    • vlanintegerVLAN 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

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • serviceIdinteger-
  • serverIdinteger-

# Endpoint

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

# Response 200

  • statusCodeinteger-
  • idinteger-
  • startedBystring-
  • startedAtinteger-
  • doneboolean-
  • namestring-
  • statestring[WAITING, RUNNING, FINISHED, FAILED, CANCELED]
  • objectstring-
  • outputstring-

# 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

  • bodyobject-
    • keysarray-

# 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

  • enabledboolean-

# Example response

{
  "enabled": true
}

# PUT /ssh/support-key

# Parameters

  • bodyobject-
    • enabledboolean-

# Endpoint

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

# Example body

{
  "enabled": true
}