REST API
Примечание
Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.
Sign API
Предоставляет управление подписями узлов и виртуальных машин.
Управление подписями виртуальных машин
Методы управления подписями конкретных виртуальных машин, доступные Администраторам.
Получение указанной подписи для виртуальной машины.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
server_id |
path |
string |
Идентификатор виртуальной машины. |
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sign/$server_id
Ответ
Параметры ответа:
Name |
In |
Type |
Description |
|---|---|---|---|
id |
body |
integer |
Идентификатор подписи. |
instance_name |
body |
string |
Идентификационное имя ВМ на узле, выданное libvirt. |
server_id |
body |
string |
Идентификатор виртуальной машины. |
node_id |
body |
integer |
Идентификатор узла. |
is_valid |
body |
string |
Состояние подписи ВМ. Возможные значения
- |
created_at |
body |
string |
Дата и время создания объекта. |
updated_at |
body |
string |
Дата и время изменения объекта. |
Пример результата в JSON формате:
{
"sign": {
"id": 115,
"instance_name": "instance-00000068",
"server_id": "bdfe7b89-4d44-4edb-af5a-de8733aa3eba",
"node_id": 2,
"is_valid": "true",
"created_at": "Mon, 03 Jun 2024 10:45:36 GMT",
"updated_at": null
}
}
Получить список всех подписей для отслеживаемых виртуальных машин.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
offset (Optional) |
path |
integer |
Номер позиции для получения данных. |
limit (Optional) |
path |
integer |
Ограничение количества получаемых данных. |
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/sign?$offset=0&$limit=10
Ответ
Параметры ответа:
Name |
In |
Type |
Description |
|---|---|---|---|
id |
body |
integer |
Идентификатор подписи. |
instance_name |
body |
string |
Идентификационное имя ВМ на узле, выданное libvirt. |
server_id |
body |
string |
Идентификатор виртуальной машины. |
node_id |
body |
integer |
Идентификатор узла. |
is_valid |
body |
string |
Состояние подписи ВМ. Возможные значения
- |
created_at |
body |
string |
Дата и время создания объекта. |
updated_at |
body |
string |
Дата и время изменения объекта. |
Пример ответа в формате JSON:
{
"signs": [
{
"created_at": "Mon, 03 Jun 2024 10:45:35 GMT",
"id": 114,
"instance_name": "instance-00000069",
"is_valid": "true",
"node_id": 2,
"server_id": "ee57ad11-5c74-4e49-bf2d-46858570b3a1",
"updated_at": null
},
{
"created_at": "Mon, 03 Jun 2024 10:45:36 GMT",
"id": 115,
"instance_name": "instance-00000068",
"is_valid": "true",
"node_id": 2,
"server_id": "bdfe7b89-4d44-4edb-af5a-de8733aa3eba",
"updated_at": null
}
]
}
Создание подписи для указанной виртуальной машины.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
server_id |
body |
string |
Идентификатор виртуальной машины. |
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d "{\"server_id\": \"$server_id\"}" http://controller:9362/v1/sign
Ответ
Параметры ответа:
Name |
In |
Type |
Description |
|---|---|---|---|
id |
body |
integer |
Идентификатор подписи. |
instance_name |
body |
string |
Идентификационное имя ВМ на узле, выданное libvirt. |
server_id |
body |
string |
Идентификатор виртуальной машины. |
node_id |
body |
integer |
Идентификатор узла. |
is_valid |
body |
string |
Состояние подписи ВМ. Возможные значения
- |
created_at |
body |
string |
Дата и время создания объекта. |
updated_at |
body |
string |
Дата и время изменения объекта. |
Пример ответа в формате JSON:
{
"sign": {
"created_at": "Mon, 03 Jun 2024 10:45:35 GMT",
"id": 114,
"instance_name": "instance-00000069",
"is_valid": "true",
"node_id": 2,
"server_id": "ee57ad11-5c74-4e49-bf2d-46858570b3a1",
"updated_at": null
}
}
Обновление подписи для указанной виртуальной машины.
Запрос
Параметры запроса:
server_id: server_id|body|required
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d "{\"server_id\": \"$server_id\"}" http://controller:9362/v1/sign
Ответ
Параметры ответа:
Name |
In |
Type |
Description |
|---|---|---|---|
id |
body |
integer |
Идентификатор подписи. |
instance_name |
body |
string |
Идентификационное имя ВМ на узле, выданное libvirt. |
server_id |
body |
string |
Идентификатор виртуальной машины. |
node_id |
body |
integer |
Идентификатор узла. |
is_valid |
body |
string |
Состояние подписи ВМ. Возможные значения
- |
created_at |
body |
string |
Дата и время создания объекта. |
updated_at |
body |
string |
Дата и время изменения объекта. |
Пример ответа в формате JSON:
{
"sign": {
"created_at": "Mon, 03 Jun 2024 10:45:35 GMT",
"id": 114,
"instance_name": "instance-00000069",
"is_valid": "true",
"node_id": 2,
"server_id": "ee57ad11-5c74-4e49-bf2d-46858570b3a1",
"updated_at": "Mon, 03 Jun 2024 13:53:12 GMT"
}
}
Управление валидацией вычислительных узлов
Активировать или деактивировать валидацию на указанном вычислительном узле.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
node_id |
path |
integer |
Идентификатор узла. |
action |
body |
string |
Включение/выключение валидации на узле. Возможные значения
- |
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d "{\"action\": \"$action\"}" "http://controller:9362/v1/sign/node/$node_id/action"
Ответ
Параметры ответа:
Name |
In |
Type |
Description |
|---|---|---|---|
success |
body |
string |
Статус запроса на включение/выключение валидации на узле. |
task_id |
body |
string |
ID задачи в celery. |
node_id |
body |
integer |
Идентификатор узла. |
action |
body |
string |
Включение/выключение валидации на узле. Возможные значения
- |
Пример ответа в формате JSON:
{
"action": "activate",
"node_id": 1,
"success": true,
"task_id": "5e14e381-f98b-475e-8b19-7bd77bde8701"
}
Получение списка узлов.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
id (Optional) |
path |
integer |
Идентификатор узла. |
image_id (Optional) |
path |
integer |
Идентификатор образа узла. |
node_class_id (Optional) |
path |
integer |
Идентификатор класса узла. |
node_type_id (Optional) |
path |
integer |
Идентификатор типа класса узла. |
hypervisor_id (Optional) |
path |
string |
Идентификатор вычислительного узла в OpenStack. |
name (Optional) |
path |
string |
Имя узла. |
controller_id (Optional) |
path |
string |
Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type (Optional) |
path |
string |
Тип виртуального контроллера. |
description (Optional) |
path |
string |
Описание узла. |
dtc_number (Optional) |
path |
integer |
Номер дата-центра. Может принимать значения от 1 до 99. |
unit_number (Optional) |
path |
integer |
Место в стойке. Может принимать значения от 1 до 99. |
rack_number (Optional) |
path |
integer |
Номер стойки. Может принимать значения от 1 до 99. |
row_number (Optional) |
path |
integer |
Номер ряда стоек. Может принимать значения от 1 до 99. |
cpu_amount (Optional) |
path |
integer |
Количество процессоров. Может принимать значения от 0 до 99. |
ram_mb (Optional) |
path |
integer |
Объём оперативной памяти (МБ). |
hdd_gb (Optional) |
path |
integer |
Объем жесткого диска (ГБ). |
mac_address (Optional) |
path |
string |
MAC-адреса узла. |
title (Optional) |
path |
string |
Наименование узла. |
is_reserved (Optional) |
path |
bool |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
is_controller (Optional) |
path |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
inventory_code (Optional) |
path |
integer |
Инвентарный номер. |
power_state (Optional) |
path |
string |
Состояние питания. Возможные значения
|
owner (Optional) |
path |
string |
Имя пользователя, создавшего узел. |
active (Optional) |
path |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition (Optional) |
path |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
offset (Optional) |
path |
integer |
Номер позиции для получения данных. |
limit (Optional) |
path |
integer |
Ограничение количества получаемых данных. |
with_os_object (Optional) |
path |
bool |
Параметр, позволяющий расширять узлы класса |
with_hwinfo (Optional) |
path |
bool |
Параметр, позволяющий расширять узлы класса |
Параметры, поддерживающие модификаторы: id, image_id, node_class_id, node_type_id, hypervisor_id, name, controller_id, controller_type, description, dtc_number, unit_number, rack_number, row_number, cpu_amount, ram_mb, hdd_gb, mac_address, title, is_reserved, is_controller, inventory_code, power_state, owner, active, condition.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/ | python -m json.tool
Ответ
Параметры ответа:
Name |
In |
Type |
Description |
|---|---|---|---|
active |
body |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition |
body |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
controller_id |
body |
string |
Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type |
body |
string |
Тип виртуального контроллера. |
cpu_amount |
body |
integer |
Количество процессоров. Может принимать значения от 0 до 99. |
cpu_allocation_ratio |
body |
float |
Допустимое превышение CPU. |
description |
body |
string |
Описание узла. |
dtc_number |
body |
integer |
Номер дата-центра. Может принимать значения от 1 до 99. |
hdd_gb |
body |
integer |
Объем жесткого диска (ГБ). |
hypervisor_id |
body |
string |
Идентификатор вычислительного узла в OpenStack. |
id |
body |
integer |
Идентификатор узла. |
image |
body |
object |
PXE образ узла. |
inventory_code |
body |
integer |
Инвентарный номер. |
ip_addresses (Optional) |
body |
list |
Список IP-адресов узла. Пример: |
is_controller |
body |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
is_reserved |
body |
bool |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
mac_address |
body |
string |
MAC-адреса узла. |
name |
body |
string |
Имя узла. |
node_class (Optional) |
body |
object |
Класс узла. |
node_type (Optional) |
body |
object |
Тип класса узла. |
node_controls |
body |
list |
Список средств управления питанием узла. |
owner |
body |
string |
Имя пользователя, создавшего узел. |
power_state |
body |
string |
Состояние питания. Возможные значения
|
rack_number |
body |
integer |
Номер стойки. Может принимать значения от 1 до 99. |
ram_mb |
body |
integer |
Объём оперативной памяти (МБ). |
ram_allocation_ratio |
body |
float |
Допустимое превышение RAM. |
row_number |
body |
integer |
Номер ряда стоек. Может принимать значения от 1 до 99. |
title |
body |
string |
Наименование узла. |
unit_number |
body |
integer |
Место в стойке. Может принимать значения от 1 до 99. |
os_hypervisor (Optional) |
body |
object |
Вычислительный узел OpenStack. |
is_signed |
body |
bool |
Флаг, который указывает,на то активированна ли проверка подписи на узле. По умолчанию: |
is_valid |
body |
string |
Состояние подписи узла . Возможные значения
|
hwinfo (Optional) |
body |
object |
Сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack. |
availability_storages (Optional) |
body |
array |
Список хранилищ проверки доступности. |
Пример результата в JSON формате:
{
"nodes": [
{
"active": true,
"condition": 0,
"controller_id": null,
"controller_type": null,
"cpu_amount": null,
"cpu_allocation_ratio": 16.0,
"description": null,
"dtc_number": 1,
"hdd_gb": null,
"hypervisor_id": "2239c611-523c-44d2-9feb-2c6905fbb5c8",
"id": 1,
"image": {
"id": 1,
"name": "default"
},
"inventory_code": null,
"ip_addresses": ["10.35.222.11"],
"is_controller": false,
"is_reserved": false,
"mac_address": null,
"name": "mnode1.dev-cnt7q-ovs-02.stand.loc",
"node_class": {
"id": 1,
"is_default": true,
"name": "hypervisor"
},
"node_controls": [
{
"is_default": true,
"is_initialized": true,
"power_control_id": 1,
"control_type": "SupermicroRackDevice",
"power_control_title": "test",
"power_control_port": "1",
"protocol_type": "ipmi"
}
],
"node_type": {
"id": 2,
"name": "QEMU"
},
"owner": null,
"power_state": "power_on",
"rack_number": null,
"ram_mb": null,
"ram_allocation_ratio": 1.5,
"row_number": null,
"title": "\u0442\u0435\u0441\u04422",
"unit_number": null,
"is_signed": true,
"is_valid": true
},
{
"active": true,
"condition": 0,
"controller_id": null,
"controller_type": null,
"cpu_amount": null,
"description": null,
"dtc_number": null,
"hdd_gb": null,
"hypervisor_id": "1b9d6e64-53b2-4097-a302-96d7b4a4e055",
"id": 2,
"image": {
"id": 1,
"name": "default"
},
"inventory_code": null,
"ip_addresses": ["10.35.222.12"],
"is_controller": false,
"is_reserved": false,
"mac_address": null,
"name": "mnode2.dev-cnt7q-ovs-02.stand.loc",
"node_class": {
"id": 1,
"is_default": true,
"name": "hypervisor"
},
"node_controls": [
{
"is_default": true,
"is_initialized": true,
"power_control_id": 2,
"control_type": "SupermicroRackDevice",
"power_control_title": "test 2",
"power_control_port": "1",
"protocol_type": "ipmi"
}
],
"node_type": {
"id": 2,
"name": "QEMU"
},
"owner": null,
"power_state": "power_on",
"rack_number": null,
"ram_mb": null,
"row_number": null,
"title": null,
"unit_number": null,
"is_signed": false,
"is_valid": unknown
}
]
}