REST API

Примечание

Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.


Sign API

Предоставляет управление подписями узлов и виртуальных машин.

Управление подписями виртуальных машин

Методы управления подписями конкретных виртуальных машин, доступные Администраторам.

GET
/v1/sign/{server_id}
Получить подпись ВМ.

Получение указанной подписи для виртуальной машины.

Запрос
Параметры запроса:
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
    }
}
GET
/v1/sign
Получить все имеющиеся подписи.

Получить список всех подписей для отслеживаемых виртуальных машин.

Запрос
Параметры запроса:
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
        }
    ]
}
POST
/v1/sign
Создание подписи для ВМ.

Создание подписи для указанной виртуальной машины.

Запрос
Параметры запроса:
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
    }
}
PUT
/v1/sign
Обновить подпись ВМ.

Обновление подписи для указанной виртуальной машины.

Запрос
Параметры запроса:
  • 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"
    }
}

Управление валидацией вычислительных узлов

POST
/v1/sign/node/{node_id}/action
Активация или Деактивация проверки подписи на вычислительном узле .

Активировать или деактивировать валидацию на указанном вычислительном узле.

Запрос
Параметры запроса:
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"
}
GET
/v1/nodes/
Получение списка узлов со статусами проверки подписи .

Получение списка узлов.

Запрос
Параметры запроса:
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

Состояние питания. Возможные значения

  • power_off;
  • power_on.
owner (Optional) path string Имя пользователя, создавшего узел.
active (Optional) path bool Флаг, который указывает, является ли узел активным. По умолчанию: True.
condition (Optional) path integer

Состояние узла. Возможные значения:

  • 0 - Out of service (Выведен);
  • 1 - Enable (Включен);
  • 2 - Disable (Выключен);
  • 3 - Alarm (Аварийный);
  • 4 - Reserved (Резервный).

По умолчанию: 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 - Out of service (Выведен);
  • 1 - Enable (Включен);
  • 2 - Disable (Выключен);
  • 3 - Alarm (Аварийный);
  • 4 - Reserved (Резервный).

По умолчанию: 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

Состояние питания. Возможные значения

  • power_off;
  • power_on.
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

Состояние подписи узла . Возможные значения

  • True;
  • False;
  • Unknown.
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
        }
    ]
}

Подробное описание кодов ответа на запросы доступно во вкладке с дополнительной информацией.