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
}
]
}