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

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