Orchestrator API reference
-
POST /api/v1/zone
Create a new zone.
Request
{ "name": "zone 1" }
Response
{ "error": { "code": 0, "message": "ok" }, "data": { "id": 2, "name": "zone 2" }, "status": true }
Potential errors
zone_exists
- the specified zone already exists
-
GET /api/v1/zone/{zone_id: optional}
Return information on the specified zone or on all the zones.
Response
{ "error": { "code": 0, "message": "ok" }, "data": [ { "id": 1, "name": "zone 11" }, { "id": 2, "name": "zone 2" } ], "status": true }
Potential errors
zone_not_found
- the specified zone is not found
-
PUT /api/v1/zone/{zone_id}
Update information on the zone.
Body
{ "name": "zone 22" }
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
zone_not_found
- the specified zone is not found
-
DELETE /api/v1/zone/{zone_id}
Delete a zone if it doesn’t store any nodes.
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
zone_not_found
- the specified zone is not foundzone_in_use
- the specified zone stores at least one node
-
POST /api/v1/zones/weights
Set the zone weights configuration.
Body
{ "weights": { "1": { "2": 10, "3": 11 }, "2": { "1": 10, "3": 12 }, "3": { "1": 11, "2": 12 } } }
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
zones_weights_error
- configuration error
-
GET /api/v1/zones/weights
Return the zone weights configuration.
Response
{ "error": { "code": 0, "message": "ok" }, "data": { "1": { "2": 10, "3": 11 }, "2": { "1": 10, "3": 12 }, "3": { "1": 11, "2": 12 } }, "status": true }
Potential errors
zone_not_found
- the specified zone is not found
- GET /api/v1/registry/nodes/new
- POST /api/v1/registry/node
- PUT /api/v1/registry/node/
- GET /api/v1/registry/node/
- DELETE /api/v1/registry/node/
-
GET /api/v1/registry/nodes/new
Return all the detected nodes.
Response
{ "error": { "code": 0, "message": "ok" }, "data": [ { "uuid": "uuid-2", "hostname": "tnt2.public.i", "name": "tnt2" } ], "status": true }
-
POST /api/v1/registry/node
Register the detected node.
Body
{ "zone_id": 1, "uuid": "uuid-2", "uri": "tnt2.public.i:3301", "user": "user1:pass1", "repl_user": "repl_user1:repl_pass1", "cfg": { "listen": "0.0.0.0:3301" } }
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
node_already_registered
- the specified node is already registeredzone_not_found
- the specified zone is not foundnode_not_discovered
- the specified node is not detected
-
PUT /api/v1/registry/node/{node_uuid}
Update the registered node parameters.
Body
Pass only those parameters that need to be updated.
{ "zone_id": 1, "repl_user": "repl_user2:repl_pass2", "cfg": { "listen": "0.0.0.0:3301", "memtx_memory": 100000 } }
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
node_not_registered
- the specified node is not registered
-
GET /api/v1/registry/node/{node_uuid: optional}
Return information on the nodes in a cluster. If
node_uuid
is passed, information on this node only is returned.Response
{ "error": { "code": 0, "message": "ok" }, "data": { "uuid-1": { "user": "user1:pass1", "hostname": "tnt1.public.i", "repl_user": "repl_user2:repl_pass2", "uri": "tnt1.public.i:3301", "zone_id": 1, "name": "tnt1", "cfg": { "listen": "0.0.0.0:3301", "memtx_memory": 100000 }, "zone": 1 }, "uuid-2": { "user": "user1:pass1", "hostname": "tnt2.public.i", "name": "tnt2", "uri": "tnt2.public.i:3301", "repl_user": "repl_user1:repl_pass1", "cfg": { "listen": "0.0.0.0:3301" }, "zone": 1 } }, "status": true }
Potential errors
node_not_registered
- the specified node is not registered
-
DELETE /api/v1/registry/node/{node_uuid}
Delete the node if it doesn’t belong to any replica set.
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
node_not_registered
- the specified node is not registerednode_in_use
- the specified node is in use by a replica set
-
GET /api/v1/routers
Return the list of all nodes that constitute the router.
Response
{ "data": [ "uuid-1" ], "status": true, "error": { "code": 0, "message": "ok" } }
-
POST /api/v1/routers
Assign the router role to the node.
Body
{ "uuid": "uuid-1" }
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
node_not_registered
- the specified node is not registered
-
DELETE /api/v1/routers/{uuid}
Release the router role from the node.
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
- POST /api/v1/replicaset
- PUT /api/v1/replicaset/
- GET /api/v1/replicaset/
- DELETE /api/v1/replicaset/
- POST /api/v1/replicaset/{replicaset_uuid}/master
- POST /api/v1/replicaset/{replicaset_uuid}/node
- DELETE /api/v1/zone/
-
POST /api/v1/replicaset
Create a replica set containing all the registered nodes.
Body
{ "uuid": "optional-uuid", "replicaset": [ { "uuid": "uuid-1", "master": true } ] }
Response
{ "error": { "code": 0, "message": "ok" }, "data": { "replicaset_uuid": "cc6568a2-63ca-413d-8e39-704b20adb7ae" }, "status": true }
Potential errors
replicaset_exists
– the specified replica set already existsreplicaset_empty
– the specified replica set doesn’t contain any nodesnode_not_registered
– the specified node is not registerednode_in_use
– the specified node is in use by another replica set
-
PUT /api/v1/replicaset/{replicaset_uuid}
Update the replica set parameters.
Body
{ "replicaset": [ { "uuid": "uuid-1", "master": true }, { "uuid": "uuid-2", "master": false, "off": true } ] }
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
replicaset_empty
– the specified replica set doesn’t contain any nodesreplicaset_not_found
– the specified replica set is not foundnode_not_registered
– the specified node is not registerednode_in_use
– the specified node is in use by another replica set
-
GET /api/v1/replicaset/{replicaset_uuid: optional}
Return information on all the cluster components. If
replicaset_uuid
is passed, information on this replica set only is returned.Body
{ "name": "zone 22" }
Response
{ "error": { "code": 0, "message": "ok" }, "data": { "cc6568a2-63ca-413d-8e39-704b20adb7ae": { "uuid-1": { "hostname": "tnt1.public.i", "off": false, "repl_user": "repl_user2:repl_pass2", "uri": "tnt1.public.i:3301", "master": true, "name": "tnt1", "user": "user1:pass1", "zone_id": 1, "zone": 1 }, "uuid-2": { "hostname": "tnt2.public.i", "off": true, "repl_user": "repl_user1:repl_pass1", "uri": "tnt2.public.i:3301", "master": false, "name": "tnt2", "user": "user1:pass1", "zone": 1 } } }, "status": true }
Potential errors
replicaset_not_found
– the specified replica set is not found
-
DELETE /api/v1/replicaset/{replicaset_uuid}
Delete a replica set.
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
replicaset_not_found
- the specified replica set is not found
-
POST /api/v1/replicaset/{replicaset_uuid}/master
Switch the master in the replica set.
Body
{ "instance_uuid": "uuid-1", "hostname_name": "hostname:instance_name" }
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Potential errors
replicaset_not_found
– the specified replica set is not foundnode_not_registered
– the specified node is not registerednode_not_in_replicaset
– the specified node is not in the specified replica set
-
POST /api/v1/replicaset/{replicaset_uuid}/node
Add a node to the replica set.
Response
{ "error": { "code": 0, "message": "ok" }, "data": {}, "status": true }
Body
{ "instance_uuid": "uuid-1", "hostname_name": "hostname:instance_name", "master": false, "off": false }
Potential errors
replicaset_not_found
– the specified replica set is not foundnode_not_registered
– the specified node is not registerednode_in_use
– the specified node is in use by another replica set
-
GET /api/v1/replicaset/status
Return statistics on the cluster.
Response
{ "error": { "code": 0, "message": "ok" }, "data": { "cluster": { "routers": [ { "zone": 1, "name": "tnt1", "repl_user": "repl_user1:repl_pass1", "hostname": "tnt1.public.i", "status": null, "uri": "tnt1.public.i:3301", "user": "user1:pass1", "uuid": "uuid-1", "total_rps": null } ], "storages": [ { "hostname": "tnt1.public.i", "repl_user": "repl_user2:repl_pass2", "uri": "tnt1.public.i:3301", "name": "tnt1", "total_rps": null, "status": 'online', "replicas": [ { "user": "user1:pass1", "hostname": "tnt2.public.i", "replication_info": null, "repl_user": "repl_user1:repl_pass1", "uri": "tnt2.public.i:3301", "uuid": "uuid-2", "status": 'online', "name": "tnt2", "total_rps": null, "zone": 1 } ], "user": "user1:pass1", "zone_id": 1, "uuid": "uuid-1", "replicaset_uuid": "cc6568a2-63ca-413d-8e39-704b20adb7ae", "zone": 1 } ] } }, "status": true }
Potential errors
zone_not_found
- the specified zone is not foundzone_in_use
- the specified zone stores at least one node
-
POST /api/v1/version
Set the configuration version.
Response
{ "error": { "code": 0, "message": "ok" }, "status": true, "data": { "version": 2 } }
Potential errors
cfg_error
- configuration error
-
GET /api/v1/version
Return the configuration version.
Response
{ "error": { "code": 0, "message": "ok" }, "status": true, "data": { "version": 2 } }
-
POST /api/v1/sharding/cfg
Add a new sharding configuration.
Response
{ "error": { "code": 0, "message": "ok" }, "status": true, "data": {} }
-
GET /api/v1/sharding/cfg
Return the current sharding configuration.
Response
{ "error": { "code": 0, "message": "ok" }, "status": true, "data": {} }
-
POST /api/v1/clean/cfg
Reset the cluster configuration.
Response
{ "error": { "code": 0, "message": "ok" }, "status": true, "data": {} }
-
POST /api/v1/clean/all
Reset the cluster configuration and delete information on the cluster nodes from the ZooKeeper catalogues.
Response
{ "error": { "code": 0, "message": "ok" }, "status": true, "data": {} }