REST API
Примечание
Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.
CloudManager API
Позволяет управлять узлами, предоставляет дополнительную информацию, используемую в модуле CloudManager.
Информация о модуле
Подробная информация о модуле.
Запрос
Пример запроса:
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"
}
}
Виртуальные машины и вычислительные узлы
Действия над виртуальными машинами и вычислительными узлами.
Эвакуация всех виртуальных машин с вычислительного узла.
Запрос
Параметры запроса:
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"
}
Выключение вычислительного узла с попыткой переноса запущенных виртуальных машин.
Запрос
Параметры запроса:
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"
}
Вывод вычислительного узла из эксплуатации с попыткой переноса запущенных виртуальных машин.
Запрос
Параметры запроса:
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"
}
Выполнение перезапуска вычислительных узлов с предварительной миграцией виртуальных машин.
Запрос
Параметры запроса:
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"
}
Балансировка виртуальной машины на другой узел.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Выполнение попытки восстановления виртуальной машины с предварительным сбросом состояния.
Запрос
Параметры запроса:
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"
}
Выполнение попытки восстановления виртуальной машины.
Запрос
Параметры запроса:
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"
}
Выполнение попытки сброса состояния виртуальной машины с перезагрузкой.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Выполнение попытки пробуждения виртуальной машины.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Выполнение полного клонирования виртуальной машины с копированием подключенных дисков.
Запрос
Параметры запроса:
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"
}
Получение метаданных виртуальной машины.
Запрос
Параметры запроса:
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 |
Метаданные. Пример:
|
Пример результата в 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"
}
}
Обновление метаданных виртуальной машины.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Удаление метаданных виртуальной машины.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Классы узла
Действия с классами узлов.
Получение списка классов узла.
Запрос
Параметры запроса:
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"
}
]
}
]
}
Получение количества классов узла.
Запрос
Параметры запроса:
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
}
Создание нового класса узла.
Запрос
Параметры запроса:
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"
}
]
}
}
Получение информации о классе узла.
Запрос
Параметры запроса:
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"
}
]
}
}
Редактирование существующего класса узла.
Запрос
Параметры запроса:
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"
}
]
}
}
Удаление существующего класса узла.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
class_id |
path |
integer |
Идентификатор класса узла. |
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/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/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"
}
]
}
Создание нового типа для существующего класса узла.
Запрос
Параметры запроса:
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"
}
}
Изменение типа существующего класса узла.
Запрос
Параметры запроса:
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"
}
}
Удаление типа существующего класса узла.
Запрос
Параметры запроса:
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 образами узлов.
Получение списка 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"
}
]
}
Получение количества 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
}
Получение информации о 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"
}
}
Создание 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"
}
}
Удаление 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.
Получение списка средств управления питанием.
Запрос
Параметры запроса:
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
}
]
}
Получение количества средств управления питанием.
Запрос
Параметры запроса:
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
}
Создание средства управления питанием.
Запрос
Параметры запроса:
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
}
}
Запрос
Параметры запроса:
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
}
}
Удаление средства управления питанием.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Обновление параметров средства управления питанием.
Запрос
Параметры запроса:
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
}
}
Получение списка доступных типов средств управления питанием.
Запрос
Пример запроса:
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"
]
]
}
Получение списка поддерживаемых протоколов средств управления питанием.
Запрос
Пример запроса:
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"
]
}
Отключение выходного порта средства управления питанием.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Включение выходного порта средства управления питанием.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Получение списка узлов, привязанных к средству управления питанием.
Запрос
Параметры запроса:
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.
Получение списка узлов.
Запрос
Параметры запроса:
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 |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
is_controller (Optional) |
path |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
inventory_code (Optional) |
path |
integer |
Инвентарный номер. |
power_state (Optional) |
path |
string |
Состояние питания. Возможные значения
|
owner (Optional) |
path |
string |
Имя пользователя, создавшего узел. |
active (Optional) |
path |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition (Optional) |
path |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
offset (Optional) |
path |
integer |
Номер позиции для получения данных. |
limit (Optional) |
path |
integer |
Ограничение количества получаемых данных. |
with_os_object (Optional) |
path |
bool |
Параметр, позволяющий расширять узлы класса |
with_hwinfo (Optional) |
path |
bool |
Параметр, позволяющий расширять узлы класса |
Параметры, поддерживающие модификаторы: 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 |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition |
body |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
controller_id |
body |
string |
Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type |
body |
string |
Тип виртуального контроллера. |
cpu_amount |
body |
integer |
Количество процессоров. Может принимать значения от 0 до 99. |
cpu_allocation_ratio |
body |
float |
Допустимое превышение CPU. |
description |
body |
string |
Описание узла. |
dtc_number |
body |
integer |
Номер дата-центра. Может принимать значения от 1 до 99. |
hdd_gb |
body |
integer |
Объем жесткого диска (ГБ). |
hypervisor_id |
body |
string |
Идентификатор вычислительного узла в OpenStack. |
id |
body |
integer |
Идентификатор узла. |
image |
body |
object |
PXE образ узла. |
inventory_code |
body |
integer |
Инвентарный номер. |
ip_addresses (Optional) |
body |
list |
Список IP-адресов узла. Пример: |
is_controller |
body |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
is_reserved |
body |
bool |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
mac_address |
body |
string |
MAC-адреса узла. |
name |
body |
string |
Имя узла. |
node_class (Optional) |
body |
object |
Класс узла. |
node_type (Optional) |
body |
object |
Тип класса узла. |
node_controls |
body |
list |
Список средств управления питанием узла. |
owner |
body |
string |
Имя пользователя, создавшего узел. |
power_state |
body |
string |
Состояние питания. Возможные значения
|
rack_number |
body |
integer |
Номер стойки. Может принимать значения от 1 до 99. |
ram_mb |
body |
integer |
Объём оперативной памяти (МБ). |
ram_allocation_ratio |
body |
float |
Допустимое превышение RAM. |
row_number |
body |
integer |
Номер ряда стоек. Может принимать значения от 1 до 99. |
title |
body |
string |
Наименование узла. |
unit_number |
body |
integer |
Место в стойке. Может принимать значения от 1 до 99. |
os_hypervisor (Optional) |
body |
object |
Вычислительный узел OpenStack. |
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
}
]
}
Получение количества узлов.
Запрос
Параметры запроса:
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 |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
is_controller (Optional) |
path |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
inventory_code (Optional) |
path |
integer |
Инвентарный номер. |
power_state (Optional) |
path |
string |
Состояние питания. Возможные значения
|
owner (Optional) |
path |
string |
Имя пользователя, создавшего узел. |
active (Optional) |
path |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition (Optional) |
path |
integer |
Состояние узла. Возможные значения:
По умолчанию: 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
}
Получение информации об узле.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
node_id |
path |
integer |
Идентификатор узла. |
with_os_object (Optional) |
path |
bool |
Параметр, позволяющий расширять узлы класса |
with_hwinfo (Optional) |
path |
bool |
Параметр, позволяющий расширять узлы класса |
Пример запроса:
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 |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition |
body |
integer |
Состояние узла. Возможные значения:
По умолчанию: 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-адресов узла. Пример: |
is_controller |
body |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
is_reserved |
body |
bool |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
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 |
Состояние питания. Возможные значения
|
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
}
}
Создание узла.
Запрос
Параметры запроса:
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-адресов узла. Пример: |
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 |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
is_controller (Optional) |
body |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
inventory_code (Optional) |
body |
integer |
Инвентарный номер. |
power_state (Optional) |
body |
string |
Состояние питания. Возможные значения
|
owner (Optional) |
body |
string |
Имя пользователя, создавшего узел. |
active (Optional) |
body |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition (Optional) |
body |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
metadata (Optional) |
body |
string |
Метаданные. Пример:
|
Пример запроса:
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 |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
is_controller |
body |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
inventory_code |
body |
integer |
Инвентарный номер. |
power_state |
body |
string |
Состояние питания. Возможные значения
|
owner |
body |
string |
Имя пользователя, создавшего узел. |
active |
body |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition |
body |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
metadata (Optional) |
body |
string |
Метаданные. Пример:
|
Пример результата в 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
}
}
Обновление параметров гипервизора.
Запрос
Параметры запроса:
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 |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
is_controller (Optional) |
body |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
inventory_code (Optional) |
body |
integer |
Инвентарный номер. |
power_state (Optional) |
body |
string |
Состояние питания. Возможные значения
|
owner (Optional) |
body |
string |
Имя пользователя, создавшего узел. |
active (Optional) |
body |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition (Optional) |
body |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
metadata (Optional) |
body |
string |
Метаданные. Пример:
|
Пример запроса:
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 |
Флаг, который указывает, зарезервирован ли узел. По умолчанию: |
is_controller |
body |
bool |
Флаг, который указывает, является ли узел контроллером.
По умолчанию: |
inventory_code |
body |
integer |
Инвентарный номер. |
power_state |
body |
string |
Состояние питания. Возможные значения
|
owner |
body |
string |
Имя пользователя, создавшего узел. |
active |
body |
bool |
Флаг, который указывает, является ли узел активным. По умолчанию: |
condition |
body |
integer |
Состояние узла. Возможные значения:
По умолчанию: 0. |
metadata (Optional) |
body |
string |
Метаданные. Пример:
|
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
}
}
Удаление узла.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
node_id |
path |
integer |
Идентификатор узла. |
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/$node_id
Эта операция не имеет содержания ответа.
Назначение 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
Эта операция не имеет содержания ответа.
Отключение питания узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Включение питания узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Перезапуск узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Перевод узла в резерв.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
node_id |
path |
integer |
Идентификатор узла. |
is_reserved |
body |
bool |
Флаг, отвечающий за перевод узла в резерв. |
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"is_reserved": true}' http://controller:9362/v1/nodes/$node_id/actions/reserve
Эта операция не имеет содержания ответа.
Включение SNMP для узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Выключение 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
Эта операция не имеет содержания ответа.
Включение 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
Эта операция не имеет содержания ответа.
Выключение 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
Эта операция не имеет содержания ответа.
Включение режима 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
Эта операция не имеет содержания ответа.
Выключение режима 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
Эта операция не имеет содержания ответа.
Примечание
При создании узла по умолчанию режим включен.
Включение режима динамического конфигурирования компонентов для узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Примечание
При создании узла по умолчанию режим включен.
Выключение динамического конфигурирования компонентов для узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Настройка типа процессора виртуальных машин вычислительного узла.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
node_id |
path |
integer |
Идентификатор узла. |
cpu_emulation_mode |
body |
string |
Режим эмуляции процессора. Принимает значения:
|
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
Эта операция не имеет содержания ответа.
Настройка перенаправления логов вычислительного узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Отключение перенаправления логов вычислительного узла.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Запуск обновления системы на вычислительном узле.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Получение списка действий над узлом.
Запрос
Параметры запроса:
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"
}
]
}
Получение информации о действии над узлом.
Запрос
Параметры запроса:
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"
}
}
Получение списка назначенных на узел средств управления питанием.
Запрос
Параметры запроса:
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"
}
]
}
Назначение на узел средства управления питанием.
Запрос
Параметры запроса:
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"
}
}
Получение информации о назначенном на узел средстве управления питанием.
Запрос
Параметры запроса:
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"
}
}
Обновление параметров назначенного на узел средства управления питанием.
Запрос
Параметры запроса:
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"
}
}
Снятие назначения средства управления питанием на узел.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Привязка узлов к виртуальному контроллеру.
Запрос
Параметры запроса:
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"
}
Отвязка узлов от виртуального контроллера.
Запрос
Параметры запроса:
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"
}
Перезапуск узлов.
Запрос
Параметры запроса:
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
]
}
Назначение узла хранилищам проверки доступности. Ранее созданные назначения не удаляются.
Запрос
Параметры запроса:
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/
Эта операция не имеет содержания ответа.
Переназначение узла хранилищам проверки доступности. Ранее созданные назначения не удаляются.
Запрос
Параметры запроса:
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/
Эта операция не имеет содержания ответа.
Удаление назначения хранилища проверки доступности узлам.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Опрос СХД для получения доступных дисков.
Запрос
Параметры запроса:
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"
]
}
}
Подключение диска СХД к узлу.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Запуск восстановления блокировок дисков на узле.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Запуск балансировки нагрузки на узлах.
Запрос
Параметры запроса:
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
Позволяет запускать аудит возможности балансировки виртуальных машин на узлах в рамках агрегаторов узлов.
Запуск аудита возможности балансировки.
Запрос
Параметры запроса:
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"
}
}
Применение результата аудита.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Получение статуса аудита.
Запрос
Параметры запроса:
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.
Получение списка хранилищ.
Запрос
Параметры запроса:
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"
}
],
}
]
Получение информации о логическом томе.
Запрос
Параметры запроса:
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
}
}
Получение информации о логических томах.
Запрос
Пример запроса:
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"
}
]
}
}
}
]
}
Конвертация тома в зеркалированный том.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Миграция диска между физическими томами.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Хранилища проверки доступности
Действия с хранилищами проверки доступности.
Получение списка хранилищ проверки доступности.
Запрос
Параметры запроса:
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": []
}
]
}
Получение количества хранилищ проверки доступности.
Запрос
Параметры запроса:
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
}
Создание нового хранилища проверки доступности.
Запрос
Параметры запроса:
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": []
}
}
Получение информации о хранилище проверки доступности.
Запрос
Параметры запроса:
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": []
}
}
Редактирование существующего хранилища проверки доступности.
Запрос
Параметры запроса:
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": []
}
}
Удаление существующего хранилища проверки доступности.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Назначение хранилища проверки доступности узлам. Ранее созданные назначения не удаляются.
Запрос
Параметры запроса:
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/
Эта операция не имеет содержания ответа.
Переназначение хранилища проверки доступности узлам. Ранее созданные назначения удаляются.
Запрос
Параметры запроса:
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/
Эта операция не имеет содержания ответа.
Удаление назначения хранилища проверки доступности узлам.
Запрос
Параметры запроса:
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.
Получение списка 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"
]
}
Получение информации о задачи в 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"
}
Домены
Действия с доменами.
Получение способа хранения домена.
Запрос
Пример запроса:
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"
}
Загрузка конфигурации домена в базу данных.
Запрос
Параметры запроса:
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
Эта операция не имеет содержания ответа.
Получение информации из конфигурации о возможности отправки одноразовых паролей.
Запрос
Пример запроса:
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"
}
Флейворы
Действия с флейорами.
Получение доступных флейворов для иснтанса.
Запрос
Параметры запроса:
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
}
]
}
Изменнение флейвора инстанса.
Запрос
Параметры запроса:
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'
}
Подробное описание кодов ответа на запросы доступно во вкладке с дополнительной информацией.