Примеры использования ADCM API v2
- Получение токена доступа
- Загрузка бандла
- Принятие лицензионного соглашения
- Список прототипов
- Создание хостпровайдера
- Список хостпровайдеров
- Создание хоста
- Список хостов
- Удаление хоста
- Создание кластера
- Список кластеров
- Удаление кластера
- Добавление сервиса
- Список сервисов
- Удаление сервиса
- Добавление хоста в кластер
- Удаление хоста из кластера
- Маппинг компонентов на хосты
- Список текущего маппинга компонентов на хосты
- Список action
- Запуск action
- Список групп хостов для действий
- Создание группы хостов
- Добавление хоста в группу
- Удаление хоста из группы
- Запуск действия для группы хостов
- Удаление группы хостов для действий
- Список обновлений
- Запуск обновлений
Эта страница содержит описание некоторых HTTP-запросов, которые поддерживаются ADCM API v2.
В случае если запрос возвращает список, разделённый на страницы, ответ будет содержать следующие параметры.
Параметр | Тип | Описание |
---|---|---|
count |
integer |
Количество элементов |
next |
integer |
Следующая страница |
previous |
integer |
Предыдущая страница |
results |
array of objects |
Список, содержащий постраничную информацию об объектах в соответствии с выполненным запросом |
Получение токена доступа
POST /api/v2/token/ HTTP/1.1
Этот запрос создает токен, позволяющий пользователю получить доступ к защищенным конечным точкам (endpoints) 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"
}
Список кластеров
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": []
}
]
Маппинг компонентов на хосты
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 |
Связанные задачи (jobs) |
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
Эти запросы добавляют хост в группу хостов для выполнения действий на уровне кластера, сервиса или компонента соответственно. Обязателен идентификатор хоста.
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 |
Связанные задачи (jobs) |
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"
}
]
}
Удаление группы хостов для действий
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 |
Связанные задачи (jobs) |
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"
}
]
}