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 | Состояние подписи ВМ. Возможные значения
- true ;
- false ;
- unknown . |
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 | Состояние подписи ВМ. Возможные значения
- true ;
- false ;
- unknown . |
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 | Состояние подписи ВМ. Возможные значения
- true ;
- false ;
- unknown . |
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 | Состояние подписи ВМ. Возможные значения
- true ;
- false ;
- unknown . |
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 | Включение/выключение валидации на узле. Возможные значения
- activate ;
- deactivate . |
Пример запроса:¶
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 | Включение/выключение валидации на узле. Возможные значения
- activate ;
- deactivate . |
Пример ответа в формате 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 | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
is_controller (Optional) | path | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
inventory_code (Optional) | path | integer | Инвентарный номер. |
power_state (Optional) | path | string | Состояние питания. Возможные значения
|
owner (Optional) | path | string | Имя пользователя, создавшего узел. |
active (Optional) | path | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
condition (Optional) | path | integer | Состояние узла. Возможные значения:
По умолчанию: 0. |
offset (Optional) | path | integer | Номер позиции для получения данных. |
limit (Optional) | path | integer | Ограничение количества получаемых данных. |
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять узлы класса hypervisor объектом os_hypervisor , содержащим атрибуты вычислительного узла OpenStack. |
with_hwinfo (Optional) | path | bool | Параметр, позволяющий расширять узлы класса hypervisor объектом hwinfo , содержащим сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack. |
Параметры, поддерживающие модификаторы: 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 | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
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-адресов узла. Пример: {"ip_addresses": ["127.0.0.1", "192.168.0.15"]} . |
is_controller | body | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
is_reserved | body | bool | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
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 | Флаг, который указывает,на то активированна ли проверка подписи на узле. По умолчанию: False . |
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
}
]
}