Диски виртуальной машины
Возможные операции:
- Получение списка всех дисков
- Получение информации по диску
- Изменение диска
- Относительное увеличение диска
- Фильтрация по
vm
Получение списка всех дисков
URL: /api/cvds/v1/storages/
Метод: GET
Результат: JSON
Пример запроса:
curl -XGET https://panel.netangels.ru/api/cvds/v1/storages/ \
--header 'Authorization: Token sDZfdN8MhD4fnWVE6xyX'
Пример успешного ответа:
{
"count": 20,
"next": "https://panel.netangels.ru/api/cvds/v1/storages/?page=2",
"previous": null,
"results": [
{
"id": 491,
"name": "az_st_922a224a",
"size": 5,
"state": "active",
"storage_id": "az_st_922a224a",
"type": "vg",
"vm": 267
},
{
"id": 521,
"name": "az_st_5f07e01a",
"size": 5,
"state": "active",
"storage_id": "az_st_5f07e01a",
"type": "vg",
"vm": 298
},
...
{
"id": 563,
"name": "az_st_57d6c0e5",
"size": 5,
"state": "building",
"storage_id": "az_st_57d6c0e5",
"type": "vg",
"vm": 336
}
]
}
Получение информации по диску
URL: /api/cvds/v1/storages/<id>/
Метод: GET
Результат: JSON
Пример запроса:
curl -XGET https://panel.netangels.ru/api/cvds/v1/storages/562/ \
--header 'Authorization: Token sDZfdN8MhD4fnWVE6xyX'
Пример успешного ответа:
{
"id": 562,
"name": "az_st_36ce03a6",
"size": 5,
"state": "building",
"storage_id": "az_st_36ce03a6",
"type": "vg",
"vm": 335
}
Описание полей:
name
- название дискаstorage_id
- уникальный идентификатор дискаstate
- состояние диска:- pending - в ожидании
- building - в процессе создания
- active - ресурс активен
- stopped - остановлен
- blocked - ресурс заблокирован
- error - ошибка
type
- тип диска:- vg - диск стандартной скорости SAS
- vgssd - быстрый диск SSD
size
- размер диска (в Гб)vm
- идентификатор ВМ
Изменение параметров диска
URL: /api/cvds/v1/storages/<id>/
Метод: PATCH
Результат: JSON
Метод позволяет изменять размер и тип диска.
При изменении типа диска или уменьшении размера будет создан новый диск, а старый будет удален.
Параметры запроса:
type
- желаемый тип диска:- vg - диск стандартной скорости SAS
- vgssd - быстрый диск SSD
size
- желаемый размер диска (в Гб). Значение должно быть кратно 5. Существуют ограничения:- SAS от 5 до 250 Гб
- SSD от 5 до 80 Гб
Увеличение размера диска
Пример запроса:
curl -XPATCH https://panel.netangels.ru/api/cvds/v1/storages/599/ \
--header "Authorization: Token Ba9n7SJgWl42moL1cfds" \
-d 'type=vg' \
-d 'size=10'
Пример успешного ответа:
{
"id": 599,
"name": "az_st_d7efa6f3",
"storage_id": "az_st_d7efa6f3",
"state": "active",
"type": "vg",
"size": 10,
"vm": null
}
Смена типа диска или уменьшение размера
Пример запроса:
curl -XPATCH https://panel.netangels.ru/api/cvds/v1/storages/599/ \
--header "Authorization: Token Ba9n7SJgWl42moL1cfds" \
-d 'type=vgssd' \
-d 'size=5'
Пример успешного ответа:
{
"id": 600,
"name": "az_st_a37b9055",
"storage_id": "az_st_a37b9055",
"state": "building",
"type": "vgssd",
"size": 5,
"vm": null
}
При успешном изменении HTTP-код будет 201 (CREATED), а заголовок Location
содержит ссылку на новый ресурс диска:
Location: https://panel.netangels.ru/api/cvds/v1/storages/600/
По этой ссылке можно отслеживать процесс изменения диска.
Когда поле state
станет active
, то это будет означать успешное создание.
Существует ограничение на количество запросов
Относительное увеличение диска
URL: /api/cvds/v1/storages/<id>/resize/up/
Метод: PATCH
Результат: JSON
Метод позволяет увеличить размер диска относительно текущего.
Параметры запроса:
delta
- желаемая величиа увеличения (в Гб). Значение должно быть кратно 5.
При отсутствии параметра значение по умолчанию равно 5 Гб.
Пример запроса:
curl -XPATCH https://panel.netangels.ru/api/cvds/v1/storages/599/resize/up/ \
--header "Authorization: Token Ba9n7SJgWl42moL1cfds" \
-d 'delta=10'
Пример успешного ответа:
{
"id": 599,
"name": "az_st_d7efa6f3",
"storage_id": "az_st_d7efa6f3",
"state": "active",
"type": "vg",
"size": 20,
"vm": null
}
Существует ограничение на количество запросов
Фильтрация по vm
URL: /api/cvds/v1/storages/?vm=<vm_id>
Метод: GET
Результат: JSON
Параметры запроса:
vm
- идентификатор ВМ, возможно указывать поляid
иvm_id
Пример запроса:
curl -XGET https://panel.netangels.ru/api/cvds/v1/storages/?vm=az_vm_dcf4a74b \
--header 'Authorization: Token sDZfdN8MhD4fnWVE6xyX'
Пример успешного ответа:
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 527,
"name": "az_st_30c9e387",
"size": 5,
"state": "active",
"storage_id": "az_st_30c9e387",
"type": "vg",
"vm": 304
}
]
}