Примеры использования ADCM API v2
- Получение токена доступа
- Загрузка бандла
- Принятие лицензионного соглашения
- Список прототипов
- Создание хостпровайдера
- Список хостпровайдеров
- Создание хоста
- Список хостов
- Удаление хоста
- Создание кластера
- Изменение названия и описания кластера
- Список кластеров
- Удаление кластера
- Добавление сервиса
- Список сервисов
- Удаление сервиса
- Добавление хоста в кластер
- Удаление хоста из кластера
- Список версий конфигурации
- Создание версии конфигурации
- Распределение компонентов на хостах
- Список текущего распределения компонентов на хостах
- Список action
- Создание процесса (flow) выполнения action
- Получение информации о процессе (flow) action
- Получение информации о шаге процесса (flow) action
- Подтверждение выполнения шага процесса (flow) action
- Пропуск выполнения шага процесса (flow) action
- Отмена внесенных изменений шага процесса (flow) action
- Завершение процесса (flow) action
- Запуск action
- Список групп хостов для действий
- Создание группы хостов
- Добавление хоста в группу
- Удаление хоста из группы
- Запуск действия для группы хостов
- Удаление неблокирующего concern
- Удаление группы хостов для действий
- Список обновлений
- Запуск обновлений
Эта страница содержит описание некоторых HTTP-запросов, которые поддерживаются ADCM API v2.
В случае если запрос возвращает список, разделенный на страницы, ответ будет содержать параметры, описанные ниже.
| Параметр | Тип | Описание |
|---|---|---|
count |
integer |
Количество элементов |
next |
string |
Ссылка на следующую страницу (или |
previous |
string |
Ссылка на предыдущую страницу (или |
results |
array of objects |
Список, содержащий постраничную информацию об объектах в соответствии с выполненным запросом |
Получение токена доступа
POST /api/v2/token/ HTTP/1.1
Этот запрос создает токен, позволяющий пользователю получить доступ к защищенным конечным точкам (endpoint) ADCM API v2.
| Параметр | Тип | Описание |
|---|---|---|
username |
string |
Имя пользователя (учетной записи) |
password |
string |
Пароль учетной записи |
| Параметр | Тип | Описание |
|---|---|---|
token |
string |
Токен доступа |
Загрузка бандла
POST /api/v2/bundles/ HTTP/1.1
Этот запрос загружает новый бандл в ADCM.
| Параметр | Тип | Описание |
|---|---|---|
file |
file (binary) |
Файл бандла |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор бандла |
name |
string |
Название бандла |
displayName |
string |
Отображаемое название бандла |
version |
string |
Версия бандла |
edition |
string |
Издание бандла |
mainPrototype |
object |
Объект прототипа бандла |
uploadTime |
string |
Время загрузки бандла |
signatureStatus |
string |
Статус подписи бандла. Возможные значения: |
Пример запроса
POST /api/v2/bundles/ HTTP/1.1
Content-Type: multipart/form-data
Accept: application/json
file: (binary)
Пример ответа
HTTP 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 21,
"name": "SSH Common",
"displayName": "SSH Common",
"version": "2.9-dev",
"edition": "community",
"mainPrototype": {
"id": 437,
"name": "SSH Common",
"displayName": "SSH Common",
"description": "Simple ssh hosts",
"type": "provider",
"license": {
"status": "absent",
"text": null
},
"version": "2.9-dev"
},
"uploadTime": "2023-12-06T12:20:09.553497Z",
"signatureStatus": "absent"
}
Список прототипов
GET /api/v2/prototypes/ HTTP/1.1
Этот запрос возвращает список всех прототипов в ADCM. Добавьте тип объекта ADCM в конце запроса, чтобы увидеть только прототипы этого типа. Для ответа поддерживается постраничный вывод.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор прототипа |
name |
string |
Название прототипа |
displayName |
string |
Отображаемое название прототипа |
description |
string |
Описание прототипа |
type |
string |
Тип прототипа |
bundle |
object |
Объект бандла |
license |
object |
Объект лицензии прототипа |
version |
string |
Версия прототипа |
Пример ответа
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 331,
"name": "Yandex Compute VM Provider",
"displayName": "Yandex Compute VM Provider",
"description": "Manage Yandex Compute Cloud VMs",
"type": "provider",
"bundle": {
"id": 11,
"edition": "community"
},
"license": {
"status": "absent",
"text": null
},
"version": "3.4-1"
}
]
}
Создание хостпровайдера
POST /api/v2/hostproviders/ HTTP/1.1
Этот запрос создает новый хостпровайдер. Вы можете увидеть все идентификаторы прототипов хостпровайдеров по адресу http://<IP_address>:8000/api/v2/prototypes/?type=provider, используя IP-адрес хоста, на котором запущен контейнер ADCM.
| Параметр | Тип | Описание |
|---|---|---|
prototypeId |
integer |
Идентификатор прототипа |
name |
string |
Название хостпровайдера |
description |
string |
Описание хостпровайдера |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор хостпровайдера |
name |
string |
Имя хостпровайдера |
state |
string |
Состояние хостпровайдера |
multiState |
array of string |
Список расширенных состояний хостпровайдера |
prototype |
object |
Объект прототипа хостпровайдера |
description |
string |
Описание хостпровайдера |
array of objects |
Список пунктов, требующих внимания или действий |
|
isUpgradable |
boolean |
Флаг, указывающий на наличие обновления для хостпровайдера |
mainInfo |
string |
Основная информация о хостпровайдере |
Пример запроса
POST /api/v2/hostproviders/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"prototypeId": 132,
"name": "new test hostprovider",
"description": ""
}
Пример ответа
HTTP 201 Created
Allow: GET, POST
Content-Type: application/json
Vary: Accept
{
"id": 2,
"name": "new test hostprovider",
"state": "created",
"multiState": [],
"prototype": {
"id": 132,
"name": "VMware vCloud Director",
"displayName": "VMware vCloud Director",
"version": "1.1.0-1"
},
"description": "",
"concerns": [],
"isUpgradable": false,
"mainInfo": null
}
Список хостпровайдеров
GET /api/v2/hostproviders/ HTTP/1.1
Этот запрос возвращает список всех хостпровайдеров, существующих в ADCM. Для ответа поддерживается постраничный вывод.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор хостпровайдера |
name |
string |
Имя хостпровайдера |
state |
string |
Состояние хостпровайдера |
multiState |
array of string |
Список расширенных состояний хостпровайдера |
prototype |
object |
Объект прототипа хостпровайдера |
description |
string |
Описание хостпровайдера |
array of objects |
Список пунктов, требующих внимания или действий |
|
isUpgradable |
boolean |
Флаг, указывающий на наличие обновления для хостпровайдера |
mainInfo |
string |
Основная информация о хостпровайдере |
Пример ответа
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 4,
"name": "test hostprovider",
"state": "created",
"multiState": [],
"prototype": {
"id": 331,
"name": "Yandex Compute VM Provider",
"displayName": "Yandex Compute VM Provider",
"version": "3.4-1"
},
"description": "",
"concerns": [],
"isUpgradable": false,
"mainInfo": null
}
]
}
Создание хоста
POST /api/v2/hosts/ HTTP/1.1
Этот запрос создает новый хост.
| Параметр | Тип | Описание |
|---|---|---|
hostproviderId |
integer |
Идентификатор хостпровайдера |
name |
string |
Название хоста |
clusterId |
integer |
Идентификатор кластера |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор хоста |
name |
string |
Название хоста |
description |
string |
Описание хоста |
state |
string |
Состояние хоста |
status |
string |
Статус хоста. Возможные значения: |
hostprovider |
object |
Объект хостпровайдера |
prototype |
object |
Объект прототипа |
array of objects |
Список пунктов, требующих внимания или действий |
|
isMaintenanceModeAvailable |
boolean |
Флаг доступности включения режима обслуживания для хоста |
maintenanceMode |
string |
Состояние режима обслуживания. Возможные значения: |
multiState |
array of string |
Список расширенных состояний хоста |
cluster |
object |
Объект кластера |
components |
array of objects |
Список объектов компонентов хоста |
Пример запроса
POST /api/v2/hosts/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"name": "my test host",
"hostproviderId": 4,
"clusterId": 9
}
Пример ответа
HTTP 201 Created
Allow: GET, POST
Content-Type: application/json
Vary: Accept
{
"id": 8,
"name": "test",
"description": "",
"state": "created",
"status": "down",
"hostprovider": {
"id": 4,
"name": "test hostprovider",
"displayName": "test hostprovider"
},
"prototype": {
"id": 332,
"name": "Yandex Compute VM",
"displayName": "Yandex Compute VM",
"version": "3.4-1"
},
"concerns": [],
"isMaintenanceModeAvailable": false,
"maintenanceMode": "off",
"multiState": [],
"cluster": {
"id": 9,
"name": "ADH"
},
"components": []
}
Список хостов
GET /api/v2/hosts/ HTTP/1.1
Этот запрос возвращает список всех хостов, существующих в ADCM. Если вы хотите увидеть детальную информацию об отдельном хосте, добавьте к запросу идентификатор хоста:
GET /api/v2/hosts/<hostId>/ HTTP/1.1
Для ответа поддерживается постраничный вывод.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор хоста |
name |
string |
Название хоста |
description |
string |
Описание хоста |
state |
string |
Состояние хоста |
status |
string |
Статус хоста. Возможные значения: |
hostprovider |
object |
Объект хостпровайдера |
prototype |
object |
Объект прототипа |
array of objects |
Список пунктов, требующих внимания или действий |
|
isMaintenanceModeAvailable |
boolean |
Флаг доступности включения режима обслуживания для хоста |
maintenanceMode |
string |
Состояние режима обслуживания. Возможные значения: |
multiState |
array of string |
Список расширенных состояний хоста |
cluster |
object |
Объект кластера |
components |
array of objects |
Список объектов компонентов |
Пример ответа
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 8,
"name": "bds-adbc",
"description": "",
"state": "running",
"status": "down",
"hostprovider": {
"id": 2,
"name": "Yandex",
"displayName": "Yandex"
},
"prototype": {
"id": 26,
"name": "Yandex Compute VM",
"displayName": "Yandex Compute VM",
"version": "3.7-1"
},
"concerns": [],
"isMaintenanceModeAvailable": false,
"maintenanceMode": "off",
"multiState": [],
"cluster": {
"id": 2,
"name": "Test ADB cluster"
},
"components": [
{
"id": 18,
"name": "server",
"displayName": "ADBM server"
},
{
"id": 17,
"name": "server",
"displayName": "ADB Control server"
}
]
}
]
}
Создание кластера
POST /api/v2/clusters/ HTTP/1.1
Этот запрос создает новый кластер. Вы можете увидеть все идентификаторы прототипов кластеров по адресу http://<IP_address>:8000/api/v2/prototypes/?type=cluster, используя IP-адрес хоста, на котором запущен контейнер ADCM.
| Параметр | Тип | Описание |
|---|---|---|
prototypeId |
integer |
Идентификатор прототипа |
name |
string |
Название кластера |
description |
string |
Описание кластера |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор кластера |
name |
string |
Название кластера |
description |
string |
Описание кластера |
state |
string |
Состояние кластера |
multiState |
array of string |
Список расширенных состояний кластера |
status |
string |
Статус кластера. Возможные значения: |
prototype |
object |
Объект прототипа кластера |
array of objects |
Список пунктов, требующих внимания или действий |
|
isUpgradable |
boolean |
Флаг, указывающий на наличие обновления для кластера |
mainInfo |
string |
Основная информация о кластере |
Пример запроса
POST /api/v2/clusters/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"name": "test",
"prototypeId": 264,
"description": "test cluster"
}
Пример ответа
HTTP 201 Created
Allow: GET, POST
Content-Type: application/json
Vary: Accept
{
"id": 10,
"name": "test",
"description": "test cluster",
"state": "created",
"multiState": [],
"status": "down",
"prototype": {
"id": 264,
"name": "hadoop",
"displayName": "Hadoop",
"version": "2.1.10_b1-1"
},
"concerns": [],
"isUpgradable": false,
"mainInfo": "<p>Documentation: <a href=https://docs.arenadata.io/adh/>https://docs.arenadata.io/adh/</a></p>\n"
}
Изменение названия и описания кластера
PATCH /api/v2/clusters/<clusterId>/ HTTP/1.1
Этот запрос позволяет изменить название и описание указанного кластера.
| Параметр | Тип | Описание |
|---|---|---|
name |
string |
Название кластера. Ограничение на длину строки: 2—150 символов |
description |
string |
Описание кластера |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор кластера |
name |
string |
Название кластера. Ограничение на длину строки: 2—150 символов |
description |
string |
Описание кластера |
state |
string |
Состояние кластера |
multiState |
array of string |
Список расширенных состояний кластера |
status |
string |
Статус кластера. Возможные значения: |
prototype |
object |
Объект прототипа кластера |
array of objects |
Список пунктов, требующих внимания или действий |
|
isUpgradable |
boolean |
Флаг, указывающий на наличие обновления для кластера |
mainInfo |
string |
Основная информация о кластере |
Пример запроса
PATCH /api/v2/clusters/73/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"name": "Test ADB cluster",
"description": "Example"
}
Пример ответа
HTTP 200 OK
Allow: GET, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 73,
"name": "Test ADB cluster",
"description": "Example",
"state": "created",
"multiState": [],
"status": "down",
"prototype": {
"id": 47,
"name": "ADB",
"displayName": "ADB",
"version": "6.26.0_arenadata53_b1-1"
},
"concerns": [
{
"id": 1845,
"type": "issue",
"reason": {
"message": "${source} has an issue with host-component mapping",
"placeholder": {
"source": {
"name": "Test ADB cluster",
"type": "cluster_mapping",
"params": {
"clusterId": 73
}
}
}
},
"isBlocking": true,
"cause": "host-component",
"owner": {
"id": 73,
"type": "cluster"
}
}
],
"isUpgradable": false,
"mainInfo": "The main goal of ADB bundle is an easy and fast installation and managing of Arenadata Database with Arenadata Cluster Manager. ADB bundle consists of ADB, time synchronization and the monitoring client services. These services can be installed either on cloud or bare metal hosts (depending on host bundles you choose). After installation Arenadatabase cluster will be available for psql connect on port 5432 of the master host address.\n"
}
Список кластеров
GET /api/v2/clusters/ HTTP/1.1
Этот запрос возвращает список всех кластеров, существующих в ADCM. Если вы хотите увидеть детальную информацию об отдельном кластере, добавьте к запросу идентификатор кластера:
GET /api/v2/clusters/<clusterId>/ HTTP/1.1
Для ответа поддерживается постраничный вывод.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор кластера |
name |
string |
Название кластера |
description |
string |
Описание кластера |
state |
string |
Состояние кластера |
multiState |
array of string |
Список расширенных состояний кластера |
status |
string |
Статус кластера. Возможные значения: |
prototype |
object |
Объект прототипа кластера |
array of objects |
Список пунктов, требующих внимания или действий |
|
isUpgradable |
boolean |
Флаг, указывающий на наличие обновления для кластера |
mainInfo |
string |
Основная информация о кластере |
Пример ответа
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 9,
"name": "ADH",
"description": "",
"state": "created",
"multiState": [],
"status": "down",
"prototype": {
"id": 264,
"name": "hadoop",
"displayName": "Hadoop",
"version": "2.1.10_b1-1"
},
"concerns": [],
"isUpgradable": false,
"mainInfo": "<p>Documentation: <a href=https://docs.arenadata.io/adh/>https://docs.arenadata.io/adh/</a></p>\n"
},
{
"id": 10,
"name": "test",
"description": "test cluster",
"state": "created",
"multiState": [],
"status": "down",
"prototype": {
"id": 264,
"name": "hadoop",
"displayName": "Hadoop",
"version": "2.1.10_b1-1"
},
"concerns": [],
"isUpgradable": false,
"mainInfo": "<p>Documentation: <a href=https://docs.arenadata.io/adh/>https://docs.arenadata.io/adh/</a></p>\n"
}
]
}
Добавление сервиса
POST /api/v2/clusters/<clusterId>/services/ HTTP/1.1
Этот запрос добавляет сервис в указанный кластер. Обязателен идентификатор прототипа сервиса. Вы можете просмотреть идентификаторы всех прототипов сервисов по адресу http://<IP_address>:8000/api/v2/prototypes/?type=service, где <IP_address> — IP-адрес хоста, на котором запущен контейнер ADCM.
| Параметр | Тип | Описание |
|---|---|---|
prototypeId |
integer |
Идентификатор прототипа сервиса |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор сервиса |
name |
string |
Название сервиса |
description |
string |
Описание сервиса |
displayName |
string |
Отображаемое название сервиса |
prototype |
object |
Объект прототипа сервиса |
cluster |
object |
Объект кластера |
status |
string |
Статус сервиса |
state |
string |
Состояние сервиса |
multiState |
array of string |
Список расширенных состояний сервиса |
array of objects |
Список пунктов, требующих внимания или действий |
|
isMaintenanceModeAvailable |
boolean |
Флаг доступности режима обслуживания для сервиса |
maintenanceMode |
string |
Состояние режима обслуживания. Возможные значения: |
mainInfo |
string |
Основная информация о сервисе |
Пример запроса
POST /api/v2/clusters/2/services/ HTTP/1.1
Content-Type: application/json
Accept: application/json
[
{
"prototypeId": 278
}
]
Пример ответа
HTTP 201 Created
Allow: GET, POST
Content-Type: application/json
Vary: Accept
[
{
"id": 15,
"name": "zookeeper",
"description": "",
"displayName": "Zookeeper",
"prototype": {
"id": 278,
"name": "zookeeper",
"displayName": "Zookeeper",
"version": "3.5.10"
},
"cluster": {
"id": 10,
"name": "test"
},
"status": "up",
"state": "created",
"multiState": [],
"concerns": [
{
"id": 64,
"reason": {
"message": "${source} has an issue with host-component mapping",
"placeholder": {
"source": {
"type": "cluster",
"name": "test",
"params": {
"clusterId": 10
}
}
}
},
"isBlocking": true,
"cause": "host-component"
}
],
"isMaintenanceModeAvailable": false,
"maintenanceMode": "off",
"mainInfo": null
}
]
Список сервисов
GET /api/v2/clusters/<clusterId>/services/ HTTP/1.1
Этот запрос возвращает список всех сервисов, добавленных в указанный кластер. Если вы хотите увидеть детальную информацию об отдельном сервисе, добавьте к запросу идентификатор сервиса:
GET /api/v2/clusters/<clusterId>/services/<serviceId>/ HTTP/1.1
Для ответа поддерживается постраничный вывод.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор сервиса |
name |
string |
Название сервиса |
description |
string |
Описание сервиса |
displayName |
string |
Отображаемое название сервиса |
prototype |
object |
Объект прототипа сервиса |
cluster |
object |
Объект кластера |
status |
string |
Статус сервиса |
state |
string |
Состояние сервиса |
multiState |
array of string |
Список расширенных состояний сервиса |
array of objects |
Список пунктов, требующих внимания или действий |
|
isMaintenanceModeAvailable |
boolean |
Флаг доступности режима обслуживания для сервиса |
maintenanceMode |
string |
Состояние режима обслуживания. Возможные значения: |
mainInfo |
string |
Основная информация о сервисе |
Пример ответа
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 15,
"name": "zookeeper",
"description": "",
"displayName": "Zookeeper",
"prototype": {
"id": 278,
"name": "zookeeper",
"displayName": "Zookeeper",
"version": "3.5.10"
},
"cluster": {
"id": 10,
"name": "test"
},
"status": "up",
"state": "created",
"multiState": [],
"concerns": [
{
"id": 64,
"reason": {
"message": "${source} has an issue with host-component mapping",
"placeholder": {
"source": {
"type": "cluster",
"name": "test",
"params": {
"clusterId": 10
}
}
}
},
"isBlocking": true,
"cause": "host-component"
}
],
"isMaintenanceModeAvailable": false,
"maintenanceMode": "off",
"mainInfo": "<div style=\"width:600px\">\n<p>Centralized service for maintaining configuration\ninformation, naming, providing distributed synchronization,\nand providing group services.</p>\n</div>\n"
}
]
}
Добавление хоста в кластер
POST /api/v2/clusters/<clusterId>/hosts/ HTTP/1.1
Этот запрос добавляет хост в указанный кластер. Обязателен идентификатор хоста.
| Параметр | Тип | Описание |
|---|---|---|
hostId |
integer |
Идентификатор хоста |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор хоста |
name |
string |
Название хоста |
description |
string |
Описание хоста |
state |
string |
Состояние хоста |
status |
string |
Статус хоста. Возможные значения: |
hostprovider |
object |
Объект хостпровайдера |
prototype |
object |
Объект прототипа хоста |
array of objects |
Список пунктов, требующих внимания или действий |
|
isMaintenanceModeAvailable |
boolean |
Флаг доступности режима обслуживания для хоста |
maintenanceMode |
string |
Состояние режима обслуживания. Возможные значения: |
multiState |
array of string |
Список расширенных состояний хоста |
cluster |
object |
Объект кластера |
components |
array of objects |
Список объектов компонентов |
Пример запроса
POST /api/v2/clusters/10/hosts/ HTTP/1.1
Content-Type: application/json
Accept: application/json
[
{
"hostId": 8
}
]
Пример ответа
HTTP 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 8,
"name": "test",
"description": "",
"state": "created",
"status": "down",
"hostprovider": {
"id": 4,
"name": "test hostprovider",
"displayName": "test hostprovider"
},
"prototype": {
"id": 332,
"name": "Yandex Compute VM",
"displayName": "Yandex Compute VM",
"version": "3.4-1"
},
"concerns": [],
"isMaintenanceModeAvailable": false,
"maintenanceMode": "off",
"multiState": [],
"cluster": {
"id": 10,
"name": "test"
},
"components": []
}
]
Список версий конфигурации
GET /api/v2/hostproviders/<hostproviderId>/configs/ HTTP/1.1
GET /api/v2/hosts/<hostId>/configs/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/configs/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/configs/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/configs/ HTTP/1.1
Эти запросы возвращают список версий конфигурации хостпровайдера, хоста, кластера, сервиса или компонента соответственно. Если вы хотите посмотреть подробную информацию о конфигурации объекта (список конфигурационных параметров и их значений), укажите в запросе идентификатор версии конфигурации, например (для кластера):
GET /api/v2/clusters/<clusterId>/configs/<configId>/ HTTP/1.1
Для ответа поддерживается постраничный вывод.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор версии конфигурации |
isCurrent |
boolean |
Определяет, является ли версия конфигурации текущей версией |
creationTime |
string |
Дата и время создания версии конфигурации |
description |
string |
Описание версии конфигурации |
Пример ответа
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": 1349,
"isCurrent": true,
"creationTime": "2025-08-01T12:02:34.188737Z",
"description": "upgrade"
},
{
"id": 1338,
"isCurrent": false,
"creationTime": "2025-07-28T16:21:12.037662Z",
"description": "ansible update"
},
{
"id": 1332,
"isCurrent": false,
"creationTime": "2025-07-28T16:06:40.193811Z",
"description": "init"
}
]
}
Создание версии конфигурации
POST /api/v2/hostproviders/<hostproviderId>/configs/ HTTP/1.1
POST /api/v2/hosts/<hostId>/configs/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/configs/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/configs/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/configs/ HTTP/1.1
Эти запросы создают новую версию конфигурации хостпровайдера, хоста, кластера, сервиса или компонента соответственно.
| Параметр | Тип | Описание |
|---|---|---|
config |
object |
Список конфигурационных параметров и их значений |
adcmMeta |
object |
Возможность активировать или деактивировать секцию настроек (конфигурационных параметров) в дереве конфигурации |
description |
string |
Описание версии конфигурации |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор версии конфигурации |
isCurrent |
boolean |
Определяет, является ли версия конфигурации текущей версией |
creationTime |
string |
Дата и время создания версии конфигурации |
config |
object |
Список конфигурационных параметров и их значений |
adcmMeta |
object |
Возможность активировать или деактивировать секцию настроек (конфигурационных параметров) в дереве конфигурации |
description |
string |
Описание версии конфигурации |
Пример запроса
POST /api/v2/clusters/27/services/105/configs/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"config": {
"__main_info": "<p style=\"font-size:16px; \">\n<a href=\"https://arenadata.tech/en/products/arenadata-db/\" target=\"_blank\">\nArenadata DB (ADB)</a> is a distributed database based on using MPP\n(massively parallel processing) principle. It takes its origin\nfrom Pivotal's Greenplum database.</p><p style=\"font-size:16px; \">JDBC URL: jdbc:postgresql://10.92.38.37:5432</p>\n<p style=\"font-size:16px; \">SSL: disabled</p>\n",
"components": {
"adb": "{\"logs\": [{\"type\": \"search_and_archive_directories\", \"paths\": [\"*/master/gpseg*/pg_log\", \"*/mirror/gpseg*/pg_log\", \"*/primary/gpseg*/pg_log\", \"/home/*/gpAdminLogs\", \"/home/*/arenadata_configs/operation_log\"]}]}"
},
"Main": {
"dbname": "adb",
"enable_mirroring": true,
"madlib": false,
"postgis": false,
"autocoredump": false,
"diskquota": false,
"plpython3": false
},
"Advanced": {
"num_segments_per_host": 4,
"segment_datadirs": {
"/data1": ""
},
"segment_nobarrier": false,
"master_datadir": "/data1",
"master_mount_storage": false,
"master_server_storage": null,
"master_nobarrier": false,
"config_dir": "arenadata_configs",
"sysctl_params": "[[\"kernel.core_uses_pid\", \"1\"], [\"kernel.shmmni\", \"4096\"], [\"kernel.sem\", \"250 2048000 200 8192\"], [\"kernel.msgmnb\", \"65536\"], [\"kernel.msgmax\", \"65536\"], [\"kernel.msgmni\", \"2048\"], [\"net.ipv4.tcp_syncookies\", \"1\"], [\"net.ipv4.conf.default.accept_source_route\", \"0\"], [\"net.ipv4.tcp_max_syn_backlog\", \"4096\"], [\"net.ipv4.conf.all.arp_filter\", \"1\"], [\"net.ipv4.ip_local_port_range\", \"10000 65535\"], [\"net.ipv4.ipfrag_high_thresh\", \"41943040\"], [\"net.ipv4.ipfrag_low_thresh\", \"31457280\"], [\"net.ipv4.ipfrag_time\", \"60\"], [\"net.core.netdev_max_backlog\", \"10000\"], [\"net.core.rmem_max\", \"2097152\"], [\"net.core.wmem_max\", \"2097152\"], [\"vm.overcommit_memory\", \"2\"], [\"vm.overcommit_ratio\", \"95\"], [\"vm.swappiness\", \"10\"], [\"vm.zone_reclaim_mode\", \"0\"], [\"vm.dirty_expire_centisecs\", \"500\"], [\"vm.dirty_writeback_centisecs\", \"100\"], [\"vm.dirty_background_ratio\", \"0\"], [\"vm.dirty_ratio\", \"0\"], [\"vm.dirty_background_bytes\", \"1610612736\"], [\"vm.dirty_bytes\", \"4294967296\"], [\"kernel.core_pipe_limit\", \"0\"]]",
"system_user_gid": 2042,
"system_user_name": "gpadmin",
"system_user_uid": 2042,
"disable_firewall": true,
"edit_hosts": true,
"instrument_shmem_size": 5120,
"max_scan_on_shmem": 300
},
"ic_proxy_properties": {
"gp_interconnect_type": "udpifc",
"ic_proxy_addresses_auto_discovery": true,
"ic_proxy_port_delta": 52000,
"ic_proxy_check": false,
"ic_proxy_gp_interconnect_proxy_addresses": null
},
"use_dedicated_network": {
"cluster_subnet": null
},
"adb_ident_serv": {
"adb_ident_default_deny_policy": true
},
"gpperfmon": {
"gpperfmon_authentication_type": "md5"
},
"Crontab": {
"crontab_tasks": [
"0 1 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/run_sql_to_gpssh.sh\" \"$PATH_ARENADATA_CONFIGS/gzip_pg_log.sql\" \\ >> \"$PATH_ARENADATA_CONFIGS/gzip_pg_log.log\" 2>&1",
"0 2 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" vacuum_system_db",
"0 3 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" remove_orphaned_temp_schemas",
"0 6 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" vacuum --timelimit 240",
"0 11 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" analyze --timelimit 240",
"0 21 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" collect_table_stats",
"4 */8 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" vacuum_analyze_pg_catalog",
"0 1 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/gzip_gpadmin_log.sh\" >> \"$PATH_ARENADATA_CONFIGS/gzip_gpadmin_log.log\" 2>&1"
],
"delete_operation_log_after": 30
},
"ssl": {
"ssl_ciphers": [
"HIGH",
"MEDIUM",
"+3DES",
"!aNULL"
],
"server_certificate_file": null,
"server_private_key_file": null,
"root_certificate_file": null,
"server_crl_list_file": null,
"ssl_pg_hba_customs": null
},
"LDAP": {
"ldap_type": "MSAD",
"ldap_uri": null,
"ldap_basedn": null,
"ldap_groups_basedn": null,
"ldap_users_filter": "(&(|(objectClass=person)(objectClass=inetOrgPerson))(cn=*))",
"ldap_groups_filter": "(&(|(objectClass=group)(objectClass=groupofnames)(objectClass=groupOfUniqueNames))(cn=*))",
"ldap_login": null,
"ldap_password": null,
"ldap_login_lowercase": false,
"ldap_group_lowercase": false,
"sync_interval": "0 * * * *"
},
"pg_hba_customs": "host\tall\t\t alice\t\t 10.92.38.0/24\t\t pam pamservice=postgresql\nhost\tadb\t\t new_user\t\t 10.92.41.35/32\t\t trust "
},
"adcmMeta": {
"/use_dedicated_network": {
"isActive": false
},
"/adb_ident_serv": {
"isActive": false
},
"/gpperfmon": {
"isActive": true
},
"/Crontab": {
"isActive": true
},
"/ssl": {
"isActive": false
},
"/LDAP": {
"isActive": false
}
},
"description": "update"
}
Пример ответа
HTTP 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 1357,
"isCurrent": true,
"creationTime": "2025-08-07T10:59:17.110045Z",
"config": {
"__main_info": "<p style=\"font-size:16px; \">\n<a href=\"https://arenadata.tech/en/products/arenadata-db/\" target=\"_blank\">\nArenadata DB (ADB)</a> is a distributed database based on using MPP\n(massively parallel processing) principle. It takes its origin\nfrom Pivotal's Greenplum database.</p><p style=\"font-size:16px; \">JDBC URL: jdbc:postgresql://10.92.38.37:5432</p>\n<p style=\"font-size:16px; \">SSL: disabled</p>\n",
"components": {
"adb": "{\"logs\": [{\"type\": \"search_and_archive_directories\", \"paths\": [\"*/master/gpseg*/pg_log\", \"*/mirror/gpseg*/pg_log\", \"*/primary/gpseg*/pg_log\", \"/home/*/gpAdminLogs\", \"/home/*/arenadata_configs/operation_log\"]}]}"
},
"Main": {
"dbname": "adb",
"enable_mirroring": true,
"madlib": false,
"postgis": false,
"autocoredump": false,
"diskquota": false,
"plpython3": false
},
"Advanced": {
"num_segments_per_host": 4,
"segment_datadirs": {
"/data1": ""
},
"segment_nobarrier": false,
"master_datadir": "/data1",
"master_mount_storage": false,
"master_server_storage": null,
"master_nobarrier": false,
"config_dir": "arenadata_configs",
"sysctl_params": "[[\"kernel.core_uses_pid\", \"1\"], [\"kernel.shmmni\", \"4096\"], [\"kernel.sem\", \"250 2048000 200 8192\"], [\"kernel.msgmnb\", \"65536\"], [\"kernel.msgmax\", \"65536\"], [\"kernel.msgmni\", \"2048\"], [\"net.ipv4.tcp_syncookies\", \"1\"], [\"net.ipv4.conf.default.accept_source_route\", \"0\"], [\"net.ipv4.tcp_max_syn_backlog\", \"4096\"], [\"net.ipv4.conf.all.arp_filter\", \"1\"], [\"net.ipv4.ip_local_port_range\", \"10000 65535\"], [\"net.ipv4.ipfrag_high_thresh\", \"41943040\"], [\"net.ipv4.ipfrag_low_thresh\", \"31457280\"], [\"net.ipv4.ipfrag_time\", \"60\"], [\"net.core.netdev_max_backlog\", \"10000\"], [\"net.core.rmem_max\", \"2097152\"], [\"net.core.wmem_max\", \"2097152\"], [\"vm.overcommit_memory\", \"2\"], [\"vm.overcommit_ratio\", \"95\"], [\"vm.swappiness\", \"10\"], [\"vm.zone_reclaim_mode\", \"0\"], [\"vm.dirty_expire_centisecs\", \"500\"], [\"vm.dirty_writeback_centisecs\", \"100\"], [\"vm.dirty_background_ratio\", \"0\"], [\"vm.dirty_ratio\", \"0\"], [\"vm.dirty_background_bytes\", \"1610612736\"], [\"vm.dirty_bytes\", \"4294967296\"], [\"kernel.core_pipe_limit\", \"0\"]]",
"system_user_gid": 2042,
"system_user_name": "gpadmin",
"system_user_uid": 2042,
"disable_firewall": true,
"edit_hosts": true,
"instrument_shmem_size": 5120,
"max_scan_on_shmem": 300
},
"ic_proxy_properties": {
"gp_interconnect_type": "udpifc",
"ic_proxy_addresses_auto_discovery": true,
"ic_proxy_port_delta": 52000,
"ic_proxy_check": false,
"ic_proxy_gp_interconnect_proxy_addresses": null
},
"use_dedicated_network": {
"cluster_subnet": null
},
"adb_ident_serv": {
"adb_ident_default_deny_policy": true
},
"gpperfmon": {
"gpperfmon_authentication_type": "md5"
},
"Crontab": {
"crontab_tasks": [
"0 1 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/run_sql_to_gpssh.sh\" \"$PATH_ARENADATA_CONFIGS/gzip_pg_log.sql\" \\ >> \"$PATH_ARENADATA_CONFIGS/gzip_pg_log.log\" 2>&1",
"0 2 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" vacuum_system_db",
"0 3 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" remove_orphaned_temp_schemas",
"0 6 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" vacuum --timelimit 240",
"0 11 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" analyze --timelimit 240",
"0 21 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" collect_table_stats",
"4 */8 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/operation.py\" vacuum_analyze_pg_catalog",
"0 1 * * * . \"$PROFILE\" && \"$PATH_ARENADATA_CONFIGS/gzip_gpadmin_log.sh\" >> \"$PATH_ARENADATA_CONFIGS/gzip_gpadmin_log.log\" 2>&1"
],
"delete_operation_log_after": 30
},
"ssl": {
"ssl_ciphers": [
"HIGH",
"MEDIUM",
"+3DES",
"!aNULL"
],
"server_certificate_file": null,
"server_private_key_file": null,
"root_certificate_file": null,
"server_crl_list_file": null,
"ssl_pg_hba_customs": null
},
"LDAP": {
"ldap_type": "MSAD",
"ldap_uri": null,
"ldap_basedn": null,
"ldap_groups_basedn": null,
"ldap_users_filter": "(&(|(objectClass=person)(objectClass=inetOrgPerson))(cn=*))",
"ldap_groups_filter": "(&(|(objectClass=group)(objectClass=groupofnames)(objectClass=groupOfUniqueNames))(cn=*))",
"ldap_login": null,
"ldap_password": null,
"ldap_login_lowercase": false,
"ldap_group_lowercase": false,
"sync_interval": "0 * * * *"
},
"pg_hba_customs": "host\tall\t\t alice\t\t 10.92.38.0/24\t\t pam pamservice=postgresql\nhost\tadb\t\t new_user\t\t 10.92.41.35/32\t\t trust "
},
"adcmMeta": {
"/use_dedicated_network": {
"isActive": false
},
"/adb_ident_serv": {
"isActive": false
},
"/gpperfmon": {
"isActive": true
},
"/Crontab": {
"isActive": true
},
"/ssl": {
"isActive": false
},
"/LDAP": {
"isActive": false
}
},
"description": "update"
}
Распределение компонентов на хостах
POST /api/v2/clusters/<clusterId>/mapping/ HTTP/1.1
Этот запрос позволяет добавить компоненты на существующие хосты и сохранить их распределение (host-component mapping). Укажите компоненты, которые должны быть добавлены на указанные хосты. Если распределение компонентов на хостах для кластера уже существовало, чтобы сохранить новое распределение, нужно скопировать и еще раз отправить все предшествующие записи.
| Параметр | Тип | Описание |
|---|---|---|
hostId |
integer |
Идентификатор хоста |
componentId |
integer |
Идентификатор компонента |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор записи распределения компонента на хосте |
hostId |
integer |
Идентификатор хоста |
componentId |
integer |
Идентификатор компонента |
Список текущего распределения компонентов на хостах
GET /api/v2/clusters/<clusterId>/mapping/ HTTP/1.1
Этот запрос возвращает текущее распределение компонентов на хостах (если оно существует) для указанного кластера. Порядок вывода не гарантируется.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор записи распределения компонента на хосте |
hostId |
integer |
Идентификатор хоста |
componentId |
integer |
Идентификатор компонента |
Список action
GET /api/v2/clusters/<clusterId>/actions/ HTTP/1.1
Этот запрос возвращает список всех action кластера. Чтобы получить подробную информацию об отдельном action, укажите его идентификатор в пути запроса:
GET /api/v2/clusters/<clusterId>/actions/<actionId>/ HTTP/1.1
Хостпровайдеры, хосты и сервисы также содержат action, доступ к которым осуществляется аналогичным образом.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор action |
name |
string |
Название action |
displayName |
string |
Отображаемое название action |
startImpossibleReason |
string |
Причина, по которой запуск action невозможен |
Пример ответа
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 4,
"name": "install",
"displayName": "Install",
"startImpossibleReason": null
},
{
"id": 9,
"name": "hadoop_2.1.10_b1-1_community_upgrade_2.1.10_b1_community_2.1.8_b3_strict_false-2.1.10_b1-1_strict_false_editions-community_state_available-installed_faulty_installed_created_state_on_success-upgradable",
"displayName": "Upgrade: 2.1.10_b1 community",
"startImpossibleReason": null
}
]
Создание процесса (flow) выполнения action
|
ПРИМЕЧАНИЕ
Для действий (action), реализованных в виде интерактивного пошагового сценария (Wizard), необходимо предварительно создать процесс (flow).
|
POST /api/v2/clusters/<clusterId>/actions/<actionId>/processes/ HTTP/1.1
Этот запрос создает процесс выполнения действия, реализованного в виде Wizard. Процесс содержит информацию об этапах (stage), шагах (step) и текущем состоянии выполнения action.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор процесса |
state |
string |
Состояние процесса. Возможные значения: |
currentStep |
integer или null |
Идентификатор текущего активного шага процесса. Если шаг отсутствует или все шаги завершены, возвращается |
createdAt |
string |
Дата и время создания процесса |
stages |
array of objects |
Список этапов процесса. Каждый этап содержит поля |
syncKey |
string |
Уникальный ключ синхронизации процесса, используемый для корректного и последовательного выполнения шагов |
Пример ответа
HTTP 201 Created
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 3,
"state": "created",
"currentStep": 7,
"createdAt": "2026-01-29T12:39:35.681034Z",
"stages": [
{
"name": "manage_ssl_stage",
"displayName": "Manage SSL",
"steps": [
{
"id": 7,
"state": "created",
"name": "configure_ssl",
"displayName": "Configure SSL",
"type": "configuration"
}
]
},
{
"name": "manage_kerberos",
"displayName": "Manage Kerberos",
"steps": [
{
"id": 8,
"state": "created",
"name": "configure_kerberos",
"displayName": "Configure Kerberos",
"type": "configuration"
}
]
},
{
"name": "general_options",
"displayName": "General options",
"steps": [
{
"id": 9,
"state": "created",
"name": "general_options",
"displayName": "General options",
"type": "configuration"
}
]
}
],
"syncKey": "5381f555-9343-455d-8f05-657cba6226b4"
}
Получение информации о процессе (flow) action
GET /api/v2/clusters/<clusterId>/actions/<actionId>/processes/<processId>/ HTTP/1.1
Этот запрос возвращает текущее состояние уже созданного процесса, а также структуру его этапов и шагов. Используется для продолжения выполнения action, реализованных в виде интерактивного пошагового сценария (Wizard).
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор процесса |
state |
string |
Состояние процесса. Возможные значения: |
currentStep |
integer или null |
Идентификатор текущего активного шага процесса. Если шаг отсутствует или все шаги завершены, возвращается |
createdAt |
string |
Дата и время создания процесса |
stages |
array of objects |
Список этапов процесса. Каждый этап содержит поля |
syncKey |
string |
Уникальный ключ синхронизации процесса, используемый для корректного и последовательного выполнения шагов |
Пример ответа
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 3,
"state": "created",
"currentStep": 7,
"createdAt": "2026-01-29T12:39:35.681034Z",
"stages": [
{
"name": "manage_ssl_stage",
"displayName": "Manage SSL",
"steps": [
{
"id": 7,
"state": "created",
"name": "configure_ssl",
"displayName": "Configure SSL",
"type": "configuration"
}
]
},
{
"name": "manage_kerberos",
"displayName": "Manage Kerberos",
"steps": [
{
"id": 8,
"state": "created",
"name": "configure_kerberos",
"displayName": "Configure Kerberos",
"type": "configuration"
}
]
},
{
"name": "general_options",
"displayName": "General options",
"steps": [
{
"id": 9,
"state": "created",
"name": "general_options",
"displayName": "General options",
"type": "configuration"
}
]
}
],
"syncKey": "5381f555-9343-455d-8f05-657cba6226b4"
}
Получение информации о шаге процесса (flow) action
GET /api/v2/clusters/<clusterId>/actions/<actionId>/processes/<processId>/steps/<stepId>/ HTTP/1.1
Этот запрос возвращает текущее состояние указанного шага процесса (flow) action, реализованного в виде интерактивного пошагового сценария (Wizard).
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор шага |
displayName |
string |
Отображаемое название шага |
name |
string |
Название шага |
type |
string |
Тип шага |
state |
string |
Состояние шага. Возможные значения: |
configuration |
object or null |
Объект с данными конфигурации шага (присутствует только для шагов типа configuration) |
Пример ответа
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 7,
"displayName": "Configure encryption",
"name": "configure_encryption",
"type": "configuration",
"state": "completed",
"configuration": {
"configSchema": {
"title": "Configuration",
"description": "",
"readOnly": false,
"type": "object",
"properties": {
"creds_encryption": {
"title": "Credential encryption",
"description": "",
"readOnly": false,
"default": {},
"adcmMeta": {
"isAdvanced": false,
"isInvisible": false,
"isSecret": false,
"activation": null,
"synchronization": null,
"stringExtra": null,
"enumExtra": null
},
"type": "object",
"additionalProperties": false,
"properties": {
"credstore_password": {
"oneOf": [
{
"title": "Credstore password configure_encryption",
"description": "Encryption provider password. Must be at least 6 symbols",
"readOnly": false,
"default": null,
"adcmMeta": {
"isAdvanced": false,
"isInvisible": false,
"isSecret": true,
"activation": null,
"synchronization": null,
"stringExtra": {
"isMultiline": false
},
"enumExtra": null
},
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"credstore_password_opts": {
"title": "Credstore options",
"description": "The way to store encryption provider password, if required",
"readOnly": false,
"default": null,
"adcmMeta": {
"isAdvanced": false,
"isInvisible": false,
"isSecret": false,
"activation": null,
"synchronization": null,
"stringExtra": {
"isMultiline": false
},
"enumExtra": null
},
"enum": [
"password in the environment",
"password-file",
"no password"
]
}
},
"required": [
"credstore_password",
"credstore_password_opts"
]
}
},
"required": [
"creds_encryption"
],
"additionalProperties": false,
"adcmMeta": {
"isAdvanced": false,
"isInvisible": false,
"activation": null,
"synchronization": null,
"nullValue": null,
"isSecret": false,
"stringExtra": null,
"enumExtra": null
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
},
"adcmMeta": {},
"config": {
"creds_encryption": {
"credstore_password": null,
"credstore_password_opts": "password-file"
}
}
}
}
Подтверждение выполнения шага процесса (flow) action
|
ПРИМЕЧАНИЕ
Операции подтверждения выполнения шага, пропуска выполнения шага, отмены внесенных изменений и завершения процесса используют одну и ту же конечную точку. Тип выполняемой операции определяется значением поля method (submit_step, skip_step, reset_step, complete) в теле запроса.
|
POST /api/v2/clusters/<clusterId>/actions/<actionId>/processes/<processId>/operation/ HTTP/1.1
Этот запрос подтверждает выполнение шага процесса (flow) и запускает связанную задачу (job) для action, реализованного в виде интерактивного пошагового сценария (Wizard). Запрос отправляется, когда в веб-интерфейсе ADCM пользователь нажимает кнопку Next step.
| Параметр | Тип | Описание |
|---|---|---|
method |
string |
Тип операции, применяемой к шагу процесса. Значение для данного запроса: |
params |
object |
Объект с входными параметрами для выполнения операции над шагом |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор процесса |
state |
string |
Состояние процесса. Возможные значения: |
currentStep |
integer или null |
Идентификатор текущего активного шага процесса. При завершении всех шагов возвращается |
createdAt |
string |
Дата и время создания процесса |
stages |
array of objects |
Список этапов процесса. Каждый этап содержит поля |
syncKey |
string |
Уникальный ключ синхронизации процесса, используемый для корректного и последовательного выполнения шагов |
Пример запроса
POST /api/v2/clusters/10/actions/942/processes/17/operation/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"method": "submit_step",
"params": {
"stepId": 53,
"processSyncKey": "75b5ee6d-12af-43ab-a13f-8faf90b75348",
"configuration": {
"adcmMeta": {
"/ssl_config": {
"isActive": false
}
},
"config": {
"ssl_config": {
"tls_version": "TLSv1.2",
"keystore_path": "/etc/ssl/keystore.jks",
"truststore_path": "/etc/ssl/truststore.jks",
"keystore_password": "$ANSIBLE_VAULT;1.1;AES256\n<encrypted_vault_secret>",
"truststore_password": "$ANSIBLE_VAULT;1.1;AES256\n<encrypted_vault_secret>",
"force_rewrite_ssl_parameters": false
}
}
}
}
}
Пример ответа
HTTP 200 OK
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 17,
"state": "created",
"currentStep": 54,
"createdAt": "2026-08-11T11:31:36.001830Z",
"stages": [
{
"name": "manage_ssl_stage",
"description": "",
"displayName": "Manage SSL",
"steps": [
{
"id": 53,
"state": "completed",
"name": "configure_ssl",
"description": "",
"displayName": "Configure SSL",
"type": "configuration"
}
]
},
{
"name": "manage_kerberos",
"description": "",
"displayName": "Manage Kerberos",
"steps": [
{
"id": 54,
"state": "created",
"name": "configure_kerberos",
"description": "",
"displayName": "Configure Kerberos",
"type": "configuration"
}
]
},
{
"name": "general_options",
"description": "",
"displayName": "General options",
"steps": [
{
"id": 55,
"state": "created",
"name": "general_options",
"description": "",
"displayName": "General options",
"type": "configuration"
}
]
}
],
"syncKey": "65730a42-638d-4116-b43d-fe86733c2826"
}
Пропуск выполнения шага процесса (flow) action
|
ПРИМЕЧАНИЕ
Операции подтверждения выполнения шага, пропуска выполнения шага, отмены внесенных изменений и завершения процесса используют одну и ту же конечную точку. Тип выполняемой операции определяется значением поля method (submit_step, skip_step, reset_step, complete) в теле запроса.
|
POST /api/v2/clusters/<clusterId>/actions/<actionId>/processes/<processId>/operation/ HTTP/1.1
Этот запрос пропускает выполнение текущего шага процесса (flow) action, реализованного в виде интерактивного пошагового сценария (Wizard), без применения изменений и переводит процесс к следующему шагу. Запрос отправляется, когда в веб-интерфейсе ADCM пользователь нажимает кнопку Next step на необязательном шаге.
|
ВАЖНО
Операция skip_step применима только к необязательным шагам (required: false) типа operation. Шаги типа configuration и распределения компонентов на хостах (mapping) пропустить нельзя.
|
| Параметр | Тип | Описание |
|---|---|---|
method |
string |
Тип операции, применяемой к шагу процесса. Значение для данного запроса: |
params |
object |
Объект с входными параметрами для выполнения операции над шагом |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор процесса |
state |
string |
Состояние процесса. Возможные значения: |
currentStep |
integer или null |
Идентификатор текущего активного шага процесса. При завершении всех шагов возвращается |
createdAt |
string |
Дата и время создания процесса |
stages |
array of objects |
Список этапов процесса. Каждый этап содержит поля |
syncKey |
string |
Уникальный ключ синхронизации процесса, используемый для корректного и последовательного выполнения шагов |
Пример запроса
POST /api/v2/clusters/1/actions/7/processes/4/operation/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"method": "skip_step",
"params": {
"stepId": 15,
"processSyncKey": "899c6f5e-75c3-4b5e-ad62-ab32f84397ec"
}
}
Пример ответа
HTTP 200 OK
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 4,
"state": "created",
"currentStep": 16,
"createdAt": "2026-08-11T12:34:12.192669Z",
"stages": [
{
"name": "first_stage",
"description": "",
"displayName": "First stage",
"steps": [
{
"id": 13,
"state": "completed",
"name": "stage1_step1",
"description": "",
"displayName": "Configuration",
"type": "configuration"
},
{
"id": 14,
"state": "completed",
"name": "apply_config",
"description": "",
"displayName": "Apply configuration",
"type": "operation"
},
{
"id": 15,
"state": "skipped",
"name": "apply_config_optional",
"description": "You can easily skip this step!",
"displayName": "Apply optional parameters",
"type": "operation"
}
]
},
{
"name": "second_stage",
"description": "",
"displayName": "Second stage",
"steps": [
{
"id": 16,
"state": "created",
"name": "stage2_step1",
"description": "",
"displayName": "Stage2.Step1",
"type": "operation"
}
]
}
],
"syncKey": "52e52d78-a486-4d01-80c3-db660be61581"
}
Отмена внесенных изменений шага процесса (flow) action
|
ПРИМЕЧАНИЕ
Операции подтверждения выполнения шага, пропуска выполнения шага, отмены внесенных изменений и завершения процесса используют одну и ту же конечную точку. Тип выполняемой операции определяется значением поля method (submit_step, skip_step, reset_step, complete) в теле запроса.
|
POST /api/v2/clusters/<clusterId>/actions/<actionId>/processes/<processId>/operation/ HTTP/1.1
Этот запрос отменяет изменения шага процесса (flow) action, реализованного в виде интерактивного пошагового сценария (Wizard), и возвращает шаг в исходное состояние. Запрос отправляется, когда в веб-интерфейсе ADCM пользователь нажимает кнопку Discard changes.
| Параметр | Тип | Описание |
|---|---|---|
method |
string |
Тип операции, применяемой к шагу процесса. Значение для данного запроса: |
params |
object |
Объект с входными параметрами для выполнения операции над шагом |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор процесса |
state |
string |
Состояние процесса |
currentStep |
integer или null |
Идентификатор текущего активного шага процесса. Если шаг отсутствует или все шаги завершены, возвращается |
createdAt |
string |
Дата и время создания процесса |
stages |
array of objects |
Список этапов процесса. Каждый этап содержит поля |
syncKey |
string |
Уникальный ключ синхронизации процесса, используемый для корректного и последовательного выполнения шагов |
Пример запроса
POST /api/v2/clusters/15/actions/984/processes/6/operation/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"method": "reset_step",
"params": {
"stepId": 29,
"processSyncKey": "f93edb1b-858c-4a7a-9286-d4d88fdd7146"
}
}
Пример ответа
HTTP 200 OK
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 6,
"state": "created",
"currentStep": 26,
"createdAt": "2026-02-16T10:31:35.784582Z",
"stages": [
{
"name": "manage_ssl_stage",
"displayName": "Manage SSL",
"steps": [
{
"id": 26,
"state": "created",
"name": "configure_ssl",
"displayName": "Configure SSL",
"type": "configuration"
}
]
},
{
"name": "manage_encryption_stage",
"displayName": "Manage encryption",
"steps": [
{
"id": 27,
"state": "created",
"name": "configure_encryption",
"displayName": "Configure encryption",
"type": "configuration"
},
{
"id": 28,
"state": "created",
"name": "check_encryption",
"displayName": "Validate configuration",
"type": "operation"
}
]
},
{
"name": "save_stage",
"displayName": "Save configuration",
"steps": [
{
"id": 29,
"state": "created",
"name": "configuration",
"displayName": "Config",
"type": "configuration"
},
{
"id": 30,
"state": "created",
"name": "save_configuration",
"displayName": "Save configuration",
"type": "operation"
}
]
}
],
"syncKey": "13c9b76f-ea82-45e4-b6df-c2d8826f632e"
}
Завершение процесса (flow) action
|
ПРИМЕЧАНИЕ
Операции подтверждения выполнения шага, пропуска выполнения шага, отмены внесенных изменений и завершения процесса используют одну и ту же конечную точку. Тип выполняемой операции определяется значением поля method (submit_step, skip_step, reset_step, complete) в теле запроса.
|
POST /api/v2/clusters/<clusterId>/actions/<actionId>/processes/<processId>/operation/ HTTP/1.1
Этот запрос выполняет завершение указанного процесса (flow) action, реализованного в виде интерактивного пошагового сценария (Wizard). Используется, когда в веб-интерфейсе ADCM пользователь нажимает кнопку Run.
| Параметр | Тип | Описание |
|---|---|---|
method |
string |
Тип операции, применяемой к процессу. Значение для данного запроса: |
params |
object |
Объект с входными параметрами для выполнения операции над шагом |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор процесса |
state |
string |
Состояние процесса. Возможные значения: |
currentStep |
integer или null |
Идентификатор текущего активного шага процесса. При завершении всех шагов возвращается |
createdAt |
string |
Дата и время создания процесса |
stages |
array of objects |
Список этапов процесса. Каждый этап содержит поля |
syncKey |
string |
Уникальный ключ синхронизации процесса, используемый для корректного и последовательного выполнения шагов |
Пример запроса
POST /api/v2/clusters/23/actions/2500/processes/7/operation/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"method": "complete",
"params": {
"processSyncKey": "ad8954c3-26ef-487c-9b2f-2be0f0c4bfa0"
}
}
Пример ответа
HTTP 200 OK
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 7,
"state": "completed",
"currentStep": null,
"createdAt": "2026-02-16T11:34:20.670234Z",
"stages": [
{
"name": "manage_ssl_stage",
"displayName": "Manage SSL",
"steps": [
{
"id": 19,
"state": "completed",
"name": "configure_ssl",
"displayName": "Configure SSL",
"type": "configuration"
}
]
},
{
"name": "manage_kerberos",
"displayName": "Manage Kerberos",
"steps": [
{
"id": 20,
"state": "completed",
"name": "configure_kerberos",
"displayName": "Configure Kerberos",
"type": "configuration"
}
]
},
{
"name": "general_options",
"displayName": "General options",
"steps": [
{
"id": 21,
"state": "completed",
"name": "general_options",
"displayName": "General options",
"type": "configuration"
}
]
}
],
"syncKey": "db9f45bf-989e-45e0-a463-8b09a8963da0"
}
Запуск action
POST /api/v2/clusters/<clusterId>/actions/<actionId>/run/ HTTP/1.1
Action может быть запущен, если атрибут startImpossibleReason принимает значение null. В остальных случаях этот атрибут содержит информацию о причине, по которой action невозможно запустить. Некоторые action недоступны, если объект ADCM (хост или сервис) находится в режиме обслуживания.
Правила распределения компонентов на хостах, которые влияют на action, перечислены в секции hostComponentMapRules информации об action. Если значение параметра hostComponentMapRules равно [], такие правила отсутствуют.
Запуск action для сервисов, компонентов, хостпровайдеров и хостов выполняется аналогично запуску action кластера, показанному ниже.
| Параметр | Тип | Описание |
|---|---|---|
hostComponentMap |
array of objects |
Информация о распределении компонентов на хостах |
configuration |
object |
Список конфигурационных параметров и их значений |
isVerbose |
boolean |
Определяет, необходимо ли предоставить детализированную информацию |
shouldBlockObject |
boolean |
Возможность создать блокирующий или неблокирующий concern. Возможные значения: |
process |
object |
Информация о процессе (flow) |
description |
string |
Комментарий к action. Ограничение на длину строки: 255 символов |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор action |
name |
string |
Название action |
displayName |
string |
Отображаемое название action |
action |
object |
Информация об action |
status |
string |
Статус action |
startTime |
string |
Момент старта action |
endTime |
string |
Момент остановки action |
duration |
float |
Продолжительность выполнения action |
isTerminatable |
boolean |
Возможность отменить выполнение связанной с action задачи (job) |
childJobs |
array of objects |
Связанные задачи (job) |
objects |
array of objects |
Объекты ADCM, относящиеся к action |
description |
string |
Комментарий к action |
Пример запроса
POST /api/v2/clusters/8/actions/391/run/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"hostComponentMap": [],
"configuration": {
"config": {
"disable_selinux": true,
"disable_firewalld": true,
"install_jdk": true,
"swap_off": true,
"configure_etc": false,
"service_check_on": true
},
"adcmMeta": {}
},
"isVerbose": false,
"shouldBlockObject": true,
"process": null,
"description": "Install ADS cluster"
}
Пример ответа
HTTP 200 OK
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 24,
"name": "Install",
"displayName": "Install",
"action": {
"id": 391,
"name": "Install",
"displayName": "Install"
},
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true,
"childJobs": [
{
"id": 265,
"name": "cluster_precheck",
"displayName": "Cluster precheck",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 266,
"name": "repos",
"displayName": "Repositories setup",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 267,
"name": "preinstall",
"displayName": "Preinstall",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 268,
"name": "monitoring_clients",
"displayName": "[Deprecated] Monitoring clients",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 269,
"name": "zookeeper",
"displayName": "Zookeeper",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 270,
"name": "znode",
"displayName": "Configure Znode path",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 271,
"name": "kafka_controller",
"displayName": "Kafka Controller",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 272,
"name": "kafka",
"displayName": "Kafka Broker",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 273,
"name": "kafka_cruise_control",
"displayName": "Kafka Cruise Control",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 274,
"name": "schema_registry",
"displayName": "Schema-Registry",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 275,
"name": "kafka_rest",
"displayName": "Kafka REST Proxy",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 276,
"name": "ksql",
"displayName": "ksqlDB",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 277,
"name": "kafka_connect",
"displayName": "Kafka Connect Worker",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 278,
"name": "nifi_server",
"displayName": "NiFi Server",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 279,
"name": "nifi_registry",
"displayName": "NiFi-Registry",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 280,
"name": "minifi_server",
"displayName": "MiNiFi C2 Server",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 281,
"name": "minifi_agent",
"displayName": "MiNiFi Agent",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 282,
"name": "set_property_cluster_info",
"displayName": "Set property cluster info",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 283,
"name": "kafka_controller_check",
"displayName": "Kafka Controller: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 284,
"name": "kafka_check",
"displayName": "Kafka Broker: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 285,
"name": "kafka_cruise_control",
"displayName": "Kafka Cruise Control: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 286,
"name": "schema_registry_check",
"displayName": "Schema-Registry: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 287,
"name": "kafka_rest_check",
"displayName": "Kafka REST Proxy: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 288,
"name": "ksql_check",
"displayName": "ksqlDB: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 289,
"name": "kafka_connect_check",
"displayName": "Kafka Connect: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 290,
"name": "nifi_server_check",
"displayName": "NiFi Server: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 291,
"name": "nifi_registry_check",
"displayName": "NiFi-Registry: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 292,
"name": "minifi_server_check",
"displayName": "MiNiFi C2 Server: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 293,
"name": "minifi_agent_check",
"displayName": "MiNiFi Agent: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
},
{
"id": 294,
"name": "prometheus_monitoring",
"displayName": "Prometheus monitoring: install",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": true
}
],
"objects": [
{
"type": "cluster",
"id": 8,
"name": "ADS"
}
],
"description": "Install ADS cluster"
}
Список групп хостов для действий
GET /api/v2/clusters/<clusterId>/action-host-groups/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/ HTTP/1.1
Эти запросы возвращают список групп хостов для выполнения действий, сконфигурированных на уровне кластера, сервиса или компонента соответственно. Чтобы посмотреть детальную информацию об отдельной группе хостов, укажите в запросе идентификатор группы, например (для группы хостов кластера):
GET /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/ HTTP/1.1
Для ответа поддерживается постраничный вывод.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор группы хостов |
name |
string |
Название группы хостов |
description |
string |
Описание группы хостов |
hosts |
array of objects |
Список хостов в группе. Каждый объект в списке содержит идентификатор и название хоста |
Пример ответа
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"name": "hosts_1-3",
"description": "",
"hosts": [
{
"id": 1,
"name": "dev-adqm-1.ru-central1.internal"
},
{
"id": 3,
"name": "dev-adqm-3.ru-central1.internal"
}
]
},
{
"id": 2,
"name": "hosts_2-4",
"description": "",
"hosts": [
{
"id": 2,
"name": "dev-adqm-2.ru-central1.internal"
},
{
"id": 4,
"name": "dev-adqm-4.ru-central1.internal"
}
]
}
]
}
Создание группы хостов
POST /api/v2/clusters/<clusterId>/action-host-groups/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/ HTTP/1.1
Эти запросы создают новую группу хостов для выполнения действий на уровне кластера, сервиса или компонента соответственно.
| Параметр | Тип | Описание |
|---|---|---|
name |
string |
Название группы хостов |
description |
string |
Описание группы хостов |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор группы хостов |
name |
string |
Название группы хостов |
description |
string |
Описание группы хостов |
hosts |
array of objects |
Список хостов в группе. Каждый объект в списке содержит идентификатор и название хоста |
Добавление хоста в группу
POST /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/hosts/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/<groupId>/hosts/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/<groupId>/hosts/ HTTP/1.1
Эти запросы добавляют хост в группу хостов для выполнения действий на уровне кластера, сервиса или компонента соответственно. Указание идентификатора хоста обязательно.
GET /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/host-candidates/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/<groupId>/host-candidates/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/<groupId>/host-candidates/ HTTP/1.1
| Параметр | Тип | Описание |
|---|---|---|
hostId |
integer |
Идентификатор хоста |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор хоста |
name |
string |
Название хоста |
Удаление хоста из группы
DELETE /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/hosts/<hostId>/ HTTP/1.1
DELETE /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/<groupId>/hosts/<hostId>/ HTTP/1.1
DELETE /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/<groupId>/hosts/<hostId>/ HTTP/1.1
Эти запросы удаляют хост из группы хостов в конфигурации кластера, сервиса или компонента соответственно.
Запуск действия для группы хостов
POST /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/actions/<actionId>/run/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/<groupId>/actions/<actionId>/run/ HTTP/1.1
POST /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/<groupId>/actions/<actionId>/run/ HTTP/1.1
Эти запросы запускают выполнение действия для группы хостов, созданной на уровне кластера, сервиса или компонента соответственно. Действие может быть запущено, если атрибут startImpossibleReason принимает значение null. В остальных случаях этот атрибут содержит информацию о причине, по которой действие запустить невозможно.
Набор действий, доступных для выполнения на хостах группы, зависит от объекта ADCM, на уровне которого создана группа хостов: продукта, типа объекта (кластер, сервис или компонент) и статуса этого объекта.
GET /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/actions/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/<groupId>/actions/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/<groupId>/actions/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/actions/<actionId>/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/<groupId>/actions/<actionId>/ HTTP/1.1
GET /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/<groupId>/actions/<actionId>/ HTTP/1.1
| Параметр | Тип | Описание |
|---|---|---|
hostComponentMap |
array of objects |
Информация о распределении компонентов на хостах |
configuration |
object |
Список конфигурационных параметров и их значений |
isVerbose |
boolean |
Определяет, необходимо ли предоставить детализированную информацию |
shouldBlockObject |
boolean |
Возможность создать блокирующий или неблокирующий concern. Возможные значения: |
description |
string |
Комментарий к action. Ограничение на длину строки: 255 символов |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор действия |
name |
string |
Название действия |
displayName |
string |
Отображаемое название действия |
action |
object |
Информация о действии |
status |
string |
Статус действия |
startTime |
string |
Момент старта действия |
endTime |
string |
Момент остановки действия |
duration |
float |
Продолжительность выполнения действия |
isTerminatable |
boolean |
Возможность отменить выполнение связанной с действием задачи (job) |
childJobs |
array of objects |
Связанные задачи (job) |
objects |
array of objects |
Объекты ADCM, относящиеся к действию |
description |
string |
Комментарий к action |
Пример ответа
HTTP 200 OK
Allow: POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 20,
"name": "restart",
"displayName": "Restart",
"action": {
"id": 162,
"name": "restart",
"displayName": "Restart"
},
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false,
"childJobs": [
{
"id": 57,
"name": "restart",
"displayName": "Restart",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
}
],
"objects": [
{
"type": "cluster",
"id": 1,
"name": "Test ADQM cluster"
},
{
"type": "service",
"id": 1,
"name": "ADQMDB"
},
{
"type": "action_host_group",
"id": 1,
"name": "hosts_1-3"
}
]
}
Удаление неблокирующего concern
DELETE /api/v2/concerns/<concernId>/ HTTP/1.1
Этот запрос удаляет указанный неблокирующий concern. Вы можете удалить неблокирующий concern при наличии одной из следующих ролей:
-
Cluster Administrator -
Service Administrator -
Provider Administrator -
ADCM Administrator
Удаление группы хостов для действий
DELETE /api/v2/clusters/<clusterId>/action-host-groups/<groupId>/ HTTP/1.1
DELETE /api/v2/clusters/<clusterId>/services/<serviceId>/action-host-groups/<groupId>/ HTTP/1.1
DELETE /api/v2/clusters/<clusterId>/services/<serviceId>/components/<componentId>/action-host-groups/<groupId>/ HTTP/1.1
Эти запросы удаляют группу хостов из конфигурации кластера, сервиса или компонента соответственно.
Список обновлений
GET /api/v2/clusters/<clusterId>/upgrades/ HTTP/1.1
Этот запрос возвращает список всех доступных обновлений кластера. Список обновлений хостпровайдера можно получить аналогичным образом.
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор обновления |
name |
string |
Название обновления |
displayName |
string |
Отображаемое название обновления |
bundle |
object |
Объект бандла |
startImpossibleReason |
string |
Указывает причину, по которой запуск обновления невозможен |
Пример ответа
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 21,
"name": "Upgrade to enterprise edition",
"displayName": "Upgrade to enterprise edition",
"bundle": {
"id": 12,
"name": "ADQM",
"displayName": "ADQM",
"version": "25.8.16.34_arenadata1_b2-b",
"edition": "enterprise"
},
"startImpossibleReason": "The Upgrade is not available. One or more hosts in \"Maintenance mode\""
}
]
Запуск обновлений
POST /api/v2/clusters/<clusterId>/upgrades/<upgradeId>/run/ HTTP/1.1
Запуск обновления аналогичен запуску action. Обновления доступны, если параметр isUpgradable со значением true содержится в информации о кластере.
Обновление может быть запущено, если атрибут startImpossibleReason принимает значение null. В противном случае этот атрибут содержит информацию о причине, по которой запуск обновления недоступен. Некоторые обновления недоступны, если объект ADCM (хост или сервис) находится в режиме обслуживания. Перед запуском обновления необходимо принять лицензионное соглашение бандла.
Правила распределения компонентов на хостах, влияющие на обновление, перечислены в секции hostComponentMapRules информации об обновлении. Если значение параметра hostComponentMapRules равно [], такие правила отсутствуют.
| Параметр | Тип | Описание |
|---|---|---|
hostComponentMap |
array of objects |
Информация о распределении компонентов на хостах |
configuration |
object |
Список конфигурационных параметров и их значений |
isVerbose |
boolean |
Определяет, необходимо ли предоставить детализированную информацию |
| Параметр | Тип | Описание |
|---|---|---|
id |
integer |
Идентификатор обновления |
name |
string |
Название обновления |
displayName |
string |
Отображаемое название обновления |
action |
object |
Информация об action |
status |
string |
Статус обновления |
startTime |
string |
Время начала обновления |
endTime |
string |
Время завершения обновления |
duration |
float |
Длительность процесса обновления |
isTerminatable |
boolean |
Возможность отменить выполнение связанной с обновлением задачи (job) |
childJobs |
array of objects |
Связанные задачи (job) |
objects |
array of objects |
Объекты ADCM, относящиеся к обновлению |
Пример запроса
POST /api/v2/clusters/19/upgrades/46/run/ HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"hostComponentMap": [],
"configuration": null,
"isVerbose": false
}
Пример ответа
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 20,
"name": "hadoop_2.1.10_b1-1_enterprise_upgrade_2.1.10_b1_enterprise_2.1.8_b3_strict_false-2.1.10_b1-1_strict_false_editions-enterprise_state_available-installed_faulty_installed_created_state_on_success-upgradable",
"displayName": "Upgrade: 2.1.10_b1 enterprise",
"action": {
"id": 2528,
"name": "hadoop_2.1.10_b1-1_enterprise_upgrade_2.1.10_b1_enterprise_2.1.8_b3_strict_false-2.1.10_b1-1_strict_false_editions-enterprise_state_available-installed_faulty_installed_created_state_on_success-upgradable",
"displayName": "Upgrade: 2.1.10_b1 enterprise"
},
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false,
"childJobs": [
{
"id": 471,
"name": "bundle upgrade",
"displayName": "Upgrade bundle",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
}
],
"objects": [
{
"type": "cluster",
"id": 19,
"name": "adh-2.1.8"
}
]
}