Приложение E. Справочник по Orchestrator API | Enterprise

Версия:

latest
Документация на русском языке
поддерживается сообществом
Appendixes Приложение E. Справочник по Orchestrator API

Приложение E. Справочник по Orchestrator API

Configuring the zones

POST /api/v1/zone

Создание новой зоны.

Запрос

{
"name": "zone 1"
}

Ответ

{
"error": {
    "code": 0,
    "message": "ok"
},
"data": {
    "id": 2,
    "name": "zone 2"
},
"status": true
}

Возможные ошибки

  • zone_exists – указанная зона уже существует
GET /api/v1/zone/{zone_id: optional}

Возврат информации об указанной зоне или обо всех зонах.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": [
        {
            "id": 1,
            "name": "zone 11"
        },
        {
            "id": 2,
            "name": "zone 2"
        }
    ],
    "status": true
}

Возможные ошибки

  • zone_not_found – указанная зона не обнаружена
PUT /api/v1/zone/{zone_id}

Обновление информации о зоне.

Тело

{
    "name": "zone 22"
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • zone_not_found – указанная зона не обнаружена
DELETE /api/v1/zone/{zone_id}

Удаление зоны, если в ней нет узлов.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • zone_not_found – указанная зона не обнаружена
  • zone_in_use – в указанной зоне есть хотя бы один узел

Настройка веса зоны

POST /api/v1/zones/weights

Конфигурация веса зоны.

Тело

{
    "weights": {
        "1": {
            "2": 10,
            "3": 11
        },
        "2": {
            "1": 10,
            "3": 12
        },
        "3": {
            "1": 11,
            "2": 12
        }
    }
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • zones_weights_error – ошибка конфигурации
GET /api/v1/zones/weights

Возврат конфигурации веса зоны.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {
        "1": {
            "2": 10,
            "3": 11
        },
        "2": {
            "1": 10,
            "3": 12
        },
        "3": {
            "1": 11,
            "2": 12
        }
    },
    "status": true
}

Возможные ошибки

  • zone_not_found – указанная зона не обнаружена

Настройка реестра

GET /api/v1/registry/nodes/new

Возврат всех обнаруженных узлов.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": [
        {
            "uuid": "uuid-2",
            "hostname": "tnt2.public.i",
            "name": "tnt2"
        }
    ],
    "status": true
}
POST /api/v1/registry/node

Регистрация обнаруженного узла.

Тело

{
    "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"
    }
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • node_already_registered – указанный узел уже зарегистрирован
  • zone_not_found – указанная зона не обнаружена
  • node_not_discovered – указанный узел не обнаружен
PUT /api/v1/registry/node/{node_uuid}

Обновление параметров зарегистрированного узла.

Тело

Передача только обновляемых параметров.

{
    "zone_id": 1,
    "repl_user": "repl_user2:repl_pass2",
    "cfg": {
        "listen": "0.0.0.0:3301",
        "memtx_memory": 100000
    }
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • node_not_registered – указанный узел не зарегистрирован
GET /api/v1/registry/node/{node_uuid: optional}

Возврат информации об узлах в кластере. Если передать node_uuid, вернется информация только по данному узлу.

Ответ

{
    "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
}

Возможные ошибки

  • node_not_registered – указанный узел не зарегистрирован
DELETE /api/v1/registry/node/{node_uuid}

Удаление узла, если он не относится ни к одному набору реплик.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • node_not_registered – указанный узел не зарегистрирован
  • node_in_use – указанный узел используется в наборе реплик

API по роутерам

GET /api/v1/routers

Возврат списка всех узлов, которые представляют собой роутер.

Ответ

{
    "data": [
        "uuid-1"
    ],
    "status": true,
    "error": {
        "code": 0,
        "message": "ok"
    }
}
POST /api/v1/routers

Присвоение узлу роли роутера.

Тело

{
    "uuid": "uuid-1"
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • node_not_registered – указанный узел не зарегистрирован
DELETE /api/v1/routers/{uuid}

Снятие роли роутера с узла.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Настройка наборов реплик

POST /api/v1/replicaset

Создание набора реплик со всеми зарегистрированными узлами.

Тело

{
    "uuid": "optional-uuid",
    "replicaset": [
        {
            "uuid": "uuid-1",
            "master": true
        }
    ]
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {
        "replicaset_uuid": "cc6568a2-63ca-413d-8e39-704b20adb7ae"
    },
    "status": true
}

Возможные ошибки

  • replicaset_exists – указанный набор реплик уже существует
  • replicaset_empty – указанный набор реплик не содержит ни одного узла
  • node_not_registered – указанный узел не зарегистрирован
  • node_in_use – указанный узел используется в другом наборе реплик
PUT /api/v1/replicaset/{replicaset_uuid}

Обновление параметров набора реплик.

Тело

{
    "replicaset": [
        {
            "uuid": "uuid-1",
            "master": true
        },
        {
            "uuid": "uuid-2",
            "master": false,
            "off": true
        }
    ]
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • replicaset_empty – указанный набор реплик не содержит ни одного узла
  • replicaset_not_found – указанный набор реплик не обнаружен
  • node_not_registered – указанный узел не зарегистрирован
  • node_in_use – указанный узел используется в другом наборе реплик
GET /api/v1/replicaset/{replicaset_uuid: optional}

Возврат информации обо всех компонентах кластера. Если передать replicaset_uuid, вернется информация только по данному набору реплик.

Тело

{
    "name": "zone 22"
}

Ответ

{
    "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
}

Возможные ошибки

  • replicaset_not_found – указанный набор реплик не обнаружен
DELETE /api/v1/replicaset/{replicaset_uuid}

Удаление набора реплик.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • replicaset_not_found – указанный набор реплик не обнаружен
POST /api/v1/replicaset/{replicaset_uuid}/master

Смена мастера в наборе реплик.

Тело

{
    "instance_uuid": "uuid-1",
    "hostname_name": "hostname:instance_name"
}

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Возможные ошибки

  • replicaset_not_found – указанный набор реплик не обнаружен
  • node_not_registered – указанный узел не зарегистрирован
  • node_not_in_replicaset – указанный узел находится не в указанном наборе реплик
POST /api/v1/replicaset/{replicaset_uuid}/node

Добавление узла в набор реплик.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "data": {},
    "status": true
}

Тело

{
    "instance_uuid": "uuid-1",
    "hostname_name": "hostname:instance_name",
    "master": false,
    "off": false
}

Возможные ошибки

  • replicaset_not_found – указанный набор реплик не обнаружен
  • node_not_registered – указанный узел не зарегистрирован
  • node_in_use – указанный узел используется в другом наборе реплик
GET /api/v1/replicaset/status

Возврат статистики по кластеру.

Ответ

{
    "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
}

Возможные ошибки

  • zone_not_found – указанная зона не обнаружена
  • zone_in_use – в указанной зоне есть хотя бы один узел

Настройка версии конфигурации

POST /api/v1/version

Настройка версии конфигурации.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "status": true,
    "data": {
        "version": 2
    }
}

Возможные ошибки

  • cfg_error – ошибка конфигурации
GET /api/v1/version

Возврат версии конфигурации.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "status": true,
    "data": {
        "version": 2
    }
}

Конфигурация шардинга

POST /api/v1/sharding/cfg

Добавление новой конфигурации шардинга.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "status": true,
    "data": {}
}
GET /api/v1/sharding/cfg

Возврат текущей конфигурации шардинга.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "status": true,
    "data": {}
}

Сброс конфигурации кластера

POST /api/v1/clean/cfg

Сброс конфигурации кластера.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "status": true,
    "data": {}
}
POST /api/v1/clean/all

Сброс конфигурации кластера и удаление информации об узлах кластера из каталогов ZooKeeper.

Ответ

{
    "error": {
        "code": 0,
        "message": "ok"
    },
    "status": true,
    "data": {}
}