Примеры использования ADCM API v2

Содержание

Эта страница содержит описание некоторых HTTP-запросов, которые поддерживаются ADCM API v2.

В случае если запрос возвращает список, разделённый на страницы, ответ будет содержать следующие параметры.

Параметры JSON-объекта при разделении ответа на страницы
Параметр Тип Описание

count

integer

Количество элементов

next

integer

Следующая страница

previous

integer

Предыдущая страница

results

array of objects

Список, содержащий постраничную информацию об объектах в соответствии с выполненным запросом

Загрузка бандла

POST /api/v2/bundles/

Этот запрос загружает новый бандл в ADCM.

Параметры JSON-объекта запроса
Параметр Тип Описание

file

string

Файл бандла

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID бандла

name

string

Название бандла

displayName

string

Отображаемое название бандла

version

string

Версия бандла

edition

string

Издание бандла

mainPrototype

object

Объект прототипа бандла

uploadTime

string

Время загрузки бандла

category

integer

Категория продукта

signatureStatus

string

Статус подписи бандла. Возможные значения: valid, invalid, absent

Пример запроса

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",
    "category": null,
    "signatureStatus": "absent"
}

Принятие лицензионного соглашения

Этот запрос принимает лицензионное соглашение для указанного прототипа.

POST /api/v2/prototypes/<prototypeId>/license/accept/

Пример запроса

POST /api/v2/prototypes/5/license/accept/ HTTP/1.1

Пример ответа

HTTP 200 OK

Список прототипов

GET /api/v2/prototypes/

Этот запрос возвращает список всех прототипов в ADCM. Добавьте тип объекта ADCM в конце запроса, чтобы увидеть только прототипы этого типа. Для ответа поддерживается разделение на страницы.

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID прототипа

name

string

Название прототипа

displayName

string

Отображаемое название прототипа

description

string

Описание прототипа

type

string

Тип прототипа

bundle

object

Объект бандла

license

object

Объект лицензии прототипа

version

string

Версия прототипа

Пример запроса

GET /api/v2/prototypes/?type=provider

Пример ответа

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/

Этот запрос создаёт новый хостпровайдер. Вы можете увидеть все ID прототипов хостпровайдеров по адресу http://<IP address>:8000/api/v2/prototypes/?type=provider, используя IP-адрес хоста, на котором запущен контейнер ADCM.

Параметры JSON-объекта запроса
Параметр Тип Описание

prototype_id

integer

ID прототипа

name

string

Название хостпровайдера

description

string

Описание хостпровайдера

Параметры JSON-объекта ответа
Параметр Тип Описание

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

{
  "prototype_id": 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/

Этот запрос возвращает список всех хостпровайдеров, существующих в ADCM. Для ответа поддерживается разделение на страницы.

Параметры results JSON-объекта
Параметр Тип Описание

id

integer

ID хостпровайдера

name

string

Имя хостпровайдера

state

string

Состояние хостпровайдера

multiState

array of string

Список расширенных состояний хостпровайдера

prototype

object

Объект прототипа хостпровайдера

description

string

Описание хостпровайдера

concerns

array of objects

Список пунктов, требующих внимания или действий

isUpgradable

boolean

Указание на наличие обновления для хостпровайдера

mainInfo

string

Основная информация о хостпровайдере

Пример запроса

GET /api/v2/hostproviders/ HTTP/1.1

Пример ответа

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/

Этот запрос создаёт новый хост.

Параметры JSON-объекта запроса
Параметр Тип Описание

hostprovider_id

integer

ID хостпровайдера

name

string

Название хоста

cluster_id

integer

ID кластера

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID хоста

name

string

Название хоста

state

string

Состояние хоста

status

string

Статус хоста. Возможные значения: up, down

hostprovider

object

Объект хостпровайдера

prototype

object

Объект прототипа

concerns

array of objects

Список пунктов, требующих внимания или действий

isMaintenanceModeAvailable

boolean

Доступность режима обслуживания для хоста в кластере

maintenanceMode

string

Статус режима обслуживания. Возможные значения: on, off

multiState

array of string

Список расширенных состояний хоста

cluster

object

Объект кластера

components

array of objects

Список объектов компонентов хоста

Пример запроса

POST /api/v2/hosts/ HTTP/1.1
Accept: application/json

{
  "name": "my test host",
  "hostprovider_id": 4,
  "cluster_id": 9
}

Пример ответа

HTTP 201 Created
Allow: GET, POST
Content-Type: application/json
Vary: Accept

{
    "id": 8,
    "name": "test",
    "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/

Этот запрос возвращает список всех хостов, существующих в ADCM. Если вы хотите увидеть детальную информацию об отдельном хосте, добавьте к запросу host ID:

GET /api/v2/hosts/<hostId>/

Для ответа поддерживается разделение на страницы.

Параметры results JSON-объекта
Параметр Тип Описание

results

array of objects

Список, содержащий постраничную информацию об объектах в соответствии с выполненным запросом

id

integer

ID хоста

name

string

Название хоста

state

string

Состояние хоста

multiState

array of string

Список расширенных состояний хоста

status

string

Статус хоста. Возможные значения: up, down

hostprovider

object

Объект хостпровайдера

cluster

object

Объект кластера

concerns

array of objects

Список пунктов, требующих внимания или действий

isMaintenanceModeAvailable

boolean

Доступность режима обслуживания для хоста в кластере

maintenanceMode

string

Статус режима обслуживания. Возможные значения: on, off

components

array of objects

Список объектов компонентов

Пример запроса

GET /api/v2/hosts/ HTTP/1.1

Пример ответа

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
      {
        "id": 1,
        "name": "www.example.com",
        "state": "created",
        "status": "down",
        "hostprovider": {
            "id": 1,
            "name": "test hostprovider",
            "displayName": "test hostprovider"
        },
        "prototype": {
            "id": 133,
            "name": "vCloud VM",
            "displayName": "vCloud VM",
            "type": "host",
            "version": "1.1.0-1"
        },
        "concerns": [],
        "isMaintenanceModeAvailable": false,
        "maintenanceMode": "off",
        "multiState": [],
        "cluster": {
            "id": 3,
            "name": "my test cluster"
        },
        "components": []
      }
  ]
}

Удаление хоста

Этот запрос удаляет указанный хост. Вы можете удалить только хост, не принадлежащий какому-либо кластеру.

DELETE /api/v2/hosts/<hostId>/

Пример запроса

DELETE /api/v2/hosts/1/ HTTP/1.1

Пример ответа

HTTP 204 No Content

Создание кластера

POST /api/v2/clusters/

Этот запрос создаёт новый кластер. Вы можете увидеть все ID прототипов кластеров по адресу http://<IP address>:8000/api/v2/prototypes/?type=cluster, используя IP-адрес хоста, на котором запущен контейнер ADCM.

Параметры JSON-объекта запроса
Параметр Тип Описание

prototype_id

integer

ID прототипа

name

string

Название кластера

description

string

Описание кластера

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID кластера

name

string

Название кластера

state

string

Состояние кластера

multiState

array of string

Список расширенных состояний кластера

status

string

Статус кластера. Возможные значения: up, down

prototype

object

Объект прототипа кластера

description

string

Описание кластера

concerns

array of objects

Список пунктов, требующих внимания или действий

isUpgradable

boolean

Указание на наличие обновления для кластера

mainInfo

string

Основная информация о кластере

Пример запроса

POST /api/v2/clusters/ HTTP/1.1
Accept: application/json

{
  "name": "test",
  "prototype_id": 264,
  "description": "test cluster"
}

Пример ответа

HTTP 201 Created
Allow: GET, POST
Content-Type: application/json
Vary: Accept

{
    "id": 10,
    "name": "test",
    "state": "created",
    "multiState": [],
    "status": "down",
    "prototype": {
        "id": 264,
        "name": "hadoop",
        "displayName": "Hadoop",
        "version": "2.1.10_b1-1"
    },
    "description": "test cluster",
    "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/

Этот запрос возвращает список всех кластеров, существующих в ADCM. Если вы хотите увидеть детальную информацию об отдельном кластере, добавьте к запросу cluster ID:

GET /api/v2/clusters/<clusterId>/

Для ответа поддерживается разделение на страницы.

Параметры results JSON-объекта
Параметр Тип Описание

results

array of objects

Список, содержащий постраничную информацию об объектах в соответствии с выполненным запросом

id

integer

ID кластера

name

string

Название кластера

state

string

Состояние кластера

multiState

array of string

Список расширенных состояний кластера

status

string

Статус кластера. Возможные значения: up, down

prototype

object

Объект прототипа кластера

description

string

Описание кластера

concerns

array of objects

Список пунктов, требующих внимания или действий

isUpgradable

boolean

Указание на наличие обновления для кластера

mainInfo

string

Основная информация о кластере

Пример запроса

GET /api/v2/clusters/ HTTP/1.1

Пример ответа

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",
            "state": "created",
            "multiState": [],
            "status": "down",
            "prototype": {
                "id": 264,
                "name": "hadoop",
                "displayName": "Hadoop",
                "version": "2.1.10_b1-1"
            },
            "description": "",
            "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",
            "state": "created",
            "multiState": [],
            "status": "down",
            "prototype": {
                "id": 264,
                "name": "hadoop",
                "displayName": "Hadoop",
                "version": "2.1.10_b1-1"
            },
            "description": "test cluster",
            "concerns": [],
            "isUpgradable": false,
            "mainInfo": "<p>Documentation: <a href=https://docs.arenadata.io/adh/>https://docs.arenadata.io/adh/</a></p>\n"
        }
    ]
}

Удаление кластера

Этот запрос удаляет указанный кластер.

DELETE /api/v2/clusters/<clusterId>/

Пример запроса

DELETE /api/v2/clusters/3/ HTTP/1.1

Пример ответа

HTTP 204 No Content

Добавление сервиса

POST /api/v2/clusters/<clusterId>/services/

Этот запрос добавляет сервис в указанный кластер. Обязателен ID прототипа сервиса. Вы можете увидеть все ID прототипов сервисов по адресу http://<IP address>:8000/api/v2/prototypes/?type=service, используя IP-адрес хоста, на котором запущен контейнер ADCM.

Параметры JSON-объекта запроса
Параметр Тип Описание

prototype_id

integer

ID прототипа сервиса

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID сервиса

name

string

Имя сервиса

displayName

string

Отображаемое имя сервиса

prototype

object

Объект прототипа сервиса

cluster

object

Объект кластера

status

string

Статус сервиса

state

string

Состояние сервиса

multiState

array of string

Список расширенных состояний сервиса

concerns

array of objects

Список пунктов, требующих внимания или действий

isMaintenanceModeAvailable

boolean

Доступность режима обслуживания для сервиса

maintenanceMode

string

Статус режима обслуживания. Возможные значения: on, off

mainInfo

string

Основная информация о сервисе

Пример запроса

POST /api/v2/clusters/2/services/ HTTP/1.1
Accept: application/json

[
    {
      "prototype_id": 278
    }
]

Пример ответа

HTTP 201 Created
Allow: GET, POST
Content-Type: application/json
Vary: Accept

[
    {
        "id": 15,
        "name": "zookeeper",
        "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/services/<clusterId>/services/

Этот запрос возвращает список всех сервисов, добавленных в указанный кластер. Если вы хотите увидеть детальную информацию об отдельном сервисе, добавьте к запросу service ID:

GET /api/v2/services/<clusterId>/services/<serviceId>/

Для ответа поддерживается разделение на страницы.

Параметры results JSON-объекта
Параметр Тип Описание

results

array of objects

Список, содержащий постраничную информацию об объектах в соответствии с выполненным запросом

id

integer

ID сервиса

name

string

Имя сервиса

displayName

string

Отображаемое имя сервиса

prototype

object

Объект прототипа сервиса

cluster

object

Объект кластера

status

string

Статус сервиса

state

string

Состояние сервиса

multiState

array of string

Список расширенных состояний сервиса

concerns

array of objects

Список пунктов, требующих внимания или действий

isMaintenanceModeAvailable

boolean

Доступность режима обслуживания для сервиса

maintenanceMode

string

Статус режима обслуживания. Возможные значения: on, off

mainInfo

string

Основная информация о сервисе

Пример запроса

GET /api/v2/clusters/2/services/ HTTP/1.1

Пример ответа

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",
            "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>/

Пример запроса

DELETE /api/v2/clusters/3/services/1/ HTTP/1.1

Пример ответа

HTTP 204 No Content

Добавление хоста в кластер

POST /api/v2/clusters/<clusterId>/hosts/

Этот запрос добавляет хост в указанный кластер. ID хоста обязателен.

Параметры JSON-объекта запроса
Параметр Тип Описание

host_id

integer

ID хоста

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID хоста

name

string

Имя хоста

state

string

Состояние хоста

status

string

Статус хоста. Возможные значения: up, down

hostprovider

object

Объект хостпровайдера

prototype

object

Объект прототипа хоста

concerns

array of objects

Список пунктов, требующих внимания или действий

isMaintenanceModeAvailable

boolean

Доступность режима обслуживания для хоста

maintenanceMode

boolean

Статус режима обслуживания. Возможные значения on, off

multiState

array of string

Список расширенных состояний хоста

cluster

object

Объект кластера

components

array of objects

Список объектов компонентов

Пример запроса

POST /api/v2/clusters/10/hosts/ HTTP/1.1
Accept: application/json

{
  "host_id": 8
}

Пример ответа

HTTP 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 8,
    "name": "test",
    "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": []
}

Удаление хоста из кластера

DELETE /api/v2/clusters/<clusterId>/hosts/<hostId>/

Этот запрос отсоединяет указанный хост от указанного кластера.

Пример запроса

DELETE /api/v2/clusters/3/hosts/6/

Пример ответа

HTTP 200 OK

Маппинг компонентов на хосты

POST /api/v2/clusters/<clusterId>/mapping/

Этот запрос позволяет добавить компоненты на существующие хосты и сохранить отображение (маппинг). Укажите компоненты, которые должны быть добавлены на указанные хосты. Если маппинг хостов и компонентов для кластера уже сущестовал, то чтобы сохранить новый маппинг, нужно скопировать и ещё раз отправить всё, что предшествовало новому маппингу.

Параметры JSON-объекта запроса
Параметр Тип Описание

id

integer

ID маппинга, если он уже существует

host_id

integer

ID хоста

component_id

integer

ID компонента

Пример запроса

POST /api/v2/clusters/3/mapping/ HTTP/1.1
Accept: application/json

[
  {
    "host_id": 2,
    "component_id": 2
  }
]

Пример ответа

HTTP 201 Created
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
  {
    "id": 1,
    "host_id": 2,
    "component_id": 2
  }
]

Список текущего маппинга компонентов на хосты

GET /api/v2/clusters/<clusterId>/mapping/

Этот запрос возвращает текущий маппинг хостов и компонентов (в случае, если маппинг существует) для указанного кластера.

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID маппинга

hostId

integer

ID хоста

componentId

integer

ID компонента

Пример запроса

GET /api/v2/clusters/8/mapping/ HTTP/1.1

Пример ответа

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "id": 3,
        "hostId": 4,
        "componentId": 33
    }
]

Список action

GET /api/v2/clusters/<clusterId>/actions/

Этот запрос возвращает список всех action кластера. Если вы хотите увидеть детальную информацию об отдельном action, добавьте к запросу action ID:

GET /api/v2/clusters/<clusterId>/actions/<actionId>/

Хостпровайдеры, хосты и сервисы тоже обладают action, доступ к которым производится аналогично.

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

Action ID

name

string

Название action

displayName

string

Отображаемое название action

startImpossibleReason

string

Указывает причину, по которой запуск action невозможен

Пример запроса

GET /api/v2/clusters/5/actions/ HTTP/1.1

Пример ответа

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/

Action может быть запущен, если атрибут start_impossible_reason принимает значение null. В остальных случаях этот атрибут содержит информацию о причине того, что action невозможно запустить. Некоторые action недоступны, если объект ADCM (хост или сервис) находится в режиме обслуживания.

Правила маппинга компонентов и хостов, которые влияют на action, перечислены в секции host_component_map_rules информации о кластере. host_component_map_rules : [] означает, что такие правила отстутствуют.

Action для сервисов, компонентов, хостпровайдеров и хостов запускаются аналогично action кластера, показанным ниже.

Параметры JSON-объекта запроса
Параметр Тип Описание

host_component_map

array of objects

Информация о маппинге компонентов и хостов

configuration

object

Список конфигурационных параметров и их значений

is_verbose

boolean

Определяет, необходимо ли предоставить детальную информацию

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

Action ID

name

string

Название action

displayName

string

Отображаемое название action

action

object

Информация об action

status

string

Статус action

startTime

string

Момент старта action

endTime

string

Момент остановки action

duration

string

Продолжительность выполнения action

isTerminatable

boolean

Возможность отменить выполнение связанной с action задачи (job)

childJobs

object

Связанные задачи (jobs)

objects

array of objects

Объекты ADCM, отоносящиеся к action

Пример запроса

POST /api/v2/clusters/11/actions/1912/run/ HTTP/1.1
Accept: application/json

{
    "host_component_map": [],
    "configuration": {
        "config": {
            "disable_selinux": true,
            "disable_firewalld": true,
            "install_jdk": true,
            "swap_off": true,
            "configure_etc": false
        },
        "adcmMeta": {}
    },
    "is_verbose": 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/cluster/<clusterId>/upgrades/

Этот запрос возвращает список всех доступных обновлений кластера. Список обновлений хостпровайдера можно получить аналогично.

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID обновления

name

string

Название обновления

displayName

string

Отображаемое название обновления

Пример запроса

GET /api/v2/clusters/12/upgrades/ HTTP/1.1

Пример ответа

HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
  {
    "id": 28,
    "name": "2.8.1_arenadata1_b1 enterprise",
    "displayName": "2.8.1_arenadata1_b1 enterprise",
  }
]

Запуск обновлений

POST /api/v2/clusters/<clusterId>/upgrades/<upgradeId>/run/

Запуск обновления аналогичен запуску action. Обновления доступны, если is_upgradable : true содержится в информации о кластере. Перед запуском обновления необходимо принять лицензионное соглашение бандла.

Правила маппинга компонентов и хостов, которые влияют на обновление, перечислены в секции host_component_map_rules информации о кластере. host_component_map_rules : [] означает, что такие правила отстутствуют.

Параметры JSON-объекта запроса
Параметр Тип Описание

host_component_map

array of objects

Информация о маппинге компонентов и хостов

configuration

object

Список конфигурационных параметров и их значений

is_verbose

boolean

Определяет, необходимо ли предоставить детальную информацию

Параметры JSON-объекта ответа
Параметр Тип Описание

id

integer

ID обновления

name

string

Название обновления

displayName

string

Отображаемое название обновления

action

object

Информация об action

status

string

Статус обновления

startTime

string

Момент старта обновления

endTime

string

Момент остановки обновления

duration

string

Продолжительность процесса обновления

isTerminatable

boolean

Возможность отменить выполнение связанной с обновлением задачи (job)

childJobs

object

Связанные задачи (jobs)

objects

object

Объекты ADCM, отоносящиеся к обновлению

Пример запроса

POST /api/v2/clusters/19/upgrades/46/run/ HTTP/1.1
Accept: application/json

{
  "host_component_map": [],
  "configuration": null
  "is_verbose": 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"
        }
    ]
}
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней