REST API

Примечание

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


CloudManager API

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

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

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

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": "cloud_manager",
            "name": "TestLicense",
            "product": "CloudManager",
            "surrogate_name": "CloudManager",
            "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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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

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

POST
/v1/servers/{server_id}/actions/wakeup
Пробуждение виртуальной машины.

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

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

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

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

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

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
count (Optional) body integer Количество клонов.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"count": 2}' http://controller:9362/v1/servers/$server_id/actions/clone
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
GET
/v1/system_metadata/{instance_uuid}
Получение метаданных.

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

Запрос
Параметры запроса:
Name In Type Description
instance_uuid path string Идентификатор виртуальной машины.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" $controller:9362/v1/system_metadata/45bb8680-c070-4080-be45-ec4d2312eda8 | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
metadata (Optional) body string

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

  • cpu_benchmark.

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

{
    "metadata": {
        "image_base_image_ref": "f0576590-ad14-4963-a47d-4fd17b6ddb80",
        "image_container_format": "bare",
        "image_disk_format": "qcow2",
        "image_min_disk": "10",
        "image_min_ram": "0"
    }
}
PUT
/v1/system_metadata/{instance_uuid}
Обновление метаданных.

Обновление метаданных виртуальной машины.

Запрос
Параметры запроса:
Name In Type Description
instance_uuid path string Идентификатор виртуальной машины.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"image_min_ram": "1", "image_min_disk": "10", "image_disk_format": "qcow2", "image_container_format": "bare", "image_base_image_ref": "f0576590-ad14-4963-a47d-4fd17b6ddb80"}' $controller:9362/v1/system_metadata/45bb8680-c070-4080-be45-ec4d2312eda8

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

DELETE
/v1/system_metadata/{instance_uuid}/removed/
Удаление метаданных.

Удаление метаданных виртуальной машины.

Запрос
Параметры запроса:
Name In Type Description
instance_uuid path string Идентификатор виртуальной машины.
removed path string Удаляемое поле метаданных для виртуальной машины.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" $controller:9362/v1/system_metadata/45bb8680-c070-4080-be45-ec4d2312eda8/removed/image_min_disk | python -m json.tool

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

Классы узла

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

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

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

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

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

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"
                    }
                ]
            },
            "cloud_managers": [
                {
                    "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
        }
    ]
}

Узлы

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

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

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

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

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

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

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

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

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

offset (Optional) path integer Номер позиции для получения данных.
limit (Optional) path integer Ограничение количества получаемых данных.
with_os_object (Optional) path bool Параметр, позволяющий расширять узлы класса hypervisor объектом os_hypervisor, содержащим атрибуты вычислительного узла OpenStack.
with_hwinfo (Optional) path bool Параметр, позволяющий расширять узлы класса hypervisor объектом hwinfo, содержащим сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack.

Параметры, поддерживающие модификаторы: id, image_id, node_class_id, node_type_id, hypervisor_id, name, controller_id, controller_type, description, dtc_number, unit_number, rack_number, row_number, cpu_amount, ram_mb, hdd_gb, mac_address, title, is_reserved, is_controller, inventory_code, power_state, owner, active, condition.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
active body bool Флаг, который указывает, является ли узел активным. По умолчанию: True.
condition body integer

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

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

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

controller_id body string Идентификатор виртуального контроллера, к которому привязан узел.
controller_type body string Тип виртуального контроллера.
cpu_amount body integer Количество процессоров. Может принимать значения от 0 до 99.
cpu_allocation_ratio body float Допустимое превышение CPU.
description body string Описание узла.
dtc_number body integer Номер дата-центра. Может принимать значения от 1 до 99.
hdd_gb body integer Объем жесткого диска (ГБ).
hypervisor_id body string Идентификатор вычислительного узла в OpenStack.
id body integer Идентификатор узла.
image body object PXE образ узла.
inventory_code body integer Инвентарный номер.
ip_addresses (Optional) body list Список IP-адресов узла. Пример: {"ip_addresses": ["127.0.0.1", "192.168.0.15"]}.
is_controller body bool Флаг, который указывает, является ли узел контроллером. По умолчанию: False.
is_reserved body bool Флаг, который указывает, зарезервирован ли узел. По умолчанию: False.
mac_address body string MAC-адреса узла.
name body string Имя узла.
node_class (Optional) body object Класс узла.
node_type (Optional) body object Тип класса узла.
node_controls body list Список средств управления питанием узла.
owner body string Имя пользователя, создавшего узел.
power_state body string

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

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

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

{
    "nodes": [
        {
            "active": true,
            "condition": 0,
            "controller_id": null,
            "controller_type": null,
            "cpu_amount": null,
            "cpu_allocation_ratio": 16.0,
            "description": null,
            "dtc_number": 1,
            "hdd_gb": null,
            "hypervisor_id": "2239c611-523c-44d2-9feb-2c6905fbb5c8",
            "id": 1,
            "image": {
                "id": 1,
                "name": "default"
            },
            "inventory_code": null,
            "ip_addresses": ["10.35.222.11"],
            "is_controller": false,
            "is_reserved": false,
            "mac_address": null,
            "name": "mnode1.dev-cnt7q-ovs-02.stand.loc",
            "node_class": {
                "id": 1,
                "is_default": true,
                "name": "hypervisor"
            },
            "node_controls": [
                {
                    "is_default": true,
                    "is_initialized": true,
                    "power_control_id": 1,
                    "control_type": "SupermicroRackDevice",
                    "power_control_title": "test",
                    "power_control_port": "1",
                    "protocol_type": "ipmi"
                }
            ],
            "node_type": {
                "id": 2,
                "name": "QEMU"
            },
            "owner": null,
            "power_state": "power_on",
            "rack_number": null,
            "ram_mb": null,
            "ram_allocation_ratio": 1.5,
            "row_number": null,
            "title": "\u0442\u0435\u0441\u04422",
            "unit_number": null
        },
        {
            "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 Список хранилищ проверки доступности.
nas (Optional) body string Подключенные СХД узлы.

Пример результата в 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",
        "nas": {
            "mnode1.dev-cnt7q-ovs-02.stand.loc": ["iqn.2010-10.org.openstack:volume-9ce44bf8-f981-45b8-8ef4-8120f4761420"]
        },
        "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

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

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 для узла.

Запрос
Параметры запроса:
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-nodesafe
Включение режима NodeSafe для узла.

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

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

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

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

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

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

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

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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}
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

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

POST
/v1/nodes/{node_id}/actions/discovery-nas
Опрос СХД.

Опрос СХД для получения доступных дисков.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
storage_id body integer ID СХД.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"storage_id": 50}' http://controller:9362/v1/nodes/$node_id/actions/discovery-nas | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
targets body dict Список имен дисков СХД для подключения к узлу.

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

{
    "targets": {
        "10.40.38.2": [
            "volume-887880f7-9e54-4f81-8d32-3e0b7a9b1c5c",
            "volume-99361e45-6e50-45fc-9236-08108b2c7add",
            "volume-f28e9c36-beed-4ce6-b30a-d2f2a8952734"
        ]
    }
}
POST
/v1/nodes/{node_id}/actions/attach-targets
Подключение дисков к узлу.

Подключение диска СХД к узлу.

Запрос
Параметры запроса:
Name In Type Description
node_id path integer Идентификатор узла.
targets body dict Список имен дисков СХД для подключения к узлу.
vendor (Optional) body string Производитель СХД.
product (Optional) body string Модель СХД.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"targets": {"10.40.38.2": ["volume-887880f7-9e54-4f81-8d32-3e0b7a9b1c5c"]}}' http://controller:9362/v1/nodes/$node_id/actions/attach-targets | python -m json.tool

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

POST
/v1/nodes/{node_id}/actions/repair-locks
Восстановление блокировок.

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

Запрос
Параметры запроса:
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/repair-locks | python -m json.tool

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

POST
/v1/nodes/actions/balance
Балансировка нагрузки узлов

Запуск балансировки нагрузки на узлах.

Запрос
Параметры запроса:
Name In Type Description
nodes (Optional) body list Список ID узлов.
aggregates (Optional) body list Список ID агрегаторов.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"nodes": ["44d751bb-cadc-485f-8188-39e55f573173", "bd6e2f96-7739-409b-b508-9c8d85ae98b5"]}' http://controller:9362/v1/nodes/actions/balance | python -m json.tool

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

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.

Примечание

Для корректной работы требуется настроенная служба 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 Логический том.
thin_enabled body bool Флаг, который указывает, является ли том тонким.

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

{
    "volumes": [
        {
            "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"
                        }
                    ]
                }
            }
        }
    ]
}
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

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

Задачи в celery

Информация о задачах в celery.

GET
/v1/tasks/
Получение списка ID последних задач.

Получение списка ID последних задач celery.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/tasks
Ответ
Параметры ответа:
Name In Type Description
task_id body string ID задачи в celery.

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

{
    "tasks":[
        "3519adaf-7669-499e-88eb-8f05f64514e2",
        "013b9778-1d39-4b18-a06c-2780b67e1091",
        "31c71e8a-26cd-4b8e-a4c5-9181d578616f",
        "3e720334-7533-43b7-a079-24ea84b7a8a0",
        "8869de12-3f44-4b96-a20e-80a03dd575a3",
        "641de831-95b2-43ba-8fd5-7822ee5d6445",
        "f0204f11-8e59-410a-8108-a73212c5439a",
        "3b8eff74-55b1-4eb8-80e2-adf8472fc968",
        "93e30a3c-117b-4e05-990d-4ff46ac5ac84",
        "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
    ]
}
GET
/v1/tasks/{task_id}
Получение информации о задаче.

Получение информации о задачи в celery по ID.

Запрос
Параметры запроса:
Name In Type Description
task_id body string ID задачи в celery.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/tasks/$task_id
Ответ
Параметры ответа:
Name In Type Description
status body string Статус задачи.
name (Optional) body string Имя задачи в celery.
traceback (Optional) body string Traceback ошибки при выполнении задачи.
result (Optional) body string Результат задачи.

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

{
    "status":"SUCCESS"
}

Домены

Действия с доменами.

POST
/domains/actions/get-store
Получение способа хранения домена.

Получение способа хранения домена.

Запрос
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/domains/actions/get-store
Ответ
Параметры ответа:
Name In Type Description
store body string Способ хранения домена.

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

{
    "store": "file"
}
POST
/v1/domains/{domain_id}/actions/configure
Загрузка конфигурации домена.

Загрузка конфигурации домена в базу данных.

Запрос
Параметры запроса:
Name In Type Description
domain_id body string ID домена.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9362/v1/domains/$domain_id/actions/configure

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

GET
/v1/domains/totp-allowed
Информация о возможности отправки одноразовых паролей.

Получение информации из конфигурации о возможности отправки одноразовых паролей.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/domains/totp-allowed | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
totp_allowed body bool Возможность отправки одноразовых паролей.

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

{
    "totp_allowed": "true"
}

Флейворы

Действия с флейорами.

GET
/v1/flavors/{instance_id}
Получение доступных флейворов для иснтанса .

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

Запрос
Параметры запроса:
Name In Type Description
instance_uuid body string Идентификатор виртуальной машины.
Пример запроса:
curl -X GET  -H "X-Auth-Token: $token" http://controller:9362/v1/flavors/$instance_uuid
Ответ
Параметры ответа:
Name In Type Description
flavors body list Список объектов :term:` флэйвор виртуальной машины <Flavor/Флэйвор>` доступных для виртуальной машины.

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

{
    "flavors": [
    {
      "OS-FLV-DISABLED:disabled": false,
      "OS-FLV-EXT-DATA:ephemeral": 0,
      "description": null,
      "disk": 0,
      "extra_specs": {},
      "id": "008c4bb5-ae4a-46e0-bbe4-2159a97a924b",
      "links": [
      {
      "href": "http://dev-ast17t-ovs-01.stand.loc:8774/v2.1/bc5ba9df1d7c4faea6092cf59a5272a5/flavors/008c4bb5-ae4a-46e0-bbe4-2159a97a924b",
      "rel": "self"
      },
      {
      "href": "http://dev-ast17t-ovs-01.stand.loc:8774/bc5ba9df1d7c4faea6092cf59a5272a5/flavors/008c4bb5-ae4a-46e0-bbe4-2159a97a924b",
      "rel": "bookmark"
      }
      ],
      "name": "c1_r128_d0",
      "os-flavor-access:is_public": true,
      "ram": 128,
      "rxtx_factor": 1,
      "swap": 0,
      "vcpus": 1
      }
    ]
}
POST
/v1/flavors/{instance_id}
Изменнение флэйвора инстанса.

Изменнение флейвора инстанса.

Запрос
Параметры запроса:
Name In Type Description
instance_uuid body string Идентификатор виртуальной машины.
flavor_id body list ID :term:` флэйвор виртуальной машины <Flavor/Флэйвор>`
Пример запроса:
curl -X POST  -H "X-Auth-Token: $token"  -H "Content-Type: application/json" -d '{"flavor_id": "id"}' http://controller:9362/v1/flavors/$instance_uuid
Ответ
Параметры ответа:
Name In Type Description
status body string Статус операции

Пример получения информации об успешности измененния флейвора :

{

'status': 'UPDATED'

}

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