REST API¶
Примечание
Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.
NodeControl API¶
Позволяет управлять узлами, предоставляет дополнительную информацию, используемую в модуле TIONIX.NodeControl.
Информация о модуле¶
Подробная информация о модуле.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/info | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
license (Optional) | body | object | Информация о лицензии модуля. |
version | body | string | Версия модуля. |
Пример получения информации о модуле в JSON формате:
{
"info": {
"license": {
"created_at": 1538141220,
"expire_at": 1545955200,
"module_package": "tionix_node_control",
"name": "TestLicense",
"product": "TIONIX.NodeControl",
"surrogate_name": "TIONIX.NodeControl",
"unique_id": "04-002-4b21d15097656c2c0834",
"verified": true
},
"version": "2.0"
}
}
Виртуальные машины и вычислительные узлы¶
Действия над виртуальными машинами и вычислительными узлами.
Эвакуация всех виртуальных машин с вычислительного узла.
Запрос¶
Параметры запроса:¶
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 образе.
Запрос¶
Пример запроса:¶
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"
}
}
Средства управления питанием¶
Позволяет управлять средствами управления питанием, предоставляет дополнительную информацию, используемую в модуле TIONIX.NodeControl.
Получение списка средств управления питанием.
Запрос¶
Параметры запроса:¶
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"
}
]
},
"node_controls": [
{
"is_default": true,
"is_initialized": true,
"power_control_id": 1,
"control_type": "SupermicroRackDevice",
"power_control_title": "test",
"power_control_port": "1",
"protocol_type": "ipmi"
}
],
"node_type": {
"id": 2,
"name": "QEMU"
},
"owner": null,
"power_state": "power_on",
"rack_number": null,
"ram_mb": null,
"row_number": null,
"title": "\u0442\u0435\u0441\u04422",
"unit_number": null
}
]
}
Узлы¶
Позволяет управлять узлами на физическом уровне, предоставляет дополнительную информацию, используемую в модуле TIONIX.NodeControl.
Получение списка узлов.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | path | integer | Идентификатор узла. |
image_id (Optional) | path | integer | Идентификатор образа узла. |
node_class_id (Optional) | path | integer | Идентификатор класса узла. |
node_type_id (Optional) | path | integer | Идентификатор типа класса узла. |
hypervisor_id (Optional) | path | string | Идентификатор вычислительного узла в OpenStack. |
name (Optional) | path | string | Имя узла. |
controller_id (Optional) | path | string | Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type (Optional) | path | string | Тип виртуального контроллера. |
description (Optional) | path | string | Описание узла. |
dtc_number (Optional) | path | integer | Номер дата-центра. Может принимать значения от 1 до 99. |
unit_number (Optional) | path | integer | Место в стойке. Может принимать значения от 1 до 99. |
rack_number (Optional) | path | integer | Номер стойки. Может принимать значения от 1 до 99. |
row_number (Optional) | path | integer | Номер ряда стоек. Может принимать значения от 1 до 99. |
cpu_amount (Optional) | path | integer | Количество процессоров. Может принимать значения от 0 до 99. |
ram_mb (Optional) | path | integer | Объём оперативной памяти (МБ). |
hdd_gb (Optional) | path | integer | Объем жесткого диска (ГБ). |
mac_address (Optional) | path | string | MAC-адреса узла. |
title (Optional) | path | string | Наименование узла. |
is_reserved (Optional) | path | bool | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
is_controller (Optional) | path | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
inventory_code (Optional) | path | integer | Инвентарный номер. |
power_state (Optional) | path | string | Состояние питания. Возможные значения
|
owner (Optional) | path | string | Имя пользователя, создавшего узел. |
active (Optional) | path | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
condition (Optional) | path | integer | Состояние узла. Возможные значения:
По умолчанию: 0. |
offset (Optional) | path | integer | Номер позиции для получения данных. |
limit (Optional) | path | integer | Ограничение количества получаемых данных. |
with_os_object (Optional) | path | bool | Параметр, позволяющий расширять узлы класса hypervisor объектом os_hypervisor , содержащим атрибуты вычислительного узла OpenStack. |
with_hwinfo (Optional) | path | bool | Параметр, позволяющий расширять узлы класса hypervisor объектом hwinfo , содержащим сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack. |
Параметры, поддерживающие модификаторы: id
, image_id
, node_class_id
, node_type_id
, hypervisor_id
, name
, controller_id
, controller_type
, description
, dtc_number
, unit_number
, rack_number
, row_number
, cpu_amount
, ram_mb
, hdd_gb
, mac_address
, title
, is_reserved
, is_controller
, inventory_code
, power_state
, owner
, active
, condition
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/nodes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
active | body | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
condition | body | integer | Состояние узла. Возможные значения:
По умолчанию: 0. |
controller_id | body | string | Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type | body | string | Тип виртуального контроллера. |
cpu_amount | body | integer | Количество процессоров. Может принимать значения от 0 до 99. |
description | body | string | Описание узла. |
dtc_number | body | integer | Номер дата-центра. Может принимать значения от 1 до 99. |
hdd_gb | body | integer | Объем жесткого диска (ГБ). |
hypervisor_id | body | string | Идентификатор вычислительного узла в OpenStack. |
id | body | integer | Идентификатор узла. |
image | body | object | PXE образ узла. |
inventory_code | body | integer | Инвентарный номер. |
ip_addresses (Optional) | body | list | Список IP-адресов узла. Пример: {"ip_addresses": ["127.0.0.1", "192.168.0.15"]} . |
is_controller | body | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
is_reserved | body | bool | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
mac_address | body | string | MAC-адреса узла. |
name | body | string | Имя узла. |
node_class (Optional) | body | object | Класс узла. |
node_type (Optional) | body | object | Тип класса узла. |
node_controls | body | list | Список средств управления питанием узла. |
owner | body | string | Имя пользователя, создавшего узел. |
power_state | body | string | Состояние питания. Возможные значения
|
rack_number | body | integer | Номер стойки. Может принимать значения от 1 до 99. |
ram_mb | body | integer | Объём оперативной памяти (МБ). |
row_number | body | integer | Номер ряда стоек. Может принимать значения от 1 до 99. |
title | body | string | Наименование узла. |
unit_number | body | integer | Место в стойке. Может принимать значения от 1 до 99. |
os_hypervisor (Optional) | body | object | Вычислительный узел OpenStack. |
hwinfo (Optional) | body | object | Сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack. |
availability_storages (Optional) | body | array | Список хранилищ проверки доступности. |
Пример результата в JSON формате:
{
"nodes": [
{
"active": true,
"condition": 0,
"controller_id": null,
"controller_type": null,
"cpu_amount": null,
"description": null,
"dtc_number": 1,
"hdd_gb": null,
"hypervisor_id": "2239c611-523c-44d2-9feb-2c6905fbb5c8",
"id": 1,
"image": {
"id": 1,
"name": "default"
},
"inventory_code": null,
"ip_addresses": ["10.35.222.11"],
"is_controller": false,
"is_reserved": false,
"mac_address": null,
"name": "mnode1.dev-cnt7q-ovs-02.stand.loc",
"node_class": {
"id": 1,
"is_default": true,
"name": "hypervisor"
},
"node_controls": [
{
"is_default": true,
"is_initialized": true,
"power_control_id": 1,
"control_type": "SupermicroRackDevice",
"power_control_title": "test",
"power_control_port": "1",
"protocol_type": "ipmi"
}
],
"node_type": {
"id": 2,
"name": "QEMU"
},
"owner": null,
"power_state": "power_on",
"rack_number": null,
"ram_mb": null,
"row_number": null,
"title": "\u0442\u0435\u0441\u04422",
"unit_number": null
},
{
"active": true,
"condition": 0,
"controller_id": null,
"controller_type": null,
"cpu_amount": null,
"description": null,
"dtc_number": null,
"hdd_gb": null,
"hypervisor_id": "1b9d6e64-53b2-4097-a302-96d7b4a4e055",
"id": 2,
"image": {
"id": 1,
"name": "default"
},
"inventory_code": null,
"ip_addresses": ["10.35.222.12"],
"is_controller": false,
"is_reserved": false,
"mac_address": null,
"name": "mnode2.dev-cnt7q-ovs-02.stand.loc",
"node_class": {
"id": 1,
"is_default": true,
"name": "hypervisor"
},
"node_controls": [
{
"is_default": true,
"is_initialized": true,
"power_control_id": 2,
"control_type": "SupermicroRackDevice",
"power_control_title": "test 2",
"power_control_port": "1",
"protocol_type": "ipmi"
}
],
"node_type": {
"id": 2,
"name": "QEMU"
},
"owner": null,
"power_state": "power_on",
"rack_number": null,
"ram_mb": null,
"row_number": null,
"title": null,
"unit_number": null
}
]
}
Получение количества узлов.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | path | integer | Идентификатор узла. |
image_id (Optional) | path | integer | Идентификатор образа узла. |
node_class_id (Optional) | path | integer | Идентификатор класса узла. |
node_type_id (Optional) | path | integer | Идентификатор типа класса узла. |
hypervisor_id (Optional) | path | string | Идентификатор вычислительного узла в OpenStack. |
name (Optional) | path | string | Имя узла. |
controller_id (Optional) | path | string | Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type (Optional) | path | string | Тип виртуального контроллера. |
description (Optional) | path | string | Описание узла. |
dtc_number (Optional) | path | integer | Номер дата-центра. Может принимать значения от 1 до 99. |
unit_number (Optional) | path | integer | Место в стойке. Может принимать значения от 1 до 99. |
rack_number (Optional) | path | integer | Номер стойки. Может принимать значения от 1 до 99. |
row_number (Optional) | path | integer | Номер ряда стоек. Может принимать значения от 1 до 99. |
cpu_amount (Optional) | path | integer | Количество процессоров. Может принимать значения от 0 до 99. |
ram_mb (Optional) | path | integer | Объём оперативной памяти (МБ). |
hdd_gb (Optional) | path | integer | Объем жесткого диска (ГБ). |
mac_address (Optional) | path | string | MAC-адреса узла. |
title (Optional) | path | string | Наименование узла. |
is_reserved (Optional) | path | bool | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
is_controller (Optional) | path | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
inventory_code (Optional) | path | integer | Инвентарный номер. |
power_state (Optional) | path | string | Состояние питания. Возможные значения
|
owner (Optional) | path | string | Имя пользователя, создавшего узел. |
active (Optional) | path | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
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 | Параметр, позволяющий расширять узлы класса hypervisor объектом os_hypervisor , содержащим атрибуты вычислительного узла OpenStack. |
with_hwinfo (Optional) | path | bool | Параметр, позволяющий расширять узлы класса hypervisor объектом hwinfo , содержащим сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" "http://controller:9362/v1/nodes/$node_id?with_os_object=true" | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
active | body | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
condition | body | integer | Состояние узла. Возможные значения:
По умолчанию: 0. |
controller_id | body | string | Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type | body | string | Тип виртуального контроллера. |
cpu_amount | body | integer | Количество процессоров. Может принимать значения от 0 до 99. |
description | body | string | Описание узла. |
dtc_number | body | integer | Номер дата-центра. Может принимать значения от 1 до 99. |
hdd_gb | body | integer | Объем жесткого диска (ГБ). |
hypervisor_id | body | string | Идентификатор вычислительного узла в OpenStack. |
id | body | integer | Идентификатор узла. |
image | body | object | PXE образ узла. |
inventory_code | body | integer | Инвентарный номер. |
ip_addresses (Optional) | body | list | Список IP-адресов узла. Пример: {"ip_addresses": ["127.0.0.1", "192.168.0.15"]} . |
is_controller | body | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
is_reserved | body | bool | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
mac_address | body | string | MAC-адреса узла. |
name | body | string | Имя узла. |
node_class (Optional) | body | object | Класс узла. |
node_controls | body | list | Список средств управления питанием узла. |
node_type (Optional) | body | object | Тип класса узла. |
owner | body | string | Имя пользователя, создавшего узел. |
power_state | body | string | Состояние питания. Возможные значения
|
rack_number | body | integer | Номер стойки. Может принимать значения от 1 до 99. |
ram_mb | body | integer | Объём оперативной памяти (МБ). |
row_number | body | integer | Номер ряда стоек. Может принимать значения от 1 до 99. |
title | body | string | Наименование узла. |
unit_number | body | integer | Место в стойке. Может принимать значения от 1 до 99. |
os_hypervisor (Optional) | body | object | Вычислительный узел OpenStack. |
hwinfo (Optional) | body | object | Сведения об аппаратном обеспечении и топологии вычислительного узла OpenStack. |
availability_storages (Optional) | body | array | Список хранилищ проверки доступности. |
Пример результата в JSON формате:
{
"node": {
"active": true,
"condition": 0,
"controller_id": null,
"controller_type": null,
"cpu_amount": null,
"description": "",
"dtc_number": null,
"hdd_gb": null,
"hypervisor_id": "f5501bd3-d69a-41fc-bcc1-91f512f2313a",
"id": 1,
"image": {
"id": 1,
"name": "default"
},
"inventory_code": "UU",
"ip_addresses": [
"10.35.222.12"
],
"is_controller": false,
"is_reserved": true,
"mac_address": null,
"name": "mnode2.dev-cnt7q-ovs-02.stand.loc",
"node_class": {
"id": 1,
"is_default": true,
"name": "hypervisor"
},
"node_controls": [
{
"control_type": "SupermicroRackDevice",
"is_default": false,
"is_initialized": true,
"power_control_id": 1,
"power_control_port": "1",
"power_control_title": "namety",
"protocol_type": "ipmi"
},
{
"control_type": "SupermicroRackDevice",
"is_default": true,
"is_initialized": true,
"power_control_id": 3,
"power_control_port": "1",
"power_control_title": "name2",
"protocol_type": "ipmi"
}
],
"node_type": {
"id": 2,
"name": "QEMU"
},
"os_hypervisor": {
"cpu_info": {
"arch": "x86_64",
"features": [
"pge",
"avx",
"xsaveopt",
"clflush",
"sep",
"rtm",
"tsc_adjust",
"tsc-deadline",
"invpcid",
"tsc",
"fsgsbase",
"xsave",
"smap",
"vmx",
"erms",
"hle",
"cmov",
"smep",
"fpu",
"pat",
"arat",
"lm",
"msr",
"adx",
"3dnowprefetch",
"nx",
"fxsr",
"syscall",
"sse4.1",
"pae",
"sse4.2",
"pclmuldq",
"pcid",
"fma",
"vme",
"mmx",
"osxsave",
"cx8",
"mce",
"de",
"aes",
"mca",
"pse",
"lahf_lm",
"abm",
"rdseed",
"popcnt",
"pdpe1gb",
"apic",
"sse",
"f16c",
"pni",
"rdtscp",
"avx2",
"sse2",
"ss",
"hypervisor",
"bmi1",
"bmi2",
"ssse3",
"cx16",
"pse36",
"mtrr",
"movbe",
"rdrand",
"x2apic"
],
"model": "Broadwell",
"topology": {
"cells": 1,
"cores": 1,
"sockets": 2,
"threads": 1
},
"vendor": "Intel"
},
"current_workload": 0,
"disk_available_least": 80,
"free_disk_gb": 99,
"free_ram_mb": 3583,
"host_ip": "10.35.222.12",
"hypervisor_hostname": "mnode2.dev-cnt7q-ovs-02.stand.loc",
"hypervisor_type": "QEMU",
"hypervisor_version": 2012000,
"id": "f5501bd3-d69a-41fc-bcc1-91f512f2313a",
"local_gb": 99,
"local_gb_used": 0,
"memory_mb": 4095,
"memory_mb_used": 512,
"running_vms": 0,
"service": {
"disabled_reason": null,
"host": "mnode2.dev-cnt7q-ovs-02.stand.loc",
"id": "bd8c4cd2-909e-4be8-b324-6bf8a7c528bb"
},
"state": "up",
"status": "enabled",
"vcpus": 2,
"vcpus_used": 0
},
"owner": null,
"power_state": "power_off",
"rack_number": null,
"ram_mb": null,
"row_number": null,
"title": null,
"unit_number": null
}
}
Создание узла.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
created_at (Optional) | body | string | Дата и время создания объекта. |
image_id (Optional) | body | integer | Идентификатор образа узла. |
node_class_id (Optional) | body | integer | Идентификатор класса узла. |
node_type_id (Optional) | body | integer | Идентификатор типа класса узла. |
ip_addresses (Optional) | body | list | Список IP-адресов узла. Пример: {"ip_addresses": ["127.0.0.1", "192.168.0.15"]} . |
hypervisor_id (Optional) | body | string | Идентификатор вычислительного узла в OpenStack. |
name (Optional) | body | string | Имя узла. |
controller_id (Optional) | body | string | Идентификатор виртуального контроллера, к которому привязан узел. |
controller_type (Optional) | body | string | Тип виртуального контроллера. |
description (Optional) | body | string | Описание узла. |
dtc_number (Optional) | body | integer | Номер дата-центра. Может принимать значения от 1 до 99. |
unit_number (Optional) | body | integer | Место в стойке. Может принимать значения от 1 до 99. |
rack_number (Optional) | body | integer | Номер стойки. Может принимать значения от 1 до 99. |
row_number (Optional) | body | integer | Номер ряда стоек. Может принимать значения от 1 до 99. |
cpu_amount (Optional) | body | integer | Количество процессоров. Может принимать значения от 0 до 99. |
ram_mb (Optional) | body | integer | Объём оперативной памяти (МБ). |
hdd_gb (Optional) | body | integer | Объем жесткого диска (ГБ). |
mac_address (Optional) | body | string | MAC-адреса узла. |
title (Optional) | body | string | Наименование узла. |
is_reserved (Optional) | body | bool | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
is_controller (Optional) | body | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
inventory_code (Optional) | body | integer | Инвентарный номер. |
power_state (Optional) | body | string | Состояние питания. Возможные значения
|
owner (Optional) | body | string | Имя пользователя, создавшего узел. |
active (Optional) | body | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
condition (Optional) | body | integer | Состояние узла. Возможные значения:
По умолчанию: 0. |
metadata (Optional) | body | string | Метаданные. Пример:
|
repair_script (Optional) | body | string | Скрипт восстановления. |
availability_script (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 | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
is_controller | body | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
inventory_code | body | integer | Инвентарный номер. |
power_state | body | string | Состояние питания. Возможные значения
|
owner | body | string | Имя пользователя, создавшего узел. |
active | body | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
condition | body | integer | Состояние узла. Возможные значения:
По умолчанию: 0. |
metadata (Optional) | body | string | Метаданные. Пример:
|
repair_script (Optional) | body | string | Скрипт восстановления. |
availability_script (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 | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
is_controller (Optional) | body | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
inventory_code (Optional) | body | integer | Инвентарный номер. |
power_state (Optional) | body | string | Состояние питания. Возможные значения
|
owner (Optional) | body | string | Имя пользователя, создавшего узел. |
active (Optional) | body | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
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 | Флаг, который указывает, зарезервирован ли узел. По умолчанию: False . |
is_controller | body | bool | Флаг, который указывает, является ли узел контроллером.
По умолчанию: False . |
inventory_code | body | integer | Инвентарный номер. |
power_state | body | string | Состояние питания. Возможные значения
|
owner | body | string | Имя пользователя, создавшего узел. |
active | body | bool | Флаг, который указывает, является ли узел активным. По умолчанию: True . |
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 | Флаг, отвечающий за перевод узла в резерв. true для перевода узла в резерв, false для вывода из резерва. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"is_reserved": true}' http://controller:9362/v1/nodes/$node_id/actions/reserve
Эта операция не имеет содержания ответа.
Примечание
Функционал включения и выключения SNMP доступен только при установленном и настроенном модуле TIONIX.Agent на вычислительных узлах.
Включение 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 доступен только при установленном и настроенном модуле TIONIX.Agent на вычислительных узлах.
Включение SSH для узла.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
node_id | path | integer | Идентификатор узла. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/enable-ssh
Эта операция не имеет содержания ответа.
Выключение 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
Эта операция не имеет содержания ответа.
Включение режима TNXSafe для узла.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
node_id | path | integer | Идентификатор узла. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/enable-tnxsafe
Эта операция не имеет содержания ответа.
Выключение режима TNXSafe для узла.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
node_id | path | integer | Идентификатор узла. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/nodes/$node_id/actions/disable-tnxsafe
Эта операция не имеет содержания ответа.
Примечание
Функционал включения и выключения динамического конфигурирования компонентов (DCC) доступен только при установленном и настроенном модуле TIONIX.Agent на вычислительных узлах.
Примечание
При создании узла по умолчанию режим включен.
Включение режима динамического конфигурирования компонентов для узла.
Запрос¶
Параметры запроса:¶
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
Эта операция не имеет содержания ответа.
Особенности запроса¶
Нюансы, которые необходимо учесть при работе с запросом attach_hosts
:
Версия пакета
paramiko
на контроллере должна быть ⩾ 1.6.0.На виртуальном контроллере должна быть возможность переключения на пользователя
tionix
. Это обусловлено тем, что само подключение через ssh осуществляется пользователем запустившим tnx-node-control-api, обычно это tionix.Проверить это возможно, переключившись на него в bash:
su - nova
Пользователь
tionix
должен иметь доступ до файла с сертификатом, который указан в конфигурационном файле модуля TIONIX.NodeControl.Проверить это возможно просмотрев файл ключа:
cat $PATH_FROM_NC
Необходимо проверить возможность подключения пользователя
tionix
к виртуальному контроллеру пользователем, указанным в конфигурационном файле модуля TIONIX.NodeControl, обычноtionix
:ssh -i $PATH_FROM_NC tionix@$CONTROLLER_IP
На виртуальном контроллере необходимо проверить возможность чтения файла с паролем, указанным в TIONIX.NodeControl (пользователя, от лица которого подключались на предыдущем шаге):
cat $PATH_FROM_NC_PASSWD
Отвязка узлов от виртуального контроллера.
Запрос¶
Параметры запроса:¶
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 |
---|---|---|---|
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
Эта операция не имеет содержания ответа.
SDN¶
Позволяет управлять программно-определяемыми сетями.
Получение списка изолированных сетей.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-networks/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
router | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"networks": [
{
"router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"uuid": "5892ab79-6008-4d28-ae8a-0ff2552d3ee1"
},
{
"router": "f0f68361-286d-4362-854d-b6152f3285b3",
"uuid": "a8817d5e-f29c-43f3-b35b-cd6b75c968da"
}
]
}
Получение детальной информации об изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
network_id | path | string | Идентификатор изолированной сети. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-networks/$network_id | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
router | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"network": {
"router": "f0f68361286d4362854db6152f3285b3",
"uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
}
}
Создание изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
router_id | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"network": {"router_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2"}}' http://controller:9362/v1/sdn-networks/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
router | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"network": {
"router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
}
}
Удаление существующей изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
network_id | path | string | Идентификатор изолированной сети. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sdn-networks/$network_id
Эта операция не имеет содержания ответа.
Получение списка всех подключенных вычислительных узлов.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-nodes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"nodes": [
{
"address": "10.35.12.18",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
},
{
"address": "10.35.12.19",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
}
]
}
Получение детальной информации о вычислительном узле в сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
node_address | path | string | IP-адрес узла. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-nodes/$node_address | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
network | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"node": {
"address": "10.35.12.19",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
}
}
Подключение узла к изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
network_id | body | string | Идентификатор изолированной сети. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node": {"network_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2", "address": "10.35.12.19"}}' http://controller:9362/v1/sdn-nodes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
network | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"node": {
"address": "10.35.12.19",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
}
}
Отключение вычислительного узла от изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
node_address | path | string | IP-адрес узла. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-nodes/$node_address
Эта операция не имеет содержания ответа.
Получение списка всех маршрутов.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sdn-routes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор маршрута изолированной сети. |
network | body | string | Идентификатор изолированной сети. |
route | body | string | IP-адрес сети. |
Пример результата в JSON формате:
{
"routes": [
{
"id": 1,
"network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"route": "10.0.0.1/32"
},
{
"id": 2,
"network": "ef8d24d6-6a78-488f-ad7f-662418b661ef",
"route": "10.0.0.2/32"
}
]
}
Создание маршрута в сеть провайдера из изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
network_id | body | string | Идентификатор изолированной сети. |
route | body | string | IP-адрес сети. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"route": {"route": "10.0.0.1/32", "network_id": "ef8d24d6-6a78-488f-ad7f-662418b661ef"}}' http://controller:9362/v1/sdn-routes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор маршрута изолированной сети. |
network | body | string | Идентификатор изолированной сети. |
route | body | string | IP-адрес сети. |
Пример результата в JSON формате:
{
"route": {
"id": 1,
"network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"route": "10.0.0.1/32"
}
}
Удаление существующего маршрута.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
route_id | path | string | Идентификатор маршрута изолированной сети. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sdn-routes/$route_id
Эта операция не имеет содержания ответа.
SDS¶
Позволяет управлять хранилищами и блоками хранилищ Ceph.
Получение списка хранилищ.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | path | string | Идентификатор хранилища. |
storage_name (Optional) | path | string | Имя хранилища. |
description (Optional) | path | string | Описание хранилища. |
storage_host (Optional) | path | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port (Optional) | path | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name (Optional) | path | string | Имя сегмента (группы дисков) хоста хранилища. |
disk_size (Optional) | path | string | Размер одного диска на хосте хранилища в ГБ. |
cluster_name (Optional) | path | string | Имя кластера. |
public_network (Optional) | path | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id (Optional) | path | string | Идентификатор кластера Ceph. |
offset (Optional) | path | integer | Номер позиции для получения данных. |
limit (Optional) | path | integer | Ограничение количества получаемых данных. |
Параметры, поддерживающие модификаторы: storage_name
, description
, storage_host
, storage_host_port
, bucket_name
, disk_size
, cluster_name
, public_network
, ceph_cluster_id
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-storages/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор хранилища. |
storage_name | body | string | Имя хранилища. |
description | body | string | Описание хранилища. |
storage_host | body | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port | body | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name | body | string | Имя сегмента (группы дисков) хоста хранилища. |
disk_size | body | string | Размер одного диска на хосте хранилища в ГБ. |
cluster_name | body | string | Имя кластера. |
public_network | body | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id | body | string | Идентификатор кластера Ceph. |
monitor_hosts | body | list | Перечень хостов мониторов Ceph. |
Пример ответа в JSON формате:
{
"storages": [
{
"bucket_name": "Bucket name",
"ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
"cluster_name": "hop",
"description": null,
"disk_size": 1000000,
"id": 24,
"monitor_hosts": [
"127.0.0.1",
"128.15.16.19"
],
"public_network": "192.168.1.15/12",
"storage_host": "ceph1.stand.loc",
"storage_host_port": 5000,
"storage_name": "Ceph storage 1"
},
{
"bucket_name": "Bucket name 2",
"ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
"cluster_name": "hop",
"description": null,
"disk_size": 1000000,
"id": 25,
"monitor_hosts": [
"monhost1",
"monhost2",
"monhost3"
],
"public_network": "192.168.1.15/12",
"storage_host": "ceph1.stand.loc",
"storage_host_port": 5000,
"storage_name": "Ceph storage 1"
}
]
}
Получение количества хранилищ.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | path | string | Идентификатор хранилища. |
storage_name (Optional) | path | string | Имя хранилища. |
description (Optional) | path | string | Описание хранилища. |
storage_host (Optional) | path | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port (Optional) | path | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name (Optional) | path | string | Имя сегмента (группы дисков) хоста хранилища. |
disk_size (Optional) | path | string | Размер одного диска на хосте хранилища в ГБ. |
cluster_name (Optional) | path | string | Имя кластера. |
public_network (Optional) | path | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id (Optional) | path | string | Идентификатор кластера Ceph. |
Параметры, поддерживающие модификаторы: storage_name
, description
, storage_host
, storage_host_port
, bucket_name
, disk_size
, cluster_name
, public_network
, ceph_cluster_id
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-storages/count | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
count | body | integer | Количество объектов. |
Пример ответа в JSON формате:
{
"count": 2
}
Создание нового хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
storage_name | body | string | Имя хранилища. |
description (Optional) | body | string | Описание хранилища. |
storage_host | body | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port | body | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name | body | string | Имя сегмента (группы дисков) хоста хранилища. |
disk_size | body | string | Размер одного диска на хосте хранилища в ГБ. |
cluster_name | body | string | Имя кластера. |
public_network | body | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id | body | string | Идентификатор кластера Ceph. |
monitor_hosts | body | list | Перечень хостов мониторов Ceph. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"storage": {"storage_name": "Ceph storage 1", "storage_host": "ceph1.stand.loc", "storage_host_port": 5000, "bucket_name": "Bucket name", "disk_size": 1000000, "monitor_hosts": ["monhost1", "monhost2"], "public_network": "192.168.0.0/12", "ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06", "cluster_name": "cluster1"}}' http://controller:9362/v1/sds-storages/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор хранилища. |
storage_name | body | string | Имя хранилища. |
description | body | string | Описание хранилища. |
storage_host | body | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port | body | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name | body | string | Имя сегмента (группы дисков) хоста хранилища. |
disk_size | body | string | Размер одного диска на хосте хранилища в ГБ. |
cluster_name | body | string | Имя кластера. |
public_network | body | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id | body | string | Идентификатор кластера Ceph. |
monitor_hosts | body | list | Перечень хостов мониторов Ceph. |
Пример результата в JSON формате:
{
"storage": {
"bucket_name": "Bucket name",
"ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
"cluster_name": "cluster1",
"description": null,
"disk_size": 1000000,
"id": 24,
"monitor_hosts": [
"monhost1",
"monhost2"
],
"public_network": "192.168.0.0/12",
"storage_host": "ceph1.stand.loc",
"storage_host_port": 5000,
"storage_name": "Ceph storage 1"
}
}
Получение информации о хранилище.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sds-storages/$storage_id | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор хранилища. |
storage_name | body | string | Имя хранилища. |
description | body | string | Описание хранилища. |
storage_host | body | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port | body | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name | body | string | Имя сегмента (группы дисков) хоста хранилища. |
disk_size | body | string | Размер одного диска на хосте хранилища в ГБ. |
cluster_name | body | string | Имя кластера. |
public_network | body | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id | body | string | Идентификатор кластера Ceph. |
monitor_hosts | body | list | Перечень хостов мониторов Ceph. |
Пример ответа в JSON формате:
{
"storage": {
"bucket_name": "Bucket name",
"ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
"cluster_name": "hop",
"description": null,
"disk_size": 1000000,
"id": 24,
"monitor_hosts": [
"127.0.0.1",
"128.15.16.19"
],
"public_network": "192.168.1.15/12",
"storage_host": "ceph1.stand.loc",
"storage_host_port": 5000,
"storage_name": "Ceph storage 1"
}
}
Редактирование существующего хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
storage_id | path | string | Идентификатор хранилища. |
storage_name (Optional) | body | string | Имя хранилища. |
description (Optional) | body | string | Описание хранилища. |
storage_host (Optional) | body | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port (Optional) | body | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name (Optional) | body | string | Имя сегмента (группы дисков) хоста хранилища. |
cluster_name (Optional) | body | string | Имя кластера. |
public_network (Optional) | body | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id (Optional) | body | string | Идентификатор кластера Ceph. |
monitor_hosts (Optional) | body | list | Перечень хостов мониторов Ceph. |
Пример запроса:¶
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"storage": {"storage_host_port": 8000}}' http://controller:9362/v1/sds-storages/$storage_id | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор хранилища. |
storage_name | body | string | Имя хранилища. |
description | body | string | Описание хранилища. |
storage_host | body | string | Доменное имя или IP-адрес хоста хранилища. |
storage_host_port | body | string | Порт хоста хранилища, принимает значения в диапазоне от 0 до 65535, по умолчанию - 5000 . |
bucket_name | body | string | Имя сегмента (группы дисков) хоста хранилища. |
disk_size | body | string | Размер одного диска на хосте хранилища в ГБ. |
cluster_name | body | string | Имя кластера. |
public_network | body | string | Сеть в формате CIDR. Например: 192.168.0.0/24 . |
ceph_cluster_id | body | string | Идентификатор кластера Ceph. |
monitor_hosts | body | list | Перечень хостов мониторов Ceph. |
Пример результата в JSON формате:
{
"storage": {
"bucket_name": "Bucket name",
"ceph_cluster_id": "a6db666c-89e6-483a-b665-4466dc08fb06",
"cluster_name": "hop",
"description": null,
"disk_size": 1000000,
"id": 24,
"monitor_hosts": [
"monhost1",
"monhost2"
],
"public_network": "192.168.0.0/12",
"storage_host": "ceph1.stand.loc",
"storage_host_port": 8000,
"storage_name": "Ceph storage 1"
}
}
Удаление существующего хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
storage_id | path | string | Идентификатор хранилища. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/sds-storages/$storage_id | python -m json.tool
Эта операция не имеет содержания ответа.
Получение количества свободных OSD узлов в сегменте хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
storage_id | path | string | Идентификатор хранилища. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-storages/$storage_id/osd | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
replica1 | body | integer | Количество дисков/OSD, которое может быть выделено под блок с одной копией. |
replica2 | body | integer | Количество дисков/OSD, которое может быть выделено под блок с двумя копиями. |
replica3 | body | integer | Количество дисков/OSD, которое может быть выделено под блок с тремя копиями. |
Пример результата в JSON формате:
{
"osd": {
"replica1": 1,
"replica2": 1,
"replica3": 1
}
}
Получение списка блоков хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | path | string | Идентификатор блока хранилища. |
block_name (Optional) | path | string | Имя блока хранилища. |
description (Optional) | path | string | Описание блока хранилища. |
storage_id (Optional) | path | string | Идентификатор хранилища. |
num_replicas (Optional) | path | string | Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию). |
useful_space (Optional) | path | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid (Optional) | path | string | UUID блока. |
offset (Optional) | path | integer | Номер позиции для получения данных. |
limit (Optional) | path | integer | Ограничение количества получаемых данных. |
Параметры, поддерживающие модификаторы: id
, block_name
, description
, storage_id
, num_replicas
, useful_space
, uuid
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-blocks/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор блока хранилища. |
block_name | body | string | Имя блока хранилища. |
description | body | string | Описание блока хранилища. |
storage_id | body | string | Идентификатор хранилища. |
num_replicas | body | string | Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию). |
useful_space | body | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid | body | string | UUID блока. |
auth_key | body | string | Ключ авторизации. |
Пример ответа в JSON формате:
{
"blocks": [
{
"auth_key": null,
"block_name": "block",
"description": null,
"id": 5,
"num_replicas": 1,
"storage_id": 5,
"useful_space": 512,
"uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"
},
{
"auth_key": "4ea84ef0-6cbe-4c32-841a-498d385effda",
"block_name": "block",
"description": null,
"id": 6,
"num_replicas": 4,
"storage_id": 4,
"useful_space": 1024,
"uuid": "8dc47ed4-dff4-475f-87b9-7745dbd9f8f8"
}
]
}
Получение количества блоков хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
id (Optional) | path | string | Идентификатор блока хранилища. |
block_name (Optional) | path | string | Имя блока хранилища. |
description (Optional) | path | string | Описание блока хранилища. |
storage_id (Optional) | path | string | Идентификатор хранилища. |
num_replicas (Optional) | path | string | Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию). |
useful_space (Optional) | path | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid (Optional) | path | string | UUID блока. |
Параметры, поддерживающие модификаторы: id
, block_name
, description
, storage_id
, num_replicas
, useful_space
, uuid
.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/sds-blocks/count | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
count | body | integer | Количество объектов. |
Пример ответа в JSON формате:
{
"count": 2
}
Получение информации о блоке хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
block_id | path | string | Идентификатор блока хранилища. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sds-blocks/$block_id | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор блока хранилища. |
block_name | body | string | Имя блока хранилища. |
description | body | string | Описание блока хранилища. |
storage_id | body | string | Идентификатор хранилища. |
num_replicas | body | string | Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию). |
useful_space | body | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid | body | string | UUID блока. |
auth_key | body | string | Ключ авторизации. |
Пример ответа в JSON формате:
{
"block": {
"auth_key": null,
"block_name": "block",
"description": null,
"id": 5,
"num_replicas": 1,
"storage_id": 5,
"useful_space": 512,
"uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"
}
}
Создание блока хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
block_name | body | string | Имя блока хранилища. |
description (Optional) | body | string | Описание блока хранилища. |
storage_id | body | string | Идентификатор хранилища. |
num_replicas | body | string | Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию). |
useful_space | body | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid | body | string | UUID блока. |
auth_key | body | string | Ключ авторизации. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"block": {"block_name": "block", "storage_id": 5, "num_replicas": 1, "useful_space": 512, "uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"}}' http://controller:9362/v1/sds-blocks/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор блока хранилища. |
block_name | body | string | Имя блока хранилища. |
description | body | string | Описание блока хранилища. |
storage_id | body | string | Идентификатор хранилища. |
num_replicas | body | string | Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию). |
useful_space | body | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid | body | string | UUID блока. |
auth_key | body | string | Ключ авторизации. |
Пример результата в JSON формате:
{
"block": {
"auth_key": null,
"block_name": "block",
"description": null,
"id": 5,
"num_replicas": 1,
"storage_id": 5,
"useful_space": 512,
"uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"
}
}
Редактирование существующего блока хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
block_id | path | string | Идентификатор блока хранилища. |
block_name (Optional) | body | string | Имя блока хранилища. |
description (Optional) | body | string | Описание блока хранилища. |
useful_space (Optional) | body | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid (Optional) | body | string | UUID блока. |
Пример запроса:¶
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"block": {"useful_space": 540}}' http://controller:9362/v1/sds-blocks/$block_id | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор блока хранилища. |
block_name | body | string | Имя блока хранилища. |
description | body | string | Описание блока хранилища. |
storage_id | body | string | Идентификатор хранилища. |
num_replicas | body | string | Количество реплик блока. Принимает значения: 1, 2 или 3 (по умолчанию). |
useful_space | body | string | Полезное пространство блока хранилища в ГБ. Выбирается из списка значений, но не более, чем имеющееся свободное пространство хранилища. |
uuid | body | string | UUID блока. |
auth_key | body | string | Ключ авторизации. |
Пример результата в JSON формате:
{
"block": {
"auth_key": "4ea84ef0-6cbe-4c32-841a-498d385effda",
"block_name": "new block",
"description": null,
"id": 3,
"num_replicas": 1,
"storage_id": 5,
"useful_space": 540,
"uuid": "0a6d1d5c-e53f-4c99-a400-a9bf5b2a07a7"
}
}
Удаление существующего блока хранилища.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
block_id | path | string | Идентификатор блока хранилища. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/sds-blocks/$block_id | python -m json.tool
Эта операция не имеет содержания ответа.
Настройка служб OpenStack удаленного узла на работу с Ceph.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
block_id | path | string | Идентификатор блока хранилища. |
host | body | string | IP-адрес или доменное имя узла. |
mode | body | string | Режим настройки узла. Принимает значения:
|
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"host": "10.35.26.27", "mode": "compute"}' http://controller:9362/v1/sds-blocks/$block_id/actions/configure
Эта операция не имеет содержания ответа.
DRS¶
Позволяет запускать аудит возможности балансировки виртуальных машин на узлах в рамках агрегаторов узлов.
Запуск аудита возможности балансировки.
Запрос¶
Параметры запроса:¶
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.
Примечание
Для корректной работы требуется настроенная служба tionix-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 | Логический том. |
Пример ответа в JSON формате:
{
"volumes": [
{
"volume_id": "cfae37a3-6e8f-4bc8-862e-85db07ff429f",
"logical_volume": {
{
"lv_name": "volume-cfae37a3-6e8f-4bc8-862e-85db07ff429f",
"vg_name": "vol",
"lv_attr": "-wi-------",
"lv_uuid": "XSOJgt-6xDf-mTWA-NG7q-MyR7-MheT-e39yp3",
"mirror_count": "1",
"lv_size": "1,00g",
"lv_status": null,
"devices": [
{
"pv": "/dev/mapper/mpathb",
"seg_size": "1,00g"
}
]
}
}
}
]
}
Конвертация диска в зеркалированный диск.
Запрос¶
Параметры запроса:¶
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
Эта операция не имеет содержания ответа.
Изолированные сети¶
Позволяет управлять программно-определяемыми сетями.
Получение списка изолированных сетей.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/networks/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
router | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"networks": [
{
"router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"uuid": "5892ab79-6008-4d28-ae8a-0ff2552d3ee1"
},
{
"router": "f0f68361-286d-4362-854d-b6152f3285b3",
"uuid": "a8817d5e-f29c-43f3-b35b-cd6b75c968da"
}
]
}
Получение детальной информации об изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
network_id | path | string | Идентификатор изолированной сети. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/networks/$network_id | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
router | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"network": {
"router": "f0f68361286d4362854db6152f3285b3",
"uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
}
}
Создание изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
router_id | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"network": {"router_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2"}}' http://controller:9362/v1/networks/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
router | body | string | UUID роутера OpenStack, маршрутизирующего трафик между виртуальными машинами и изолированной сетью. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"network": {
"router": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"uuid": "ef8d24d6-6a78-488f-ad7f-662418b661ef"
}
}
Удаление существующей изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
network_id | path | string | Идентификатор изолированной сети. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/networks/$network_id
Эта операция не имеет содержания ответа.
Изолированные вычислительные узлы¶
Получение списка всех подключенных вычислительных узлов.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/isolated-nodes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
uuid | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"nodes": [
{
"address": "10.35.12.18",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
},
{
"address": "10.35.12.19",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
}
]
}
Получение детальной информации о вычислительном узле в сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
node_address | path | string | IP-адрес узла. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/isolated-nodes/$node_address | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
network | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"node": {
"address": "10.35.12.19",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
}
}
Подключение узла к изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
network_id | body | string | Идентификатор изолированной сети. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"node": {"network_id": "33413024-0616-4e0a-8693-ba4fea5c1ee2", "address": "10.35.12.19"}}' http://controller:9362/v1/isolated-nodes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
address | body | string | IP-адрес узла. |
network | body | string | Идентификатор изолированной сети. |
Пример результата в JSON формате:
{
"node": {
"address": "10.35.12.19",
"network": "1862da55-57af-4300-affb-0bbbc5c966d8"
}
}
Отключение вычислительного узла от изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
node_address | path | string | IP-адрес узла. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9362/v1/isolated-nodes/$node_address
Эта операция не имеет содержания ответа.
Маршруты¶
Получение списка всех маршрутов.
Запрос¶
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9362/v1/routes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор маршрута изолированной сети. |
network | body | string | Идентификатор изолированной сети. |
route | body | string | IP-адрес сети. |
Пример результата в JSON формате:
{
"routes": [
{
"id": 1,
"network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"route": "10.0.0.1/32"
},
{
"id": 2,
"network": "ef8d24d6-6a78-488f-ad7f-662418b661ef",
"route": "10.0.0.2/32"
}
]
}
Создание маршрута в сеть провайдера из изолированной сети.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
network_id | body | string | Идентификатор изолированной сети. |
route | body | string | IP-адрес сети. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"route": {"route": "10.0.0.1/32", "network_id": "ef8d24d6-6a78-488f-ad7f-662418b661ef"}}' http://controller:9362/v1/routes/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
id | body | string | Идентификатор маршрута изолированной сети. |
network | body | string | Идентификатор изолированной сети. |
route | body | string | IP-адрес сети. |
Пример результата в JSON формате:
{
"route": {
"id": 1,
"network": "33413024-0616-4e0a-8693-ba4fea5c1ee2",
"route": "10.0.0.1/32"
}
}
Удаление существующего маршрута.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
route_id | path | string | Идентификатор маршрута изолированной сети. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9362/v1/routes/$route_id
Эта операция не имеет содержания ответа.