REST API

Примечание

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


NodeControl API

Позволяет управлять узлами, предоставляет дополнительную информацию, используемую в модуле TIONIX.NodeControl.

Информация о модуле

Подробная информация о модуле.

GET
/v1/info
Получение подробной информации о модуле.
Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/info | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
license (Optional) body object Информация о лицензии модуля.
version body string Версия модуля.

Пример получения информации о модуле в JSON формате:

{
    "info": {
        "license": {
            "created_at": 1538141220,
            "expire_at": 1545955200,
            "module_package": "tionix_node_control",
            "name": "TestLicense",
            "product": "TIONIX.NodeControl",
            "surrogate_name": "TIONIX.NodeControl",
            "unique_id": "04-002-4b21d15097656c2c0834",
            "verified": true
        },
        "version": "2.0"
    }
}

Виртуальные машины и вычислительные узлы

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

POST
/v1/hosts/{host_name}/actions/evacuate
Эвакуация виртуальных машин с вычислительного узла.

Эвакуация всех виртуальных машин с вычислительного узла.

Запрос
Параметры запроса:
Name In Type Description
host_name path string Имя узла. Обязательный параметр.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/hosts/$host_name/actions/evacuate

Эта операция не имеет содержания ответа.

POST
/v1/hosts/{host_name}/actions/shutdown
Выключение вычислительного узла.

Выключение вычислительного узла с попыткой переноса запущенных виртуальных машин.

Запрос
Параметры запроса:
Name In Type Description
host_name path string Имя узла. Обязательный параметр.
allow_off_vm (Optional) body bool Дополнительный параметр, разрешает жесткую миграцию виртуальной машины в случае отказа живой миграции.
allow_evacuate (Optional) body bool Дополнительный параметр, разрешает эвакуацию виртуальной машины в случае отказа живой миграции.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"allow_off_vm": true, "allow_evacuate": true}' http://controller:9362/v1/hosts/$host_name/actions/shutdown

Эта операция не имеет содержания ответа.

POST
/v1/hosts/{host_name}/actions/decommission
Вывод вычислительного узла из эксплуатации.

Вывод вычислительного узла из эксплуатации с попыткой переноса запущенных виртуальных машин.

Запрос
Параметры запроса:
Name In Type Description
host_name path string Имя узла. Обязательный параметр.
allow_live_migrate (Optional) body bool Дополнительный параметр, разрешает живую миграцию виртуальной машины.
allow_migrate (Optional) body bool Дополнительный параметр, разрешает жесткую миграцию виртуальной машины в случае отказа живой миграции.
allow_evacuate (Optional) body bool Дополнительный параметр, разрешает эвакуацию виртуальной машины в случае отказа живой миграции.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"allow_live_migrate": true, "allow_migrate": true, "allow_evacuate": true}' http://controller:9362/v1/hosts/$host_name/actions/decommission

Эта операция не имеет содержания ответа.

POST
/v1/hosts/actions/restart
Перезапуск вычислительных узлов.

Выполнение перезапуска вычислительных узлов с предварительной миграцией виртуальных машин.

Запрос
Параметры запроса:
Name In Type Description
hosts body list Имена вычислительных узлов.
in_sequence (Optional) body bool Дополнительный параметр, позволяет выполнять перезапуск последовательно.
allow_off_vm (Optional) body bool Дополнительный параметр, разрешает жесткую миграцию виртуальной машины в случае отказа живой миграции.
allow_evacuate (Optional) body bool Дополнительный параметр, разрешает эвакуацию виртуальной машины в случае отказа живой миграции.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"hosts": ["mnode1.develop.stand.loc", "mnode2.develop.stand.loc"], "allow_off_vm": true, "allow_evacuate": true, "in_sequence": true}' http://controller:9362/v1/hosts/actions/restart

Эта операция не имеет содержания ответа.

POST
/v1/servers/{server_id}/actions/balance
Балансировка виртуальной машины на первый узел, удовлетворяющий условиям.

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

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/servers/$server_id/actions/balance

Эта операция не имеет содержания ответа.

POST
/v1/servers/{server_id}/actions/recover
Восстановление виртуальной машины со сбросом состояния.

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

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/servers/$server_id/actions/recover

Эта операция не имеет содержания ответа.

POST
/v1/servers/{server_id}/actions/repair
Восстановление виртуальной машины.

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

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/servers/$server_id/actions/repair

Эта операция не имеет содержания ответа.

POST
/v1/servers/{server_id}/actions/reset-reboot
Сброс состояния виртуальной машины с возможностью перезагрузки.

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

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
reboot (Optional) body bool Дополнительный параметр, позволяет выполнять перезагрузку после сброса состояния.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"reboot": true}' http://controller:9362/v1/servers/$server_id/actions/reset-reboot

Эта операция не имеет содержания ответа.

Классы узла

Действия с классами узлов.

GET
/v1/node-classes/
Получение списка классов узла.

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

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path integer Идентификатор класса узла.
name (Optional) path string Имя класса узла.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: id, name.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/node-classes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор класса узла.
name body string Имя класса узла.
node_types body list Список типов узла.
is_default body bool Параметр, обозначающий, является ли класс классом узла по умолчанию.

Пример результата в JSON формате:

{
    "node_classes": [
        {
            "id": 1,
            "is_default": true,
            "name": "hypervisor",
            "node_types": [
                {
                    "id": 1,
                    "name": ""
                },
                {
                    "id": 2,
                    "name": "QEMU"
                },
                {
                    "id": 3,
                    "name": "KVM"
                },
                {
                    "id": 4,
                    "name": "Docker"
                },
                {
                    "id": 5,
                    "name": "Xen"
                },
                {
                    "id": 6,
                    "name": "VMware"
                },
                {
                    "id": 7,
                    "name": "HyperV"
                }
            ]
        },
        {
            "id": 2,
            "is_default": false,
            "name": "Storage host",
            "node_types": [
                {
                    "id": 8,
                    "name": ""
                },
                {
                    "id": 9,
                    "name": "Ceph"
                },
                {
                    "id": 10,
                    "name": "mdraid"
                },
                {
                    "id": 11,
                    "name": "bcashed"
                },
                {
                    "id": 12,
                    "name": "GlusterFS"
                },
                {
                    "id": 13,
                    "name": "Sheepdog"
                }
            ]
        },
        {
            "id": 3,
            "is_default": false,
            "name": "Network host",
            "node_types": [
                {
                    "id": 14,
                    "name": ""
                },
                {
                    "id": 15,
                    "name": "Network node"
                },
                {
                    "id": 16,
                    "name": "Commutator"
                },
                {
                    "id": 17,
                    "name": "Router"
                }
            ]
        },
        {
            "id": 4,
            "is_default": false,
            "name": "Server",
            "node_types": [
                {
                    "id": 18,
                    "name": ""
                },
                {
                    "id": 19,
                    "name": "Controller node"
                },
                {
                    "id": 20,
                    "name": "PXE"
                },
                {
                    "id": 21,
                    "name": "DHCP"
                },
                {
                    "id": 22,
                    "name": "DNS"
                },
                {
                    "id": 23,
                    "name": "NTP"
                }
            ]
        }
    ]
}
GET
/v1/node-classes/count
Получение количества классов узла.

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

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path integer Идентификатор класса узла.
name (Optional) path string Имя класса узла.

Параметры, поддерживающие модификаторы: id, name.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/node-classes/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body integer Количество объектов.

Пример результата в JSON формате:

{
    "count": 4
}
POST
/v1/node-classes/
Создание класса узла.

Создание нового класса узла.

Запрос
Параметры запроса:
Name In Type Description
name body string Имя класса узла.
node_types (Optional) body list Список типов узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node_class": {"name": "test_class", "node_types": ["type1", "type2"]}}' http://controller:9362/v1/node-classes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор класса узла.
name body string Имя класса узла.
node_types body list Список типов узла.
is_default body bool Параметр, обозначающий, является ли класс классом узла по умолчанию.

Пример результата в JSON формате:

{
    "node_class": {
        "id": 8,
        "is_default": false,
        "name": "test_class",
        "node_types": [
            {
                "id": 27,
                "name": "type1"
            },
            {
                "id": 28,
                "name": "type2"
            }
        ]
    }
}
GET
/v1/node-classes/{class_id}
Получение информации о классе узла.

Получение информации о классе узла.

Запрос
Параметры запроса:
Name In Type Description
class_id path integer Идентификатор класса узла.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/node-classes/$class_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор класса узла.
name body string Имя класса узла.
node_types body list Список типов узла.
is_default body bool Параметр, обозначающий, является ли класс классом узла по умолчанию.

Пример результата в JSON формате:

{
    "node_class": {
        "id": 8,
        "is_default": false,
        "name": "test_class",
        "node_types": [
            {
                "id": 27,
                "name": "type1"
            },
            {
                "id": 28,
                "name": "type2"
            }
        ]
    }
}
PUT
/v1/node-classes/{class_id}
Редактирование класса узла.

Редактирование существующего класса узла.

Запрос
Параметры запроса:
Name In Type Description
class_id path integer Идентификатор класса узла.
name (Optional) body string Имя класса узла.
node_types (Optional) body list Список типов узла.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node_class": {"name": "test_class_renamed"}}' http://controller:9362/v1/node-classes/$class_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор класса узла.
name body string Имя класса узла.
node_types body list Список типов узла.
is_default body bool Параметр, обозначающий, является ли класс классом узла по умолчанию.

Пример результата в JSON формате:

{
    "node_class": {
        "id": 8,
        "is_default": false,
        "name": "test_class_renamed",
        "node_types": [
            {
                "id": 27,
                "name": "type1"
            },
            {
                "id": 28,
                "name": "type2"
            }
        ]
    }
}
DELETE
/v1/node-classes/{class_id}
Удаление класса узла.

Удаление существующего класса узла.

Запрос
Параметры запроса:
Name In Type Description
class_id path integer Идентификатор класса узла.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/node-classes/$class_id

Эта операция не имеет содержания ответа.

GET
/v1/node-classes/{class_id}/types/
Получение списка типов класса узла.

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

Запрос
Параметры запроса:
Name In Type Description
class_id path integer Идентификатор класса узла.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/node-classes/$class_id/types/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор типа класса узла.
name body string Имя типа класса узла.

Пример результата в JSON формате:

{
    "node_types": [
        {
            "id": 27,
            "name": "type1"
        },
        {
            "id": 28,
            "name": "type2"
        }
    ]
}
POST
/v1/node-classes/{class_id}/types/
Создание нового типа для класса узла.

Создание нового типа для существующего класса узла.

Запрос
Параметры запроса:
Name In Type Description
class_id path integer Идентификатор класса узла.
name (Optional) body string Имя типа класса узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node_type": {"name": "new_type"}}' http://controller:9362/v1/node-classes/$class_id/types/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор типа класса узла.
name body string Имя типа класса узла.

Пример результата в JSON формате:

{
    "node_type": {
        "id": 29,
        "name": "new_type"
    }
}
PUT
/v1/node-classes/{class_id}/types/{type_id}
Изменение типа класса узла.

Изменение типа существующего класса узла.

Запрос
Параметры запроса:
Name In Type Description
class_id path integer Идентификатор класса узла.
type_id (Optional) body integer Идентификатор типа класса узла.
name (Optional) body string Имя типа класса узла.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node_type": {"name": "type_renamed"}}' http://controller:9362/v1/node-classes/$class_id/types/$type_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор типа класса узла.
name body string Имя типа класса узла.

Пример результата в JSON формате:

{
    "node_type": {
        "id": 29,
        "name": "type_renamed"
    }
}
DELETE
/v1/node-classes/{class_id}/types/{type_id}
Удаление типа класса узла.

Удаление типа существующего класса узла.

Запрос
Параметры запроса:
Name In Type Description
class_id path integer Идентификатор класса узла.
type_id path integer Идентификатор типа класса узла.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/node-classes/$class_id/types/$type_id

Эта операция не имеет содержания ответа.

PXE образы узлов

Позволяет управлять PXE образами узлов.

GET
/v1/node-images/
Получение списка PXE образов.

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

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path integer Идентификатор PXE образа.
created_at (Optional) path string Дата и время создания объекта.
image_name (Optional) path string Имя PXE образа.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: id, image_name, created_at.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/node-images/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор PXE образа.
created_at body string Дата и время создания объекта.
image_name body string Имя PXE образа.
file_data body string Содержимое PXE образа.

Пример получения списка PXE образов в JSON формате:

{
    "node_images": [
        {
            "created_at": "2018-10-15T12:59:50",
            "file_data": "default vesamenu.c32\naprompt 1\ntimeout 30\nlabel ubuntu 14.04\nmenu label CENTER COMPUTE NODE DEFAULT\nkernel vmlinuz\nappend initrd=dracut root=192.168.100.1:/mnt/rootfs biosdevname=0 ip=eth0:on ip=eth1:on bond=bond0:eth0,eth1:mode=6 ip=bond0:dhcp ro",
            "id": 1,
            "image_name": "default"
        }
    ]
}
GET
/v1/node-images/count
Получение количества PXE образов.

Получение количества PXE образов.

Запрос
Параметры запроса:
Name In Type Description
id path integer Идентификатор PXE образа.
created_at (Optional) path string Дата и время создания объекта.
image_name (Optional) path string Имя PXE образа.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: id, image_name, created_at.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/node-images/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body integer Количество объектов.

Пример получения количества PXE образов в JSON формате:

{
    "count": 1
}
GET
/v1/node-images/{image_id}
Получение информации о PXE образе.

Получение информации о PXE образе.

Запрос
Параметры запроса:
Name In Type Description
image_id path integer Идентификатор PXE образа.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/node-images/$image_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
created_at body string Дата и время создания объекта.
file_data body string Содержимое PXE образа.
id body integer Идентификатор PXE образа.
image_name body string Имя PXE образа.

Пример получения информации об указанном PXE образе в JSON формате:

{
    "node_image": {
        "created_at": "2018-10-15T12:59:50",
        "file_data": "default vesamenu.c32\naprompt 1\ntimeout 30\nlabel ubuntu 14.04\nmenu label CENTER COMPUTE NODE DEFAULT\nkernel vmlinuz\nappend initrd=dracut root=192.168.100.1:/mnt/rootfs biosdevname=0 ip=eth0:on ip=eth1:on bond=bond0:eth0,eth1:mode=6 ip=bond0:dhcp ro",
        "id": 1,
        "image_name": "default"
    }
}
POST
/v1/node-images/
Создание PXE образа.

Создание PXE образа.

Запрос
Параметры запроса:
Name In Type Description
image_name body string Имя PXE образа.
file_data body string Содержимое PXE образа.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node_image":{"image_name": "test_image", "file_data": "root=test"}}' http://controller:9362/v1/node-images/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
created_at body string Дата и время создания объекта.
file_data body string Содержимое PXE образа.
id body integer Идентификатор PXE образа.
image_name body string Имя PXE образа.

Пример результата в JSON формате:

{
    "node_image": {
        "created_at": "2018-10-24T09:36:40",
        "file_data": "root=test",
        "id": 2,
        "image_name": "test_image"
    }
}
DELETE
/v1/node-images/{image_id}
Удаление PXE образа.

Удаление PXE образа.

Запрос
Параметры запроса:
Name In Type Description
id path integer Идентификатор PXE образа.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/node-images/$image_id

Эта операция не имеет содержания ответа.

Средства управления питанием

Позволяет управлять средствами управления питанием, предоставляет дополнительную информацию, используемую в модуле TIONIX.NodeControl.

GET
/v1/power-controls/
Получение списка средств управления питанием.

Получение списка средств управления питанием.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path integer Идентификатор средства управления питанием.
created_at (Optional) path string Дата и время создания объекта.
title (Optional) path string Наименование средства управления питанием.
control_type (Optional) path string Тип средства.
protocol_type (Optional) path string Тип протокола.
host (Optional) path string Имя хоста или IP-адрес средства управления питанием.
port_number (Optional) path string Номер порта.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: id, created_at, title, control_type, protocol_type, host, port_number.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/power-controls/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор средства управления питанием.
time_created body string Дата и время создания объекта.
time_updated body string Дата и время изменения объекта.
title body string Наименование средства управления питанием.
control_type body string Тип средства.
protocol_type body string Тип протокола.
host body string Имя хоста или IP-адрес средства управления питанием.
login body string Логин для подключения к средству управления питанием.
port_number body string Номер порта.
coils_count body integer Общее количество выходных портов.
used_coils_count body integer Количество используемых выходных портов.
coil_map body object Карты выходных портов.

Пример результата в JSON формате:

{
    "power_controls": [
        {
            "coil_map": {
                "1": {
                    "is_default": true,
                    "is_initialized": true,
                    "node_id": 1,
                    "node_name": "mnode1.dev-cnt7q-ovs-02.stand.loc",
                    "power_control_port": "1",
                    "power_state": "power_on"
                }
            },
            "coils_count": 1,
            "control_type": "SupermicroRackDevice",
            "host": "10.35.17.30",
            "id": 1,
            "login": "ADMIN",
            "port_number": 623,
            "protocol_type": "ipmi",
            "time_created": "2018-10-17T12:18:35",
            "time_updated": null,
            "title": "test",
            "used_coils_count": 1
        },
        {
            "coil_map": {
                "1": {
                    "is_default": true,
                    "is_initialized": true,
                    "node_id": 2,
                    "node_name": "mnode2.dev-cnt7q-ovs-02.stand.loc",
                    "power_control_port": "1",
                    "power_state": "power_on"
                }
            },
            "coils_count": 1,
            "control_type": "SupermicroRackDevice",
            "host": "10.35.17.31",
            "id": 2,
            "login": "ADMIN",
            "port_number": 623,
            "protocol_type": "ipmi",
            "time_created": "2018-10-18T07:37:48",
            "time_updated": null,
            "title": "test 2",
            "used_coils_count": 1
        }
    ]
}
GET
/v1/power-controls/count
Получение количества средств управления питанием.

Получение количества средств управления питанием.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path integer Идентификатор средства управления питанием.
created_at (Optional) path string Дата и время создания объекта.
title (Optional) path string Наименование средства управления питанием.
control_type (Optional) path string Тип средства.
protocol_type (Optional) path string Тип протокола.
host (Optional) path string Имя хоста или IP-адрес средства управления питанием.
port_number (Optional) path string Номер порта.

Параметры, поддерживающие модификаторы: id, created_at, title, control_type, protocol_type, host, port_number.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/power-controls/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body integer Количество объектов.

Пример результата в JSON формате:

{
    "count": 2
}
POST
/v1/power-controls/
Создание средства управления питанием.

Создание средства управления питанием.

Запрос
Параметры запроса:
Name In Type Description
control_type body string Тип средства.
protocol_type body string Тип протокола.
host body string Имя хоста или IP-адрес средства управления питанием.
port_number body string Номер порта.
title (Optional) body string Наименование средства управления питанием.
login (Optional) body string Логин для подключения к средству управления питанием.
password (Optional) body string Пароль для подключения к средству управления питанием.
ssh_key (Optional) body string Приватный ключ для подключения к средству управления питанием, зашифрованный алгоритмом RSA. Поддерживается только средствами типа SshDevice.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"power_control": {"control_type": "SupermicroRackDevice", "protocol_type": "ipmi", "host": "10.35.17.33", "port_number": 623, "login": "ADMIN", "password": "PASSWORD"}}' http://controller:9362/v1/power-controls/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор средства управления питанием.
time_created body string Дата и время создания объекта.
time_updated body string Дата и время изменения объекта.
title body string Наименование средства управления питанием.
control_type body string Тип средства.
protocol_type body string Тип протокола.
host body string Имя хоста или IP-адрес средства управления питанием.
login body string Логин для подключения к средству управления питанием.
port_number body string Номер порта.
coils_count body integer Общее количество выходных портов.
used_coils_count body integer Количество используемых выходных портов.
coil_map body object Карты выходных портов.

Пример результата в JSON формате:

{
    "power_control": {
        "coil_map": {
            "1": null
        },
        "coils_count": 1,
        "control_type": "SupermicroRackDevice",
        "host": "10.35.17.33",
        "id": 3,
        "login": "ADMIN",
        "port_number": 623,
        "protocol_type": "ipmi",
        "time_created": "2018-10-24T12:12:02",
        "time_updated": null,
        "title": "ipmi://SupermicroRackDevice@10.35.17.33:623",
        "used_coils_count": 0
    }
}
GET
/v1/power-controls/{power_control_id}
Получение информации о средстве управления питанием.
Запрос
Параметры запроса:
Name In Type Description
power_control_id path integer Идентификатор средства управления питанием.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/power-controls/$power_control_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор средства управления питанием.
time_created body string Дата и время создания объекта.
time_updated body string Дата и время изменения объекта.
title body string Наименование средства управления питанием.
control_type body string Тип средства.
protocol_type body string Тип протокола.
host body string Имя хоста или IP-адрес средства управления питанием.
login body string Логин для подключения к средству управления питанием.
port_number body string Номер порта.
coils_count body integer Общее количество выходных портов.
used_coils_count body integer Количество используемых выходных портов.
coil_map body object Карты выходных портов.

Пример результата в JSON формате:

{
    "power_control": {
        "coil_map": {
            "1": null
        },
        "coils_count": 1,
        "control_type": "SupermicroRackDevice",
        "host": "10.35.17.33",
        "id": 3,
        "login": "ADMIN",
        "port_number": 623,
        "protocol_type": "ipmi",
        "time_created": "2018-10-24T12:12:02",
        "time_updated": null,
        "title": "ipmi://SupermicroRackDevice@10.35.17.33:623",
        "used_coils_count": 0
    }
}
DELETE
/v1/power-controls/{power_control_id}
Удаление средства управления питанием.

Удаление средства управления питанием.

Запрос
Параметры запроса:
Name In Type Description
power_control_id path integer Идентификатор средства управления питанием.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/power-controls/$power_control_id

Эта операция не имеет содержания ответа.

PUT
/v1/power-controls/{power_control_id}
Обновление параметров средства управления питанием.

Обновление параметров средства управления питанием.

Запрос
Параметры запроса:
Name In Type Description
power_control_id path integer Идентификатор средства управления питанием.
control_type (Optional) body string Тип средства.
protocol_type (Optional) body string Тип протокола.
host (Optional) body string Имя хоста или IP-адрес средства управления питанием.
port_number (Optional) body string Номер порта.
title (Optional) body string Наименование средства управления питанием.
login (Optional) body string Логин для подключения к средству управления питанием.
password (Optional) body string Пароль для подключения к средству управления питанием.
ssh_key (Optional) body string Приватный ключ для подключения к средству управления питанием, зашифрованный алгоритмом RSA. Поддерживается только средствами типа SshDevice.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"power_control": {"title": "test_power_control"}}' http://controller:9362/v1/power-controls/$power_control_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор средства управления питанием.
time_created body string Дата и время создания объекта.
time_updated body string Дата и время изменения объекта.
title body string Наименование средства управления питанием.
control_type body string Тип средства.
protocol_type body string Тип протокола.
host body string Имя хоста или IP-адрес средства управления питанием.
login body string Логин для подключения к средству управления питанием.
port_number body string Номер порта.
coils_count body integer Общее количество выходных портов.
used_coils_count body integer Количество используемых выходных портов.
coil_map body object Карты выходных портов.

Пример результата в JSON формате:

{
    "power_control": {
        "coil_map": {
            "1": null
        },
        "coils_count": 1,
        "control_type": "SupermicroRackDevice",
        "host": "10.35.17.33",
        "id": 3,
        "login": "ADMIN",
        "port_number": 623,
        "protocol_type": "ipmi",
        "time_created": "2018-10-24T12:12:02",
        "time_updated": "Wed, 24 Oct 2018 12:42:34 GMT",
        "title": "test_power_control",
        "used_coils_count": 0
    }
}
GET
/v1/power-controls/types
Получение списка типов средств управления питанием.

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

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/power-controls/types | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
types body list Список поддерживаемых типов средств управления питанием.

Пример результата в JSON формате:

{
    "types": [
        [
            "ET7067",
            "modbus"
        ],
        [
            "DaenetIP2",
            "snmp"
        ],
        [
            "DaenetIP2_ACPI",
            "snmp"
        ],
        [
            "SshDevice",
            "ssh"
        ],
        [
            "IntelAMT",
            "intel_amt"
        ],
        [
            "SupermicroRackDevice",
            "ipmi"
        ]
    ]
}
GET
/v1/power-controls/protocols
Получение списка поддерживаемых протоколов средств управления питанием.

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

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/power-controls/protocols | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
protocols body list Список поддерживаемых протоколов средств управления питанием.

Пример результата в JSON формате:

{
    "protocols": [
        "modbus",
        "ipmi",
        "snmp",
        "ssh",
        "intel_amt"
    ]
}
POST
/v1/power-controls/{power_control_id}/actions/power-off
Отключение выходного порта средства управления питанием.

Отключение выходного порта средства управления питанием.

Запрос
Параметры запроса:
Name In Type Description
power_control_id path integer Идентификатор средства управления питанием.
coil body integer Выходной порт средства управления питанием.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"coil": 1}' http://controller:9362/v1/power-controls/$power_control_id/actions/power-off

Эта операция не имеет содержания ответа.

POST
/v1/power-controls/{power_control_id}/actions/power-on
Включение выходного порта средства управления питанием.

Включение выходного порта средства управления питанием.

Запрос
Параметры запроса:
Name In Type Description
power_control_id path integer Идентификатор средства управления питанием.
coil body integer Выходной порт средства управления питанием.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"coil": 1}' http://controller:9362/v1/power-controls/$power_control_id/actions/power-on

Эта операция не имеет содержания ответа.

GET
/v1/power-controls/{power_control_id}/nodes
Получение списка узлов, привязанных к средству управления питанием.

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

Запрос
Параметры запроса:
Name In Type Description
power_control_id path integer Идентификатор средства управления питанием.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/power-controls/$power_control_id/nodes | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
nodes body list Список узлов.

Пример результата в JSON формате:

{
    "nodes": [
        {
            "active": true,
            "condition": 0,
            "controller_id": null,
            "controller_login": null,
            "controller_password": null,
            "controller_type": null,
            "cpu_amount": null,
            "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_types": [
                    {
                        "id": 1,
                        "name": ""
                    },
                    {
                        "id": 2,
                        "name": "QEMU"
                    },
                    {
                        "id": 3,
                        "name": "KVM"
                    },
                    {
                        "id": 4,
                        "name": "Docker"
                    },
                    {
                        "id": 5,
                        "name": "Xen"
                    },
                    {
                        "id": 6,
                        "name": "VMware"
                    },
                    {
                        "id": 7,
                        "name": "HyperV"
                    }
                ]
            },
            "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,
            "row_number": null,
            "title": "\u0442\u0435\u0441\u04422",
            "unit_number": null
        }
    ]
}

Узлы

Позволяет управлять узлами на физическом уровне, предоставляет дополнительную информацию, используемую в модуле TIONIX.NodeControl.

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.
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 Объём оперативной памяти (МБ).
row_number body integer Номер ряда стоек. Может принимать значения от 1 до 99.
title body string Наименование узла.
unit_number body integer Место в стойке. Может принимать значения от 1 до 99.
os_hypervisor (Optional) body object Вычислительный узел OpenStack.
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,
            "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,
            "row_number": null,
            "title": "\u0442\u0435\u0441\u04422",
            "unit_number": null
        },
        {
            "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
        }
    ]
}
GET
/v1/nodes/count
Получение количества узлов.

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

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

Параметры, поддерживающие модификаторы: 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/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body integer Количество объектов.

Пример результата в JSON формате:

{
    "count": 2
}
GET
/v1/nodes/{node_id}
Получение информации об узле.

Получение информации об узле.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
with_os_object (Optional) path bool Параметр, позволяющий расширять узлы класса hypervisor объектом os_hypervisor, содержащим атрибуты вычислительного узла OpenStack.
with_hwinfo (Optional) path bool Параметр, позволяющий расширять узлы класса hypervisor объектом hwinfo, содержащим сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" "http://controller:9362/v1/nodes/$node_id?with_os_object=true" | 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.
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_controls body list Список средств управления питанием узла.
node_type (Optional) body object Тип класса узла.
owner body string Имя пользователя, создавшего узел.
power_state body string

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

  • power_off;
  • power_on.
rack_number body integer Номер стойки. Может принимать значения от 1 до 99.
ram_mb body integer Объём оперативной памяти (МБ).
row_number body integer Номер ряда стоек. Может принимать значения от 1 до 99.
title body string Наименование узла.
unit_number body integer Место в стойке. Может принимать значения от 1 до 99.
os_hypervisor (Optional) body object Вычислительный узел OpenStack.
hwinfo (Optional) body object Сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack.
availability_storages (Optional) body array Список хранилищ проверки доступности.

Пример результата в JSON формате:

{
    "node": {
        "active": true,
        "condition": 0,
        "controller_id": null,
        "controller_type": null,
        "cpu_amount": null,
        "description": "",
        "dtc_number": null,
        "hdd_gb": null,
        "hypervisor_id": "f5501bd3-d69a-41fc-bcc1-91f512f2313a",
        "id": 1,
        "image": {
            "id": 1,
            "name": "default"
        },
        "inventory_code": "UU",
        "ip_addresses": [
            "10.35.222.12"
        ],
        "is_controller": false,
        "is_reserved": true,
        "mac_address": null,
        "name": "mnode2.dev-cnt7q-ovs-02.stand.loc",
        "node_class": {
            "id": 1,
            "is_default": true,
            "name": "hypervisor"
        },
        "node_controls": [
            {
                "control_type": "SupermicroRackDevice",
                "is_default": false,
                "is_initialized": true,
                "power_control_id": 1,
                "power_control_port": "1",
                "power_control_title": "namety",
                "protocol_type": "ipmi"
            },
            {
                "control_type": "SupermicroRackDevice",
                "is_default": true,
                "is_initialized": true,
                "power_control_id": 3,
                "power_control_port": "1",
                "power_control_title": "name2",
                "protocol_type": "ipmi"
            }
        ],
        "node_type": {
            "id": 2,
            "name": "QEMU"
        },
        "os_hypervisor": {
            "cpu_info": {
                "arch": "x86_64",
                "features": [
                    "pge",
                    "avx",
                    "xsaveopt",
                    "clflush",
                    "sep",
                    "rtm",
                    "tsc_adjust",
                    "tsc-deadline",
                    "invpcid",
                    "tsc",
                    "fsgsbase",
                    "xsave",
                    "smap",
                    "vmx",
                    "erms",
                    "hle",
                    "cmov",
                    "smep",
                    "fpu",
                    "pat",
                    "arat",
                    "lm",
                    "msr",
                    "adx",
                    "3dnowprefetch",
                    "nx",
                    "fxsr",
                    "syscall",
                    "sse4.1",
                    "pae",
                    "sse4.2",
                    "pclmuldq",
                    "pcid",
                    "fma",
                    "vme",
                    "mmx",
                    "osxsave",
                    "cx8",
                    "mce",
                    "de",
                    "aes",
                    "mca",
                    "pse",
                    "lahf_lm",
                    "abm",
                    "rdseed",
                    "popcnt",
                    "pdpe1gb",
                    "apic",
                    "sse",
                    "f16c",
                    "pni",
                    "rdtscp",
                    "avx2",
                    "sse2",
                    "ss",
                    "hypervisor",
                    "bmi1",
                    "bmi2",
                    "ssse3",
                    "cx16",
                    "pse36",
                    "mtrr",
                    "movbe",
                    "rdrand",
                    "x2apic"
                ],
                "model": "Broadwell",
                "topology": {
                    "cells": 1,
                    "cores": 1,
                    "sockets": 2,
                    "threads": 1
                },
                "vendor": "Intel"
            },
            "current_workload": 0,
            "disk_available_least": 80,
            "free_disk_gb": 99,
            "free_ram_mb": 3583,
            "host_ip": "10.35.222.12",
            "hypervisor_hostname": "mnode2.dev-cnt7q-ovs-02.stand.loc",
            "hypervisor_type": "QEMU",
            "hypervisor_version": 2012000,
            "id": "f5501bd3-d69a-41fc-bcc1-91f512f2313a",
            "local_gb": 99,
            "local_gb_used": 0,
            "memory_mb": 4095,
            "memory_mb_used": 512,
            "running_vms": 0,
            "service": {
                "disabled_reason": null,
                "host": "mnode2.dev-cnt7q-ovs-02.stand.loc",
                "id": "bd8c4cd2-909e-4be8-b324-6bf8a7c528bb"
            },
            "state": "up",
            "status": "enabled",
            "vcpus": 2,
            "vcpus_used": 0
        },
        "owner": null,
        "power_state": "power_off",
        "rack_number": null,
        "ram_mb": null,
        "row_number": null,
        "title": null,
        "unit_number": null
    }
}
POST
/v1/nodes/
Создание узла.

Создание узла.

Запрос
Параметры запроса:
Name In Type Description
created_at (Optional) body string Дата и время создания объекта.
image_id (Optional) body integer Идентификатор образа узла.
node_class_id (Optional) body integer Идентификатор класса узла.
node_type_id (Optional) body integer Идентификатор типа класса узла.
ip_addresses (Optional) body list Список IP-адресов узла. Пример: {"ip_addresses": ["127.0.0.1", "192.168.0.15"]}.
hypervisor_id (Optional) body string Идентификатор вычислительного узла в OpenStack.
name (Optional) body string Имя узла.
controller_id (Optional) body string Идентификатор виртуального контроллера, к которому привязан узел.
controller_type (Optional) body string Тип виртуального контроллера.
description (Optional) body string Описание узла.
dtc_number (Optional) body integer Номер дата-центра. Может принимать значения от 1 до 99.
unit_number (Optional) body integer Место в стойке. Может принимать значения от 1 до 99.
rack_number (Optional) body integer Номер стойки. Может принимать значения от 1 до 99.
row_number (Optional) body integer Номер ряда стоек. Может принимать значения от 1 до 99.
cpu_amount (Optional) body integer Количество процессоров. Может принимать значения от 0 до 99.
ram_mb (Optional) body integer Объём оперативной памяти (МБ).
hdd_gb (Optional) body integer Объем жесткого диска (ГБ).
mac_address (Optional) body string MAC-адреса узла.
title (Optional) body string Наименование узла.
is_reserved (Optional) body bool Флаг, который указывает, зарезервирован ли узел. По умолчанию: False.
is_controller (Optional) body bool Флаг, который указывает, является ли узел контроллером. По умолчанию: False.
inventory_code (Optional) body integer Инвентарный номер.
power_state (Optional) body string

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

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

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

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

По умолчанию: 0.

metadata (Optional) body string

Метаданные. Пример: {"metadata": {"cpu_benchmark": "test"}}. Возможные ключи метаданных:

  • cpu_benchmark.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node": {"name": "test-node", "ip_addresses": ["10.35.22.11"]}}' http://controller:9362/v1/nodes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор узла.
created_at body string Дата и время создания объекта.
image_id body integer Идентификатор образа узла.
node_class (Optional) body object Класс узла.
node_type (Optional) body object Тип класса узла.
hypervisor_id body string Идентификатор вычислительного узла в OpenStack.
name body string Имя узла.
controller_id body string Идентификатор виртуального контроллера, к которому привязан узел.
controller_type body string Тип виртуального контроллера.
description body string Описание узла.
dtc_number body integer Номер дата-центра. Может принимать значения от 1 до 99.
unit_number body integer Место в стойке. Может принимать значения от 1 до 99.
rack_number body integer Номер стойки. Может принимать значения от 1 до 99.
row_number body integer Номер ряда стоек. Может принимать значения от 1 до 99.
cpu_amount body integer Количество процессоров. Может принимать значения от 0 до 99.
ram_mb body integer Объём оперативной памяти (МБ).
hdd_gb body integer Объем жесткого диска (ГБ).
mac_address body string MAC-адреса узла.
title body string Наименование узла.
is_reserved body bool Флаг, который указывает, зарезервирован ли узел. По умолчанию: False.
is_controller body bool Флаг, который указывает, является ли узел контроллером. По умолчанию: False.
inventory_code body integer Инвентарный номер.
power_state body string

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

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

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

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

По умолчанию: 0.

metadata (Optional) body string

Метаданные. Пример: {"metadata": {"cpu_benchmark": "test"}}. Возможные ключи метаданных:

  • cpu_benchmark.

Пример результата в JSON формате:

{
    "node": {
        "active": true,
        "condition": 0,
        "controller_id": null,
        "controller_type": null,
        "cpu_amount": null,
        "description": null,
        "dtc_number": null,
        "hdd_gb": null,
        "hypervisor_id": null,
        "id": 4,
        "image": {
            "id": 1,
            "name": "default"
        },
        "inventory_code": null,
        "ip_addresses": ["10.35.22.11"],
        "is_controller": false,
        "is_reserved": false,
        "mac_address": null,
        "name": "test-node",
        "node_class": {
            "id": 1,
            "is_default": true,
            "name": "hypervisor"
        },
        "node_type": {
            "id": 1,
            "name": ""
        },
        "owner": null,
        "power_state": null,
        "rack_number": null,
        "ram_mb": null,
        "row_number": null,
        "title": null,
        "unit_number": null
    }
}
PUT
/v1/nodes/{node_id}
Обновление параметров гипервизора.

Обновление параметров гипервизора.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
created_at (Optional) body string Дата и время создания объекта.
image_id (Optional) body integer Идентификатор образа узла.
node_class_id (Optional) body integer Идентификатор класса узла.
node_type_id (Optional) body integer Идентификатор типа класса узла.
hypervisor_id (Optional) body string Идентификатор вычислительного узла в OpenStack.
name (Optional) body string Имя узла.
controller_id (Optional) body string Идентификатор виртуального контроллера, к которому привязан узел.
controller_type (Optional) body string Тип виртуального контроллера.
description (Optional) body string Описание узла.
dtc_number (Optional) body integer Номер дата-центра. Может принимать значения от 1 до 99.
unit_number (Optional) body integer Место в стойке. Может принимать значения от 1 до 99.
rack_number (Optional) body integer Номер стойки. Может принимать значения от 1 до 99.
row_number (Optional) body integer Номер ряда стоек. Может принимать значения от 1 до 99.
cpu_amount (Optional) body integer Количество процессоров. Может принимать значения от 0 до 99.
ram_mb (Optional) body integer Объём оперативной памяти (МБ).
hdd_gb (Optional) body integer Объем жесткого диска (ГБ).
mac_address (Optional) body string MAC-адреса узла.
title (Optional) body string Наименование узла.
is_reserved (Optional) body bool Флаг, который указывает, зарезервирован ли узел. По умолчанию: False.
is_controller (Optional) body bool Флаг, который указывает, является ли узел контроллером. По умолчанию: False.
inventory_code (Optional) body integer Инвентарный номер.
power_state (Optional) body string

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

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

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

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

По умолчанию: 0.

metadata (Optional) body string

Метаданные. Пример: {"metadata": {"cpu_benchmark": "test"}}. Возможные ключи метаданных:

  • cpu_benchmark.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node": {"title": "node title"}}' http://controller:9362/v1/nodes/$node_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор узла.
created_at body string Дата и время создания объекта.
image_id body integer Идентификатор образа узла.
node_class (Optional) body object Класс узла.
node_type (Optional) body object Тип класса узла.
hypervisor_id body string Идентификатор вычислительного узла в OpenStack.
name body string Имя узла.
controller_id body string Идентификатор виртуального контроллера, к которому привязан узел.
controller_type body string Тип виртуального контроллера.
description body string Описание узла.
dtc_number body integer Номер дата-центра. Может принимать значения от 1 до 99.
unit_number body integer Место в стойке. Может принимать значения от 1 до 99.
rack_number body integer Номер стойки. Может принимать значения от 1 до 99.
row_number body integer Номер ряда стоек. Может принимать значения от 1 до 99.
cpu_amount body integer Количество процессоров. Может принимать значения от 0 до 99.
ram_mb body integer Объём оперативной памяти (МБ).
hdd_gb body integer Объем жесткого диска (ГБ).
mac_address body string MAC-адреса узла.
title body string Наименование узла.
is_reserved body bool Флаг, который указывает, зарезервирован ли узел. По умолчанию: False.
is_controller body bool Флаг, который указывает, является ли узел контроллером. По умолчанию: False.
inventory_code body integer Инвентарный номер.
power_state body string

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

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

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

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

По умолчанию: 0.

metadata (Optional) body string

Метаданные. Пример: {"metadata": {"cpu_benchmark": "test"}}. Возможные ключи метаданных:

  • cpu_benchmark.
availability_storages (Optional) body array Список хранилищ проверки доступности.

Пример результата в JSON формате:

{
    "node": {
        "active": true,
        "condition": 0,
        "controller_id": null,
        "controller_type": null,
        "cpu_amount": null,
        "description": null,
        "dtc_number": null,
        "hdd_gb": null,
        "hypervisor_id": null,
        "id": 4,
        "image": {
            "id": 1,
            "name": "default"
        },
        "inventory_code": null,
        "ip_addresses": ["10.35.22.11"],
        "is_controller": false,
        "is_reserved": false,
        "mac_address": null,
        "name": "test-node",
        "node_class": {
            "id": 1,
            "is_default": true,
            "name": "hypervisor"
        },
        "node_type": {
            "id": 1,
            "name": ""
        },
        "owner": null,
        "power_state": null,
        "rack_number": null,
        "ram_mb": null,
        "row_number": null,
        "title": "node title",
        "unit_number": null
    }
}
DELETE
/v1/nodes/{node_id}
Удаление узла.

Удаление узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/assign-image
Назначение PXE образа узлу.

Назначение PXE образа узлу.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
image_id body integer Идентификатор PXE образа.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"image_id": 2}' http://controller:9362/v1/nodes/$node_id/actions/assign-image

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/power-off
Отключение питания узла.

Отключение питания узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/actions/power-off

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/power-on
Включение питания узла.

Включение питания узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/actions/power-on

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/reset
Перезапуск узла.

Перезапуск узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/actions/reset

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/reserve
Перевод узла в резерв.

Перевод узла в резерв.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
is_reserved body bool Флаг, отвечающий за перевод узла в резерв. true для перевода узла в резерв, false для вывода из резерва.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"is_reserved": true}'  http://controller:9362/v1/nodes/$node_id/actions/reserve

Эта операция не имеет содержания ответа.

Примечание

Функционал включения и выключения SNMP доступен только при установленном и настроенном модуле TIONIX.Agent на вычислительных узлах.

POST
/v1/nodes/{node_id}/actions/enable-snmp
Включение SNMP для узла.

Включение SNMP для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/enable-snmp

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/disable-snmp
Выключение SNMP для узла.

Выключение SNMP для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/disable-snmp

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/enable-ssh
Включение SSH для узла.

Примечание

Функционал включения и выключения SSH доступен только при установленном и настроенном модуле TIONIX.Agent на вычислительных узлах.

Включение SSH для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/enable-ssh

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/disable-ssh
Выключение SSH для узла.

Выключение SSH для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/disable-ssh

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/enable-tnxsafe
Включение режима TNXSafe для узла.

Включение режима TNXSafe для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/enable-tnxsafe

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/disable-tnxsafe
Выключение режима TNXSafe для узла.

Выключение режима TNXSafe для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/disable-tnxsafe

Эта операция не имеет содержания ответа.

Примечание

Функционал включения и выключения динамического конфигурирования компонентов (DCC) доступен только при установленном и настроенном модуле TIONIX.Agent на вычислительных узлах.

POST
/v1/nodes/{node_id}/actions/enable-dcc
Включение динамического конфигурирования компонентов для узла.

Примечание

При создании узла по умолчанию режим включен.

Включение режима динамического конфигурирования компонентов для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/enable-dcc

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/disable-dcc
Выключение динамического конфигурирования компонентов для узла.

Примечание

При создании узла по умолчанию режим включен.

Выключение динамического конфигурирования компонентов для узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/disable-dcc

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/set-cpu-mode
Настройка типа процессора виртуальных машин вычислительного узла.

Настройка типа процессора виртуальных машин вычислительного узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
cpu_emulation_mode body string

Режим эмуляции процессора. Принимает значения:

  • null;
  • host-passthrough;
  • host-model;
  • custom.
cpu_model (Optional) body string Эмулируемая модель процессора.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"cpu_emulation_mode": "host-passthrough"}'  http://controller:9362/v1/nodes/$node_id/actions/set-cpu-mode

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/setup-log-redirection
Настройка перенаправления логов вычислительного узла.

Настройка перенаправления логов вычислительного узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
log_redirection_hostname body string Доменное имя или IP-адрес сервера, куда производится перенаправление логирования.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"log_redirection_hostname": "10.10.10.10"}'  http://controller:9362/v1/nodes/$node_id/actions/setup-log-redirection

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/disable-log-redirection
Отключение перенаправления логов вычислительного узла.

Отключение перенаправления логов вычислительного узла.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/actions/disable-log-redirection

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{node_id}/actions/update-system
Запуск обновления системы на вычислительном узле.

Запуск обновления системы на вычислительном узле.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/actions/update-system

Эта операция не имеет содержания ответа.

GET
/v1/nodes/{node_id}/power-actions/
Получение списка действий над узлом.

Получение списка действий над узлом.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/power-actions/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор действия.
action body string Тип действия.
node_id body integer Идентификатор узла.
start_time body string Время старта действия.
user_name body string Имя пользователя, совершившего действие.

Пример результата в JSON формате:

{
    "power_actions": [
        {
            "action": "reset",
            "id": 1,
            "node_id": 1,
            "start_time": "2018-10-25T06:31:36",
            "user_name": "admin"
        }
    ]
}
GET
/v1/nodes/{node_id}/power-actions/{power_action_id}
Получение информации о действии над узлом.

Получение информации о действии над узлом.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
power_action_id path integer Идентификатор действия.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/power-actions/$power_action_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор действия.
action body string Тип действия.
node_id body integer Идентификатор узла.
start_time body string Время старта действия.
user_name body string Имя пользователя, совершившего действие.

Пример результата в JSON формате:

{
    "power_action": {
        "action": "reset",
        "id": 1,
        "node_id": 1,
        "start_time": "2018-10-25T06:31:36",
        "user_name": "admin"
    }
}
GET
/v1/nodes/{node_id}/power-controls/
Получение списка назначенных на узел средств управления питанием.

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

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/power-controls/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
is_default body bool Флаг, который указывает, является ли средство управления питанием средством по умолчанию.
is_initialized body bool Флаг, который указывает, инициализировано ли средство управления питанием.
power_control_id body integer Идентификатор средства управления питанием.
control_type body string Тип средства.
power_control_title body string Наименование средства управления питанием.
protocol_type body string Тип протокола.

Пример результата в JSON формате:

{
    "power_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"
        }
    ]
}
POST
/v1/nodes/{node_id}/power-controls/
Назначение на узел средства управления питанием.

Назначение на узел средства управления питанием.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
is_default (Optional) body bool Флаг, который указывает, является ли средство управления питанием средством по умолчанию.
power_control_id body integer Идентификатор средства управления питанием.
power_control_port body string Номер порта средства управления питанием.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"power_control_id": 1, "power_control_port": 1}' http://controller:9362/v1/nodes/$node_id/power-controls/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
is_default body bool Флаг, который указывает, является ли средство управления питанием средством по умолчанию.
is_initialized body bool Флаг, который указывает, инициализировано ли средство управления питанием.
power_control_id body integer Идентификатор средства управления питанием.
control_type body string Тип средства.
power_control_title body string Наименование средства управления питанием.
protocol_type body string Тип протокола.
power_control_port body string Номер порта средства управления питанием.

Пример результата в JSON формате:

{
    "power_control": {
        "is_default": false,
        "is_initialized": true,
        "power_control_id": 1,
        "control_type": "SupermicroRackDevice",
        "power_control_title": "test",
        "power_control_port": "1",
        "protocol_type": "ipmi"
    }
}
GET
/v1/nodes/{node_id}/power-controls/{power_control_id}
Получение информации о назначенном на узел средстве управления питанием.

Получение информации о назначенном на узел средстве управления питанием.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
power_control_id path integer Идентификатор средства управления питанием.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/power-controls/$power_control_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
is_default body bool Флаг, который указывает, является ли средство управления питанием средством по умолчанию.
is_initialized body bool Флаг, который указывает, инициализировано ли средство управления питанием.
power_control_id body integer Идентификатор средства управления питанием.
control_type body string Тип средства.
power_control_title body string Наименование средства управления питанием.
protocol_type body string Тип протокола.
power_control_port body string Номер порта средства управления питанием.

Пример результата в JSON формате:

{
    "power_control": {
        "is_default": false,
        "is_initialized": true,
        "power_control_id": 1,
        "control_type": "SupermicroRackDevice",
        "power_control_title": "test",
        "power_control_port": "1",
        "protocol_type": "ipmi"
    }
}
PUT
/v1/nodes/{node_id}/power-controls/{power_control_id}
Обновление параметров назначенного на узел средства управления питанием.

Обновление параметров назначенного на узел средства управления питанием.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
power_control_id path integer Идентификатор средства управления питанием.
is_default (Optional) body bool Флаг, который указывает, является ли средство управления питанием средством по умолчанию.
power_control_port (Optional) body string Номер порта средства управления питанием.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"is_default": true}'  http://controller:9362/v1/nodes/$node_id/power-controls/$power_control_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
is_default body bool Флаг, который указывает, является ли средство управления питанием средством по умолчанию.
is_initialized body bool Флаг, который указывает, инициализировано ли средство управления питанием.
power_control_id body integer Идентификатор средства управления питанием.
control_type body string Тип средства.
power_control_title body string Наименование средства управления питанием.
protocol_type body string Тип протокола.
power_control_port body string Номер порта средства управления питанием.

Пример результата в JSON формате:

{
    "power_control": {
        "is_default": true,
        "is_initialized": true,
        "power_control_id": 1,
        "control_type": "SupermicroRackDevice",
        "power_control_title": "test",
        "power_control_port": "1",
        "protocol_type": "ipmi"
    }
}
DELETE
/v1/nodes/{node_id}/power-controls/{power_control_id}
Снятие назначения средства управления питанием на узел.

Снятие назначения средства управления питанием на узел.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
power_control_id path integer Идентификатор средства управления питанием.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/power-controls/$power_control_id

Эта операция не имеет содержания ответа.

POST
/v1/nodes/actions/attach
Привязка узлов к виртуальному контроллеру.

Привязка узлов к виртуальному контроллеру.

Запрос
Параметры запроса:
Name In Type Description
controller_uuid body string Идентификатор виртуального контроллера, к которому привязан узел.
hostnames body list Список имен узлов.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"controller_uuid": "2eec580b-12f8-4518-bf79-3dc5529617da", "hostnames": ["mnode2.dev.stand.loc"]}' http://controller:9362/v1/nodes/actions/attach | python -m json.tool

Эта операция не имеет содержания ответа.

Особенности запроса

Нюансы, которые необходимо учесть при работе с запросом attach_hosts:

  1. Версия пакета paramiko на контроллере должна быть ⩾ 1.6.0.

  2. На виртуальном контроллере должна быть возможность переключения на пользователя tionix. Это обусловлено тем, что само подключение через ssh осуществляется пользователем запустившим tnx-node-control-api, обычно это tionix.

    Проверить это возможно, переключившись на него в bash:

    su - nova
    
  3. Пользователь tionix должен иметь доступ до файла с сертификатом, который указан в конфигурационном файле модуля TIONIX.NodeControl.

    Проверить это возможно просмотрев файл ключа:

    cat $PATH_FROM_NC
    
  4. Необходимо проверить возможность подключения пользователя tionix к виртуальному контроллеру пользователем, указанным в конфигурационном файле модуля TIONIX.NodeControl, обычно tionix:

    ssh -i $PATH_FROM_NC tionix@$CONTROLLER_IP
    
  5. На виртуальном контроллере необходимо проверить возможность чтения файла с паролем, указанным в TIONIX.NodeControl (пользователя, от лица которого подключались на предыдущем шаге):

    cat $PATH_FROM_NC_PASSWD
    
POST
/v1/nodes/actions/detach
Отвязка узлов от виртуального контроллера.

Отвязка узлов от виртуального контроллера.

Запрос
Параметры запроса:
Name In Type Description
controller_uuid body string Идентификатор виртуального контроллера, к которому привязан узел.
hostnames body list Список имен узлов.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"controller_uuid": "2eec580b-12f8-4518-bf79-3dc5529617da", "hostnames": ["mnode2.dev.stand.loc"]}' http://controller:9362/v1/nodes/actions/detach | python -m json.tool

Эта операция не имеет содержания ответа.

POST
/v1/nodes/actions/reset
Перезапуск узлов.

Перезапуск узлов.

Запрос
Параметры запроса:
Name In Type Description
node_ids body list Идентификаторы узлов.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node_ids": [1, 2]}' http://controller:9362/v1/nodes/actions/reset | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
success body list Список узлов, которые были успешно перезапущены.
failed body list Список узлов, которые не удалось перезапустить.

Пример результата в JSON формате:

{
    "failed": [],
    "success": [
        1,
        2
    ]
}
POST
/v1/nodes/{availability_storage_id}/availability-storages/
Назначение узла хранилищам проверки доступности.

Назначение узла хранилищам проверки доступности. Ранее созданные назначения не удаляются.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
availability_storages body array Список идентификаторов хранилища проверки доступности.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"availability_storages": [1]}' http://controller:9362/v1/nodes/$node_id/availability-storages/

Эта операция не имеет содержания ответа.

POST
/v1/nodes/{availability_storage_id}/availability-storages/
Переназначение узла хранилищам проверки доступности.

Переназначение узла хранилищам проверки доступности. Ранее созданные назначения не удаляются.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
availability_storages body array Список идентификаторов хранилища проверки доступности.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"availability_storages": [1]}' http://controller:9362/v1/nodes/$node_id/availability-storages/

Эта операция не имеет содержания ответа.

DELETE
/v1/nodes/{node_id}/availability-storages/{availability_storage_id}
Удаление назначения хранилища проверки доступности узлам.

Удаление назначения хранилища проверки доступности узлам.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
availability_storage_id path integer Идентификатор хранилища проверки доступности.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id/availability-storages/$availability_storage_id | python -m json.tool

Эта операция не имеет содержания ответа.

SDN

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

GET
/v1/sdn-networks/
Получение списка всех изолированных сетей.

Получение списка изолированных сетей.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-networks/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
router body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "networks": [
        {
            "router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
            "uuid": "5892ab79-6008-4d28-ae8a-0ff2552d3ee1"
        },
        {
            "router": "f0f68361-286d-4362-854d-b6152f3285b3",
            "uuid": "a8817d5e-f29c-43f3-b35b-cd6b75c968da"
        }
    ]
}
GET
/v1/sdn-networks/{network_id}
Получение детальной информации об изолированной сети.

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

Запрос
Параметры запроса:
Name In Type Description
network_id path string Идентификатор изолированной сети.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-networks/$network_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
router body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "network": {
        "router": "f0f68361286d4362854db6152f3285b3",
        "uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
    }
}
POST
/v1/sdn-networks/
Создание изолированной сети.

Создание изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
router_id body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"network": {"router_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2"}}' http://controller:9362/v1/sdn-networks/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
router body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "network": {
        "router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
        "uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
    }
}
DELETE
/v1/sdn-networks/{network_id}
Удаление изолированной сети.

Удаление существующей изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
network_id path string Идентификатор изолированной сети.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sdn-networks/$network_id

Эта операция не имеет содержания ответа.

GET
/v1/sdn-nodes/
Получение списка всех подключенных вычислительных узлов.

Получение списка всех подключенных вычислительных узлов.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-nodes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
address body string IP-адрес узла.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "nodes": [
        {
            "address": "10.35.12.18",
            "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
        },
        {
            "address": "10.35.12.19",
            "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
        }
    ]
}
GET
/v1/sdn-nodes/{node_address}
Получение детальной информации о вычислительном узле в сети.

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

Запрос
Параметры запроса:
Name In Type Description
node_address path string IP-адрес узла.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-nodes/$node_address | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
address body string IP-адрес узла.
network body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "node": {
        "address": "10.35.12.19",
        "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
    }
}
POST
/v1/sdn-nodes/
Подключение узла к изолированной сети.

Подключение узла к изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
address body string IP-адрес узла.
network_id body string Идентификатор изолированной сети.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node": {"network_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2", "address": "10.35.12.19"}}' http://controller:9362/v1/sdn-nodes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
address body string IP-адрес узла.
network body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "node": {
        "address": "10.35.12.19",
        "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
    }
}
DELETE
/v1/sdn-nodes/{node_address}
Отключение вычислительного узла от изолированной сети.

Отключение вычислительного узла от изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
node_address path string IP-адрес узла.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-nodes/$node_address

Эта операция не имеет содержания ответа.

GET
/v1/sdn-routes/
Получение списка всех маршрутов.

Получение списка всех маршрутов.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-routes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор маршрута изолированной сети.
network body string Идентификатор изолированной сети.
route body string IP-адрес сети.

Пример результата в JSON формате:

{
    "routes": [
        {
            "id": 1,
            "network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
            "route": "10.0.0.1/32"
        },
        {
            "id": 2,
            "network": "ef8d24d6-6a78-488f-ad7f-662418b661ef",
            "route": "10.0.0.2/32"
        }
    ]
}
POST
/v1/sdn-routes/
Добавление маршрута.

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

Запрос
Параметры запроса:
Name In Type Description
network_id body string Идентификатор изолированной сети.
route body string IP-адрес сети.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"route": {"route": "10.0.0.1/32", "network_id": "ef8d24d6-6a78-488f-ad7f-662418b661ef"}}' http://controller:9362/v1/sdn-routes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор маршрута изолированной сети.
network body string Идентификатор изолированной сети.
route body string IP-адрес сети.

Пример результата в JSON формате:

{
    "route": {
        "id": 1,
        "network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
        "route": "10.0.0.1/32"
    }
}
DELETE
/v1/sdn-routes/{route_id}
Удаление маршрута.

Удаление существующего маршрута.

Запрос
Параметры запроса:
Name In Type Description
route_id path string Идентификатор маршрута изолированной сети.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sdn-routes/$route_id

Эта операция не имеет содержания ответа.

SDS

Позволяет управлять хранилищами и блоками хранилищ Ceph.

GET
/v1/sds-storages/
Получение списка хранилищ.

Получение списка хранилищ.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path string Идентификатор хранилища.
storage_name (Optional) path string Имя хранилища.
description (Optional) path string Описание хранилища.
storage_host (Optional) path string Доменное имя или IP-адрес хоста хранилища.
storage_host_port (Optional) path string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name (Optional) path string Имя сегмента (группы дисков) хоста хранилища.
disk_size (Optional) path string Размер одного диска на хосте хранилища в ГБ.
cluster_name (Optional) path string Имя кластера.
public_network (Optional) path string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id (Optional) path string Идентификатор кластера Ceph.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: storage_name, description, storage_host, storage_host_port, bucket_name, disk_size, cluster_name, public_network, ceph_cluster_id.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-storages/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор хранилища.
storage_name body string Имя хранилища.
description body string Описание хранилища.
storage_host body string Доменное имя или IP-адрес хоста хранилища.
storage_host_port body string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name body string Имя сегмента (группы дисков) хоста хранилища.
disk_size body string Размер одного диска на хосте хранилища в ГБ.
cluster_name body string Имя кластера.
public_network body string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id body string Идентификатор кластера Ceph.
monitor_hosts body list Перечень хостов мониторов Ceph.

Пример ответа в JSON формате:

{
    "storages": [
        {
            "bucket_name": "Bucket name",
            "ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
            "cluster_name": "hop",
            "description": null,
            "disk_size": 1000000,
            "id": 24,
            "monitor_hosts": [
                "127.0.0.1",
                "128.15.16.19"
            ],
            "public_network": "192.168.1.15/12",
            "storage_host": "ceph1.stand.loc",
            "storage_host_port": 5000,
            "storage_name": "Ceph storage 1"
        },
        {
            "bucket_name": "Bucket name 2",
            "ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
            "cluster_name": "hop",
            "description": null,
            "disk_size": 1000000,
            "id": 25,
            "monitor_hosts": [
                "monhost1",
                "monhost2",
                "monhost3"
            ],
            "public_network": "192.168.1.15/12",
            "storage_host": "ceph1.stand.loc",
            "storage_host_port": 5000,
            "storage_name": "Ceph storage 1"
        }
    ]
}
GET
/v1/sds-storages/count
Получение количества хранилищ.

Получение количества хранилищ.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path string Идентификатор хранилища.
storage_name (Optional) path string Имя хранилища.
description (Optional) path string Описание хранилища.
storage_host (Optional) path string Доменное имя или IP-адрес хоста хранилища.
storage_host_port (Optional) path string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name (Optional) path string Имя сегмента (группы дисков) хоста хранилища.
disk_size (Optional) path string Размер одного диска на хосте хранилища в ГБ.
cluster_name (Optional) path string Имя кластера.
public_network (Optional) path string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id (Optional) path string Идентификатор кластера Ceph.

Параметры, поддерживающие модификаторы: storage_name, description, storage_host, storage_host_port, bucket_name, disk_size, cluster_name, public_network, ceph_cluster_id.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-storages/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body integer Количество объектов.

Пример ответа в JSON формате:

{
    "count": 2
}
POST
/v1/sds-storages/
Создание хранилища.

Создание нового хранилища.

Запрос
Параметры запроса:
Name In Type Description
storage_name body string Имя хранилища.
description (Optional) body string Описание хранилища.
storage_host body string Доменное имя или IP-адрес хоста хранилища.
storage_host_port body string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name body string Имя сегмента (группы дисков) хоста хранилища.
disk_size body string Размер одного диска на хосте хранилища в ГБ.
cluster_name body string Имя кластера.
public_network body string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id body string Идентификатор кластера Ceph.
monitor_hosts body list Перечень хостов мониторов Ceph.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"storage": {"storage_name": "Ceph storage 1", "storage_host": "ceph1.stand.loc", "storage_host_port": 5000, "bucket_name": "Bucket name", "disk_size": 1000000, "monitor_hosts": ["monhost1", "monhost2"], "public_network": "192.168.0.0/12", "ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06", "cluster_name": "cluster1"}}' http://controller:9362/v1/sds-storages/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор хранилища.
storage_name body string Имя хранилища.
description body string Описание хранилища.
storage_host body string Доменное имя или IP-адрес хоста хранилища.
storage_host_port body string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name body string Имя сегмента (группы дисков) хоста хранилища.
disk_size body string Размер одного диска на хосте хранилища в ГБ.
cluster_name body string Имя кластера.
public_network body string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id body string Идентификатор кластера Ceph.
monitor_hosts body list Перечень хостов мониторов Ceph.

Пример результата в JSON формате:

{
    "storage": {
        "bucket_name": "Bucket name",
        "ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
        "cluster_name": "cluster1",
        "description": null,
        "disk_size": 1000000,
        "id": 24,
        "monitor_hosts": [
            "monhost1",
            "monhost2"
        ],
        "public_network": "192.168.0.0/12",
        "storage_host": "ceph1.stand.loc",
        "storage_host_port": 5000,
        "storage_name": "Ceph storage 1"
    }
}
GET
/v1/sds-storages/{storage_id}
Получение информации о хранилище.

Получение информации о хранилище.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sds-storages/$storage_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор хранилища.
storage_name body string Имя хранилища.
description body string Описание хранилища.
storage_host body string Доменное имя или IP-адрес хоста хранилища.
storage_host_port body string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name body string Имя сегмента (группы дисков) хоста хранилища.
disk_size body string Размер одного диска на хосте хранилища в ГБ.
cluster_name body string Имя кластера.
public_network body string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id body string Идентификатор кластера Ceph.
monitor_hosts body list Перечень хостов мониторов Ceph.

Пример ответа в JSON формате:

{
    "storage": {
        "bucket_name": "Bucket name",
        "ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
        "cluster_name": "hop",
        "description": null,
        "disk_size": 1000000,
        "id": 24,
        "monitor_hosts": [
            "127.0.0.1",
            "128.15.16.19"
        ],
        "public_network": "192.168.1.15/12",
        "storage_host": "ceph1.stand.loc",
        "storage_host_port": 5000,
        "storage_name": "Ceph storage 1"
    }
}
PUT
/v1/sds-storages/{storage_id}
Редактирование хранилища.

Редактирование существующего хранилища.

Запрос
Параметры запроса:
Name In Type Description
storage_id path string Идентификатор хранилища.
storage_name (Optional) body string Имя хранилища.
description (Optional) body string Описание хранилища.
storage_host (Optional) body string Доменное имя или IP-адрес хоста хранилища.
storage_host_port (Optional) body string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name (Optional) body string Имя сегмента (группы дисков) хоста хранилища.
cluster_name (Optional) body string Имя кластера.
public_network (Optional) body string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id (Optional) body string Идентификатор кластера Ceph.
monitor_hosts (Optional) body list Перечень хостов мониторов Ceph.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"storage": {"storage_host_port": 8000}}' http://controller:9362/v1/sds-storages/$storage_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор хранилища.
storage_name body string Имя хранилища.
description body string Описание хранилища.
storage_host body string Доменное имя или IP-адрес хоста хранилища.
storage_host_port body string Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000.
bucket_name body string Имя сегмента (группы дисков) хоста хранилища.
disk_size body string Размер одного диска на хосте хранилища в ГБ.
cluster_name body string Имя кластера.
public_network body string Сеть в формате CIDR. Например: 192.168.0.0/24.
ceph_cluster_id body string Идентификатор кластера Ceph.
monitor_hosts body list Перечень хостов мониторов Ceph.

Пример результата в JSON формате:

{
    "storage": {
        "bucket_name": "Bucket name",
        "ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
        "cluster_name": "hop",
        "description": null,
        "disk_size": 1000000,
        "id": 24,
        "monitor_hosts": [
            "monhost1",
            "monhost2"
        ],
        "public_network": "192.168.0.0/12",
        "storage_host": "ceph1.stand.loc",
        "storage_host_port": 8000,
        "storage_name": "Ceph storage 1"
    }
}
DELETE
/v1/sds-storages/{storage_id}
Удаление хранилища.

Удаление существующего хранилища.

Запрос
Параметры запроса:
Name In Type Description
storage_id path string Идентификатор хранилища.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/sds-storages/$storage_id | python -m json.tool

Эта операция не имеет содержания ответа.

GET
/v1/sds-storages/{storage_id}/osd
Получение количества свободных OSD узлов в сегменте хранилища.

Получение количества свободных OSD узлов в сегменте хранилища.

Запрос
Параметры запроса:
Name In Type Description
storage_id path string Идентификатор хранилища.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token"  http://controller:9362/v1/sds-storages/$storage_id/osd | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
replica1 body integer Количество дисков/OSD, которое может быть выделено под блок с одной копией.
replica2 body integer Количество дисков/OSD, которое может быть выделено под блок с двумя копиями.
replica3 body integer Количество дисков/OSD, которое может быть выделено под блок с тремя копиями.

Пример результата в JSON формате:

{
    "osd": {
        "replica1": 1,
        "replica2": 1,
        "replica3": 1
    }
}
GET
/v1/sds-blocks/
Получение списка блоков хранилища.

Получение списка блоков хранилища.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path string Идентификатор блока хранилища.
block_name (Optional) path string Имя блока хранилища.
description (Optional) path string Описание блока хранилища.
storage_id (Optional) path string Идентификатор хранилища.
num_replicas (Optional) path string Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию).
useful_space (Optional) path string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid (Optional) path string UUID блока.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: id, block_name, description, storage_id, num_replicas, useful_space, uuid.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-blocks/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор блока хранилища.
block_name body string Имя блока хранилища.
description body string Описание блока хранилища.
storage_id body string Идентификатор хранилища.
num_replicas body string Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию).
useful_space body string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid body string UUID блока.
auth_key body string Ключ авторизации.

Пример ответа в JSON формате:

{
    "blocks": [
        {
            "auth_key": null,
            "block_name": "block",
            "description": null,
            "id": 5,
            "num_replicas": 1,
            "storage_id": 5,
            "useful_space": 512,
            "uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"
        },
        {
            "auth_key": "4ea84ef0-6cbe-4c32-841a-498d385effda",
            "block_name": "block",
            "description": null,
            "id": 6,
            "num_replicas": 4,
            "storage_id": 4,
            "useful_space": 1024,
            "uuid": "8dc47ed4-dff4-475f-87b9-7745dbd9f8f8"
        }

    ]
}
GET
/v1/sds-blocks/count
Получение количества блоков хранилища.

Получение количества блоков хранилища.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path string Идентификатор блока хранилища.
block_name (Optional) path string Имя блока хранилища.
description (Optional) path string Описание блока хранилища.
storage_id (Optional) path string Идентификатор хранилища.
num_replicas (Optional) path string Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию).
useful_space (Optional) path string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid (Optional) path string UUID блока.

Параметры, поддерживающие модификаторы: id, block_name, description, storage_id, num_replicas, useful_space, uuid.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-blocks/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body integer Количество объектов.

Пример ответа в JSON формате:

{
    "count": 2
}
GET
/v1/sds-blocks/{block_id}
Получение информации о блоке хранилища.

Получение информации о блоке хранилища.

Запрос
Параметры запроса:
Name In Type Description
block_id path string Идентификатор блока хранилища.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sds-blocks/$block_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор блока хранилища.
block_name body string Имя блока хранилища.
description body string Описание блока хранилища.
storage_id body string Идентификатор хранилища.
num_replicas body string Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию).
useful_space body string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid body string UUID блока.
auth_key body string Ключ авторизации.

Пример ответа в JSON формате:

{
    "block": {
        "auth_key": null,
        "block_name": "block",
        "description": null,
        "id": 5,
        "num_replicas": 1,
        "storage_id": 5,
        "useful_space": 512,
        "uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"
    }
}
POST
/v1/sds-blocks/
Создание блока хранилища.

Создание блока хранилища.

Запрос
Параметры запроса:
Name In Type Description
block_name body string Имя блока хранилища.
description (Optional) body string Описание блока хранилища.
storage_id body string Идентификатор хранилища.
num_replicas body string Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию).
useful_space body string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid body string UUID блока.
auth_key body string Ключ авторизации.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"block": {"block_name": "block", "storage_id": 5, "num_replicas": 1, "useful_space": 512, "uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"}}' http://controller:9362/v1/sds-blocks/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор блока хранилища.
block_name body string Имя блока хранилища.
description body string Описание блока хранилища.
storage_id body string Идентификатор хранилища.
num_replicas body string Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию).
useful_space body string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid body string UUID блока.
auth_key body string Ключ авторизации.

Пример результата в JSON формате:

{
    "block": {
        "auth_key": null,
        "block_name": "block",
        "description": null,
        "id": 5,
        "num_replicas": 1,
        "storage_id": 5,
        "useful_space": 512,
        "uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"
    }
}
PUT
/v1/sds-blocks/{block_id}
Редактирование блока хранилища.

Редактирование существующего блока хранилища.

Запрос
Параметры запроса:
Name In Type Description
block_id path string Идентификатор блока хранилища.
block_name (Optional) body string Имя блока хранилища.
description (Optional) body string Описание блока хранилища.
useful_space (Optional) body string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid (Optional) body string UUID блока.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"block": {"useful_space": 540}}' http://controller:9362/v1/sds-blocks/$block_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор блока хранилища.
block_name body string Имя блока хранилища.
description body string Описание блока хранилища.
storage_id body string Идентификатор хранилища.
num_replicas body string Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию).
useful_space body string Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища.
uuid body string UUID блока.
auth_key body string Ключ авторизации.

Пример результата в JSON формате:

{
    "block": {
        "auth_key": "4ea84ef0-6cbe-4c32-841a-498d385effda",
        "block_name": "new block",
        "description": null,
        "id": 3,
        "num_replicas": 1,
        "storage_id": 5,
        "useful_space": 540,
        "uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"

    }
}
DELETE
/v1/sds-blocks/{block_id}
Удаление блока хранилища.

Удаление существующего блока хранилища.

Запрос
Параметры запроса:
Name In Type Description
block_id path string Идентификатор блока хранилища.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sds-blocks/$block_id | python -m json.tool

Эта операция не имеет содержания ответа.

POST
/v1/sds-blocks/{block_id}/actions/configure
Настройка служб OpenStack узла на работу с Ceph.

Настройка служб OpenStack удаленного узла на работу с Ceph.

Запрос
Параметры запроса:
Name In Type Description
block_id path string Идентификатор блока хранилища.
host body string IP-адрес или доменное имя узла.
mode body string

Режим настройки узла. Принимает значения:

  • controller;
  • compute.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"host": "10.35.26.27", "mode": "compute"}' http://controller:9362/v1/sds-blocks/$block_id/actions/configure

Эта операция не имеет содержания ответа.

DRS

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

POST
/v1/aggregates/{aggregate_id}/actions/execute-audit
Запуск аудита возможности балансировки.

Запуск аудита возможности балансировки.

Запрос
Параметры запроса:
Name In Type Description
aggregate_id path string Идентификатор агрегатора узлов.
auto_apply (Optional) body bool Дополнительный параметр, разрешает автоматическое применение результата аудита.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/aggregates/{aggregate_id}/actions/execute-audit
Параметры ответа:
Name In Type Description
id body string Идентификатор аудита.
status body string Статус аудита.

Пример результата в JSON формате:

{
    "audit": {
        "id": 99,
        "status": "DONE"
    }
}
POST
/v1/aggregates/{aggregate_id}/actions/apply-audit
Применение результата аудита.

Применение результата аудита.

Запрос
Параметры запроса:
Name In Type Description
aggregate_id path string Идентификатор агрегатора узлов.
audit_id body string Идентификатор аудита.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"audit_id": 99}'  http://controller:9362/v1/aggregates/{aggregate_id}/actions/apply-audit

Эта операция не имеет содержания ответа.

POST
/v1/aggregates/{aggregate_id}/actions/get-audit-status
Получение статуса аудита.

Применение результата аудита.

Запрос
Параметры запроса:
Name In Type Description
aggregate_id path string Идентификатор агрегатора узлов.
audit_id body string Идентификатор аудита.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"audit_id": 99}' http://controller:9362/v1/aggregates/{aggregate_id}/actions/get-audit-status
Параметры ответа:
Name In Type Description
id body string Идентификатор аудита.
status body string Статус аудита.

Пример результата в JSON формате:

{
    "audit": {
        "id": 99,
        "status": "DONE"
    }
}

Блочное хранилище Cinder

Позволяет управлять блочным хранилищем на основе LVM.

Примечание

Для корректной работы требуется настроенная служба tionix-agent с типом control на узлах со службой cinder-volume и nova-compute.

GET
/v1/volume-backends/
Получение списка хранилищ.

Получение списка хранилищ.

Запрос
Параметры запроса:
Name In Type Description
volume_backend_name (Optional) path string Имя бэкенда блочного хранилища.
host (Optional) path string Имя узла блочного хранилища.
vg_name (Optional) path string Имя группы логических томов.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: volume_backend_name, host, vg_name.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/volume-backends/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
volume_backend_name body string Имя бэкенда блочного хранилища.
host body string Имя узла блочного хранилища.
vg_name body string Имя группы логических томов.
protocol body string Протокол взаимодействия в системах хранения данных.
free_size body string Размер свободного места хранилища, ГБ.
total_size body string Общий размер хранилища, ГБ.
logical_volumes body array Список логических томов.
physical_volumes body array Список физических томов.

Пример ответа в JSON формате:

[
    {
        "volume_backend_name": "sanlock",
        "host": "volume2.sanlock.stand.loc",
        "vg_name": "vol",
        "protocol": "iscsi",
        "free_size": "136.75",
        "total_size": "138",
        "logical_volumes": [
            {
                "lv_name": "volume-cfae37a3-6e8f-4bc8-862e-85db07ff429f",
                "vg_name": "vol",
                "lv_attr": "-wi-------",
                "lv_size": "1,00g",
                "lv_uuid": "XSOJgt-6xDf-mTWA-NG7q-MyR7-MheT-e39yp3",
                "mirror_count": "1",
                "devices": [
                    {
                        "pv": "/dev/mapper/mpathb",
                        "seg_size": "1,00g"
                    }
                ]
            }
        ],
        "physical_volumes": [
            {
                "pv_name": "/dev/mapper/mpathb",
                "vg_name": "vol",
                "pv_attr": "a--",
                "pv_size": "46,00g",
                "pv_free": "44,75g"
            },
            {
                "pv_name": "/dev/mapper/mpathc",
                "vg_name": "vol",
                "pv_attr": "a--",
                "pv_size": "46,00g",
                "pv_free": "46,00g"
            },
            {
                "pv_name": "/dev/mapper/mpathd",
                "vg_name": "vol",
                "pv_attr": "a--",
                "pv_size": "46,00g",
                "pv_free": "46,00g"
            }
        ],
    }
]
GET
/v1/volumes/{volume_id}
Получение информации о логическом томе.

Получение информации о логическом томе.

Запрос
Параметры запроса:
Name In Type Description
volume_id body string Идентификатор диска Cinder.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token"  http://controller:9362/v1/volumes/cfae37a3-6e8f-4bc8-862e-85db07ff429f | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
volume_id body string Идентификатор диска Cinder.
volume_backend_name body string Имя бэкенда блочного хранилища.
host body string Имя узла блочного хранилища.
logical_volume body object Логический том.
thin_enabled body bool Флаг, который указывает, является ли диск тонким.
lock_hosts body array Список узлов, на которых установлена блокировка диска.
lock_exclusive body bool Флаг, который указывает, является ли блокировка эксклюзивной.

Пример ответа в JSON формате:

{
    "volume": {
        "volume_id": "cfae37a3-6e8f-4bc8-862e-85db07ff429f",
        "volume_backend_name": "sanlock",
        "host": "volume2.sanlock.stand.loc",
        "thin_enabled": "True",
        "logical_volume": {
            {
                "lv_name": "volume-cfae37a3-6e8f-4bc8-862e-85db07ff429f",
                "vg_name": "vol",
                "lv_attr": "-wi-------",
                "lv_uuid": "XSOJgt-6xDf-mTWA-NG7q-MyR7-MheT-e39yp3",
                "mirror_count": "1",
                "lv_size": "1,00g",
                "lv_status": null,
                "devices": [
                    {
                        "pv": "/dev/mapper/mpathb",
                        "seg_size": "1,00g"
                    }
                ]
            }
        },
        "lock_hosts": ["volume2.sanlock.stand.loc"],
        "lock_exclusive": true
    }
}
GET
/v1/volumes/
Получение информации о логических томах.

Получение информации о логических томах.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token"  http://controller:9362/v1/volumes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
volume_id body string Идентификатор диска Cinder.
volume_backend_name body string Имя бэкенда блочного хранилища.
host body string Имя узла блочного хранилища.
logical_volume body object Логический том.

Пример ответа в JSON формате:

{
    "volumes": [
        {
            "volume_id": "cfae37a3-6e8f-4bc8-862e-85db07ff429f",
            "logical_volume": {
                {
                    "lv_name": "volume-cfae37a3-6e8f-4bc8-862e-85db07ff429f",
                    "vg_name": "vol",
                    "lv_attr": "-wi-------",
                    "lv_uuid": "XSOJgt-6xDf-mTWA-NG7q-MyR7-MheT-e39yp3",
                    "mirror_count": "1",
                    "lv_size": "1,00g",
                    "lv_status": null,
                    "devices": [
                        {
                            "pv": "/dev/mapper/mpathb",
                            "seg_size": "1,00g"
                        }
                    ]
                }
            }
        }
    ]
}
POST
/v1/volumes/{volume_id}/actions/mirror
Зеркалирование диска.

Конвертация диска в зеркалированный диск.

Запрос
Параметры запроса:
Name In Type Description
volume_id path string Идентификатор диска Cinder.
mirror_count body integer Количество копий диска. 0 для отключения зеркалирования.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"mirror_count": 1}' http://controller:9362/v1/volumes/cfae37a3-6e8f-4bc8-862e-85db07ff429f/actions/mirror

Эта операция не имеет содержания ответа.

POST
/v1/volumes/{volume_id}/actions/pv-migrate
Миграция диска между физическими томами.

Миграция диска между физическими томами.

Запрос
Параметры запроса:
Name In Type Description
volume_id path string Идентификатор диска Cinder.
source_pv body string Исходный физический том.
dest_pv (Optional) body string Целевой физический том.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"source_pv": "/dev/mapper/mpathb", "dest_pv": "/dev/mapper/mpathc"}' http://controller:9362/v1/volumes/cfae37a3-6e8f-4bc8-862e-85db07ff429f/actions/pv-migrate

Эта операция не имеет содержания ответа.

Хранилища проверки доступности

Действия с хранилищами проверки доступности.

GET
/v1/availability-storages/
Получение списка хранилищ проверки доступности.

Получение списка хранилищ проверки доступности.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id (Optional) path integer Идентификатор хранилища проверки доступности.
name (Optional) path string Имя хранилища проверки доступности.
offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: id, name.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/availability-storages/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор хранилища проверки доступности.
name body string Имя хранилища проверки доступности.
compute_path body string Путь хранилища проверки доступности на вычислительном узле.
controller_path body string Путь хранилища проверки доступности на управляющем узле.
nodes (Optional) body string Список узлов, которым назначено хранилище проверки доступности.

Пример результата в JSON формате:

{
    "availability_storages": [
        {
            "id": 1,
            "name": "storage1",
            "compute_path": "/tmp/",
            "controller_path": "/tmp/",
            "nodes": []
        }
    ]
}
GET
/v1/availability-storages/count
Получение количества хранилищ проверки доступности.

Получение количества хранилищ проверки доступности.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id (Optional) path integer Идентификатор хранилища проверки доступности.
name (Optional) path string Имя хранилища проверки доступности.

Параметры, поддерживающие модификаторы: id, name.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/availability-storages/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body integer Количество объектов.

Пример результата в JSON формате:

{
    "count": 4
}
POST
/v1/availability-storages/
Создание хранилища проверки доступности.

Создание нового хранилища проверки доступности.

Запрос
Параметры запроса:
Name In Type Description
name body string Имя хранилища проверки доступности.
compute_path body string Путь хранилища проверки доступности на вычислительном узле.
controller_path body string Путь хранилища проверки доступности на управляющем узле.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"availability_storage": {"name": "storage1", "compute_path": "/tmp/", "controller_path": "/tmp/"}}' http://controller:9362/v1/availability-storages/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор хранилища проверки доступности.
name body string Имя хранилища проверки доступности.
compute_path body string Путь хранилища проверки доступности на вычислительном узле.
controller_path body string Путь хранилища проверки доступности на управляющем узле.
nodes (Optional) body string Список узлов, которым назначено хранилище проверки доступности.

Пример результата в JSON формате:

{
    "availability_storage": {
        "id": 1,
        "name": "storage1",
        "compute_path": "/tmp/",
        "controller_path": "/tmp/",
        "nodes": []
    }
}
GET
/v1/availability-storages/{availability_storage_id}
Получение информации о хранилище проверки доступности.

Получение информации о хранилище проверки доступности.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id path integer Идентификатор хранилища проверки доступности.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/availability-storages/$availability_storage_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
availability_storage_id path integer Идентификатор хранилища проверки доступности.
name body string Имя хранилища проверки доступности.
compute_path body string Путь хранилища проверки доступности на вычислительном узле.
controller_path body string Путь хранилища проверки доступности на управляющем узле.
nodes (Optional) body string Список узлов, которым назначено хранилище проверки доступности.

Пример результата в JSON формате:

{
    "availability_storage": {
        "id": 1,
        "name": "storage1",
        "compute_path": "/tmp/",
        "controller_path": "/tmp/",
        "nodes": []
    }
}
PUT
/v1/availability-storages/{availability_storage_id}
Редактирование хранилища проверки доступности.

Редактирование существующего хранилища проверки доступности.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id path integer Идентификатор хранилища проверки доступности.
name body string Имя хранилища проверки доступности.
compute_path body string Путь хранилища проверки доступности на вычислительном узле.
controller_path body string Путь хранилища проверки доступности на управляющем узле.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"availability_storage": {"name": "storage2"}}' http://controller:9362/v1/availability-storages/$availability_storage_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id path integer Идентификатор хранилища проверки доступности.
name body string Имя хранилища проверки доступности.
compute_path body string Путь хранилища проверки доступности на вычислительном узле.
controller_path body string Путь хранилища проверки доступности на управляющем узле.
nodes (Optional) body string Список узлов, которым назначено хранилище проверки доступности.

Пример результата в JSON формате:

{
    "availability_storage": {
        "id": 1,
        "name": "storage2",
        "compute_path": "/tmp/",
        "controller_path": "/tmp/",
        "nodes": []
    }
}
DELETE
/v1/availability-storages/{availability_storage_id}
Удаление хранилища проверки доступности.

Удаление существующего хранилища проверки доступности.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id path integer Идентификатор хранилища проверки доступности.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/availability-storages/$availability_storage_id

Эта операция не имеет содержания ответа.

POST
/v1/availability-storages/{availability_storage_id}/nodes/
Назначение хранилища проверки доступности узлам.

Назначение хранилища проверки доступности узлам. Ранее созданные назначения не удаляются.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id path integer Идентификатор хранилища проверки доступности.
nodes body array Список идентификаторов узлов.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"nodes": [1]}' http://controller:9362/v1/availability-storages/$availability_storage_id/nodes/

Эта операция не имеет содержания ответа.

PUT
/v1/availability-storages/{availability_storage_id}/nodes/
Переназначение хранилища проверки доступности узлам.

Переназначение хранилища проверки доступности узлам. Ранее созданные назначения удаляются.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id path integer Идентификатор хранилища проверки доступности.
nodes body array Список идентификаторов узлов.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"nodes": [2]}' http://controller:9362/v1/availability-storages/$availability_storage_id/nodes/

Эта операция не имеет содержания ответа.

DELETE
/v1/availability-storages/{availability_storage_id}/nodes/{node_id}
Удаление назначения хранилища проверки доступности узлам.

Удаление назначения хранилища проверки доступности узлам.

Запрос
Параметры запроса:
Name In Type Description
availability_storage_id path integer Идентификатор хранилища проверки доступности.
node_id path integer Идентификатор узла.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/availability-storages/$availability_storage_id/nodes/$node_id

Эта операция не имеет содержания ответа.

Изолированные сети

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

GET
/v1/networks/
Получение списка всех изолированных сетей.

Получение списка изолированных сетей.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/networks/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
router body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "networks": [
        {
            "router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
            "uuid": "5892ab79-6008-4d28-ae8a-0ff2552d3ee1"
        },
        {
            "router": "f0f68361-286d-4362-854d-b6152f3285b3",
            "uuid": "a8817d5e-f29c-43f3-b35b-cd6b75c968da"
        }
    ]
}
GET
/v1/networks/{network_id}
Получение детальной информации об изолированной сети.

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

Запрос
Параметры запроса:
Name In Type Description
network_id path string Идентификатор изолированной сети.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/networks/$network_id | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
router body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "network": {
        "router": "f0f68361286d4362854db6152f3285b3",
        "uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
    }
}
POST
/v1/networks/
Создание изолированной сети.

Создание изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
router_id body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"network": {"router_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2"}}' http://controller:9362/v1/networks/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
router body string UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "network": {
        "router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
        "uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
    }
}
DELETE
/v1/networks/{network_id}
Удаление изолированной сети.

Удаление существующей изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
network_id path string Идентификатор изолированной сети.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/networks/$network_id

Эта операция не имеет содержания ответа.

Изолированные вычислительные узлы

GET
/v1/isolated-nodes/
Получение списка всех подключенных вычислительных узлов.

Получение списка всех подключенных вычислительных узлов.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/isolated-nodes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
address body string IP-адрес узла.
uuid body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "nodes": [
        {
            "address": "10.35.12.18",
            "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
        },
        {
            "address": "10.35.12.19",
            "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
        }
    ]
}
GET
/v1/isolated-nodes/{node_address}
Получение детальной информации о вычислительном узле в сети.

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

Запрос
Параметры запроса:
Name In Type Description
node_address path string IP-адрес узла.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/isolated-nodes/$node_address | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
address body string IP-адрес узла.
network body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "node": {
        "address": "10.35.12.19",
        "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
    }
}
POST
/v1/isolated-nodes/
Подключение узла к изолированной сети.

Подключение узла к изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
address body string IP-адрес узла.
network_id body string Идентификатор изолированной сети.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node": {"network_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2", "address": "10.35.12.19"}}' http://controller:9362/v1/isolated-nodes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
address body string IP-адрес узла.
network body string Идентификатор изолированной сети.

Пример результата в JSON формате:

{
    "node": {
        "address": "10.35.12.19",
        "network": "1862da55-57af-4300-affb-0bbbc5c966d8"
    }
}
DELETE
/v1/isolated-nodes/{node_address}
Отключение вычислительного узла от изолированной сети.

Отключение вычислительного узла от изолированной сети.

Запрос
Параметры запроса:
Name In Type Description
node_address path string IP-адрес узла.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/isolated-nodes/$node_address

Эта операция не имеет содержания ответа.

Маршруты

GET
/v1/routes/
Получение списка всех маршрутов.

Получение списка всех маршрутов.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/routes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор маршрута изолированной сети.
network body string Идентификатор изолированной сети.
route body string IP-адрес сети.

Пример результата в JSON формате:

{
    "routes": [
        {
            "id": 1,
            "network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
            "route": "10.0.0.1/32"
        },
        {
            "id": 2,
            "network": "ef8d24d6-6a78-488f-ad7f-662418b661ef",
            "route": "10.0.0.2/32"
        }
    ]
}
POST
/v1/routes/
Добавление маршрута.

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

Запрос
Параметры запроса:
Name In Type Description
network_id body string Идентификатор изолированной сети.
route body string IP-адрес сети.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"route": {"route": "10.0.0.1/32", "network_id": "ef8d24d6-6a78-488f-ad7f-662418b661ef"}}' http://controller:9362/v1/routes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор маршрута изолированной сети.
network body string Идентификатор изолированной сети.
route body string IP-адрес сети.

Пример результата в JSON формате:

{
    "route": {
        "id": 1,
        "network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
        "route": "10.0.0.1/32"
    }
}
DELETE
/v1/routes/{route_id}
Удаление маршрута.

Удаление существующего маршрута.

Запрос
Параметры запроса:
Name In Type Description
route_id path string Идентификатор маршрута изолированной сети.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/routes/$route_id

Эта операция не имеет содержания ответа.

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