Примеры использования ADCM API v2
- Получение токена доступа
- Загрузка бандла
- Принятие лицензионного соглашения
- Список прототипов
- Создание хостпровайдера
- Список хостпровайдеров
- Создание хоста
- Список хостов
- Удаление хоста
- Создание кластера
- Изменение названия и описания кластера
- Список кластеров
- Удаление кластера
- Добавление сервиса
- Список сервисов
- Удаление сервиса
- Добавление хоста в кластер
- Удаление хоста из кластера
- Список версий конфигурации
- Создание версии конфигурации
- Маппинг компонентов на хосты
- Список текущего маппинга компонентов на хосты
- Список action
- Запуск action
- Список групп хостов для действий
- Создание группы хостов
- Добавление хоста в группу
- Удаление хоста из группы
- Запуск действия для группы хостов
- Удаление неблокирующего concern
- Удаление группы хостов для действий
- Список обновлений
- Запуск обновлений
Эта страница содержит описание некоторых HTTP-запросов, которые поддерживаются ADCM API v2.
В случае если запрос возвращает список, разделенный на страницы, ответ будет содержать параметры, описанные ниже.
Параметр | Тип | Описание |
---|---|---|
count |
integer |
Количество элементов |
next |
integer |
Следующая страница |
previous |
integer |
Предыдущая страница |
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 |
string |
Файл бандла |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID бандла |
name |
string |
Название бандла |
displayName |
string |
Отображаемое название бандла |
version |
string |
Версия бандла |
edition |
string |
Издание бандла |
mainPrototype |
object |
Объект прототипа бандла |
uploadTime |
string |
Время загрузки бандла |
signatureStatus |
string |
Статус подписи бандла. Возможные значения: |
Пример запроса
POST /api/v2/bundles/ HTTP/1.1
Accept: application/json
Content-Type: multipart/form-data
{
"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 |
ID прототипа |
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
Этот запрос создает новый хостпровайдер. Вы можете увидеть все ID прототипов хостпровайдеров по адресу http://<IP address>:8000/api/v2/prototypes/?type=provider, используя IP-адрес хоста, на котором запущен контейнер ADCM.
Параметр | Тип | Описание |
---|---|---|
prototypeId |
integer |
ID прототипа |
name |
string |
Название хостпровайдера |
description |
string |
Описание хостпровайдера |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID хостпровайдера |
name |
string |
Имя хостпровайдера |
state |
string |
Состояние хостпровайдера |
multiState |
array of string |
Список расширенных состояний хостпровайдера |
prototype |
object |
Объект прототипа хостпровайдера |
description |
string |
Описание хостпровайдера |
concerns |
array of objects |
Список пунктов, требующих внимания или действий |
isUpgradable |
boolean |
Указание на наличие обновления для хостпровайдера |
mainInfo |
string |
Основная информация о хостпровайдере |
Пример запроса
POST /api/v2/hostproviders/ HTTP/1.1
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 |
ID хостпровайдера |
name |
string |
Имя хостпровайдера |
state |
string |
Состояние хостпровайдера |
multiState |
array of string |
Список расширенных состояний хостпровайдера |
prototype |
object |
Объект прототипа хостпровайдера |
description |
string |
Описание хостпровайдера |
concerns |
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 |
ID хостпровайдера |
name |
string |
Название хоста |
clusterId |
integer |
ID кластера |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID хоста |
name |
string |
Название хоста |
description |
string |
Описание хоста |
state |
string |
Состояние хоста |
status |
string |
Статус хоста. Возможные значения: |
hostprovider |
object |
Объект хостпровайдера |
prototype |
object |
Объект прототипа |
concerns |
array of objects |
Список пунктов, требующих внимания или действий |
isMaintenanceModeAvailable |
boolean |
Доступность режима обслуживания для хоста в кластере |
maintenanceMode |
string |
Статус режима обслуживания. Возможные значения: |
multiState |
array of string |
Список расширенных состояний хоста |
cluster |
object |
Объект кластера |
components |
array of objects |
Список объектов компонентов хоста |
Пример запроса
POST /api/v2/hosts/ HTTP/1.1
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. Если вы хотите увидеть детальную информацию об отдельном хосте, добавьте к запросу host ID:
GET /api/v2/hosts/<hostId>/ HTTP/1.1
Для ответа поддерживается разделение на страницы.
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID хоста |
name |
string |
Название хоста |
description |
string |
Описание хоста |
state |
string |
Состояние хоста |
status |
string |
Статус хоста. Возможные значения: |
hostprovider |
object |
Объект хостпровайдера |
prototype |
object |
Объект прототипа |
concerns |
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
Этот запрос создает новый кластер. Вы можете увидеть все ID прототипов кластеров по адресу http://<IP address>:8000/api/v2/prototypes/?type=cluster, используя IP-адрес хоста, на котором запущен контейнер ADCM.
Параметр | Тип | Описание |
---|---|---|
prototypeId |
integer |
ID прототипа |
name |
string |
Название кластера |
description |
string |
Описание кластера |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID кластера |
name |
string |
Название кластера |
description |
string |
Описание кластера |
state |
string |
Состояние кластера |
multiState |
array of string |
Список расширенных состояний кластера |
status |
string |
Статус кластера. Возможные значения: |
prototype |
object |
Объект прототипа кластера |
concerns |
array of objects |
Список пунктов, требующих внимания или действий |
isUpgradable |
boolean |
Указание на наличие обновления для кластера |
mainInfo |
string |
Основная информация о кластере |
Пример запроса
POST /api/v2/clusters/ HTTP/1.1
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 |
Название кластера. Ограничение на длину строки: 1000 символов |
description |
string |
Описание кластера |
state |
string |
Состояние кластера. Ограничение на длину строки: 1000 символов |
multiState |
array of string |
Список расширенных состояний кластера |
status |
string |
Статус кластера. Возможные значения: |
prototype |
object |
Объект прототипа кластера |
concerns |
array of objects |
Список пунктов, требующих внимания или действий |
isUpgradable |
boolean |
Указание на наличие обновления для кластера |
mainInfo |
string |
Основная информация о кластере |
Пример запроса
PATCH /api/v2/clusters/73/ HTTP/1.1
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. Если вы хотите увидеть детальную информацию об отдельном кластере, добавьте к запросу cluster ID:
GET /api/v2/clusters/<clusterId>/ HTTP/1.1
Для ответа поддерживается разделение на страницы.
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID кластера |
name |
string |
Название кластера |
description |
string |
Описание кластера |
state |
string |
Состояние кластера |
multiState |
array of string |
Список расширенных состояний кластера |
status |
string |
Статус кластера. Возможные значения: |
prototype |
object |
Объект прототипа кластера |
concerns |
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
Этот запрос добавляет сервис в указанный кластер. Обязателен ID прототипа сервиса. Вы можете увидеть все ID прототипов сервисов по адресу http://<IP address>:8000/api/v2/prototypes/?type=service, используя IP-адрес хоста, на котором запущен контейнер ADCM.
Параметр | Тип | Описание |
---|---|---|
prototypeId |
integer |
ID прототипа сервиса |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID сервиса |
name |
string |
Имя сервиса |
description |
string |
Описание сервиса |
displayName |
string |
Отображаемое имя сервиса |
prototype |
object |
Объект прототипа сервиса |
cluster |
object |
Объект кластера |
status |
string |
Статус сервиса |
state |
string |
Состояние сервиса |
multiState |
array of string |
Список расширенных состояний сервиса |
concerns |
array of objects |
Список пунктов, требующих внимания или действий |
isMaintenanceModeAvailable |
boolean |
Доступность режима обслуживания для сервиса |
maintenanceMode |
string |
Статус режима обслуживания. Возможные значения: |
mainInfo |
string |
Основная информация о сервисе |
Пример запроса
POST /api/v2/clusters/2/services/ HTTP/1.1
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
Этот запрос возвращает список всех сервисов, добавленных в указанный кластер. Если вы хотите увидеть детальную информацию об отдельном сервисе, добавьте к запросу service ID:
GET /api/v2/clusters/<clusterId>/services/<serviceId>/ HTTP/1.1
Для ответа поддерживается разделение на страницы.
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID сервиса |
name |
string |
Имя сервиса |
description |
string |
Описание сервиса |
displayName |
string |
Отображаемое имя сервиса |
prototype |
object |
Объект прототипа сервиса |
cluster |
object |
Объект кластера |
status |
string |
Статус сервиса |
state |
string |
Состояние сервиса |
multiState |
array of string |
Список расширенных состояний сервиса |
concerns |
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"
}
]
}
Удаление сервиса
DELETE /api/v2/clusters/<clusterId>/services/<serviceId>/ HTTP/1.1
Этот запрос удаляет сервис из указанного кластера. Сервис, для компонентов которого существует маппинг на хосты, не всегда возможно удалить.
Добавление хоста в кластер
POST /api/v2/clusters/<clusterId>/hosts/ HTTP/1.1
Этот запрос добавляет хост в указанный кластер. Обязателен ID хоста.
Параметр | Тип | Описание |
---|---|---|
hostId |
integer |
ID хоста |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID хоста |
name |
string |
Имя хоста |
description |
string |
Описание хоста |
state |
string |
Состояние хоста |
status |
string |
Статус хоста. Возможные значения: |
hostprovider |
object |
Объект хостпровайдера |
prototype |
object |
Объект прототипа хоста |
concerns |
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
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 |
datetime |
Дата и время создания версии конфигурации |
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 |
datetime |
Дата и время создания версии конфигурации |
config |
object |
Список конфигурационных параметров и их значений |
adcmMeta |
object |
Возможность активировать или деактивировать секцию настроек (конфигурационных параметров) в дереве конфигурации |
description |
string |
Описание версии конфигурации |
Пример запроса
POST /api/v2/clusters/27/services/105/configs/ HTTP/1.1
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
Этот запрос позволяет добавить компоненты на существующие хосты и сохранить отображение (маппинг). Укажите компоненты, которые должны быть добавлены на указанные хосты. Если маппинг хостов и компонентов для кластера уже существовал, то чтобы сохранить новый маппинг, нужно скопировать и еще раз отправить все, что предшествовало новому маппингу.
Параметр | Тип | Описание |
---|---|---|
hostId |
integer |
ID хоста |
componentId |
integer |
ID компонента |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID маппинга |
hostId |
integer |
ID хоста |
componentId |
integer |
ID компонента |
Список текущего маппинга компонентов на хосты
GET /api/v2/clusters/<clusterId>/mapping/ HTTP/1.1
Этот запрос возвращает текущий маппинг хостов и компонентов (в случае, если маппинг существует) для указанного кластера. Порядок вывода не гарантируется.
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID маппинга |
hostId |
integer |
ID хоста |
componentId |
integer |
ID компонента |
Список action
GET /api/v2/clusters/<clusterId>/actions/ HTTP/1.1
Этот запрос возвращает список всех action кластера. Если вы хотите увидеть детальную информацию об отдельном action, добавьте к запросу action ID:
GET /api/v2/clusters/<clusterId>/actions/<actionId>/ HTTP/1.1
Хостпровайдеры, хосты и сервисы тоже обладают action, доступ к которым производится аналогично.
Параметр | Тип | Описание |
---|---|---|
id |
integer |
Action ID |
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
}
]
Запуск 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. Возможные значения: |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
Action ID |
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 |
Пример запроса
POST /api/v2/clusters/11/actions/1912/run/ HTTP/1.1
Accept: application/json
{
"hostComponentMap": [],
"configuration": {
"config": {
"disable_selinux": true,
"disable_firewalld": true,
"install_jdk": true,
"swap_off": true,
"configure_etc": false
},
"adcmMeta": {}
},
"isVerbose": false
}
Пример ответа
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"id": 19,
"name": "Install",
"displayName": "Install",
"action": {
"id": 1912,
"name": "Install",
"displayName": "Install"
},
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false,
"childJobs": [
{
"id": 446,
"name": "repos",
"displayName": "Repositories setup",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 447,
"name": "preinstall",
"displayName": "Preinstall",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 448,
"name": "monitoring_clients",
"displayName": "Monitoring clients",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 449,
"name": "zookeeper",
"displayName": "Zookeeper",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 450,
"name": "znode",
"displayName": "Configure Znode path",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 451,
"name": "kafka",
"displayName": "Kafka",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 452,
"name": "kafka_check",
"displayName": "Kafka: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 453,
"name": "kafka_manager",
"displayName": "Kafka-Manager",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 454,
"name": "kafka_manager_check",
"displayName": "Kafka-Manager: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 455,
"name": "schema_registry",
"displayName": "Schema-Registry",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 456,
"name": "schema_registry_check",
"displayName": "Schema-Registry: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 457,
"name": "kafka_rest",
"displayName": "Kafka REST Proxy",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 458,
"name": "kafka_rest_check",
"displayName": "Kafka REST Proxy: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 459,
"name": "ksql",
"displayName": "ksqlDB",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 460,
"name": "ksql_check",
"displayName": "ksqlDB: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 461,
"name": "kafka_connect",
"displayName": "Kafka Connect Worker",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 462,
"name": "kafka_connect_check",
"displayName": "Kafka Connect: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 463,
"name": "nifi_server",
"displayName": "NiFi Server",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 464,
"name": "nifi_server_check",
"displayName": "NiFi Server: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 465,
"name": "nifi_registry",
"displayName": "NiFi-Registry",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 466,
"name": "nifi_registry_check",
"displayName": "NiFi-Registry: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 467,
"name": "minifi_server",
"displayName": "MiNiFi C2 Server",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 468,
"name": "minifi_server_check",
"displayName": "MiNiFi C2 Server: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 469,
"name": "minifi_agent",
"displayName": "MiNiFi Agent",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
},
{
"id": 470,
"name": "minifi_agent_check",
"displayName": "MiNiFi Agent: Check",
"status": "created",
"startTime": null,
"endTime": null,
"duration": null,
"isTerminatable": false
}
],
"objects": [
{
"type": "cluster",
"id": 11,
"name": "ADS"
}
]
}
Список групп хостов для действий
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
Эти запросы добавляют хост в группу хостов для выполнения действий на уровне кластера, сервиса или компонента соответственно. Обязателен ID хоста.
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 |
Определяет, необходимо ли предоставить детальную информацию |
Параметр | Тип | Описание |
---|---|---|
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, относящиеся к действию |
Пример ответа
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 |
ID обновления |
name |
string |
Название обновления |
displayName |
string |
Отображаемое название обновления |
Запуск обновлений
POST /api/v2/clusters/<clusterId>/upgrades/<upgradeId>/run/ HTTP/1.1
Запуск обновления аналогичен запуску action. Обновления доступны, если isUpgradable : true
содержится в информации о кластере. Перед запуском обновления необходимо принять лицензионное соглашение бандла.
Правила маппинга компонентов и хостов, которые влияют на обновление, перечислены в секции hostComponentMapRules
информации об обновлении. hostComponentMapRules : []
означает, что такие правила отстутствуют.
Параметр | Тип | Описание |
---|---|---|
hostComponentMap |
array of objects |
Информация о маппинге компонентов и хостов |
configuration |
object |
Список конфигурационных параметров и их значений |
isVerbose |
boolean |
Определяет, необходимо ли предоставить детальную информацию |
Параметр | Тип | Описание |
---|---|---|
id |
integer |
ID обновления |
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
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"
}
]
}