В этом документе описан процесс создания, просмотра и удаления snapshots для instance с помощью API сервиса Zomro. Приведенные примеры запросов помогут вам быстро разобраться с основными операциями, необходимыми для управления snapshots через API.
Создание snapshots
Чтобы создать snapshots, выполните следующий запрос:
URL:
https://api.zomro.com/
Метод: POST
Тело запроса(Form-data):
Параметр | Пример значения | Обязательный параметр | Описание значения |
func | instances.snapshots.edit | Да | функция для создания snapshots |
auth | 21fc199...c43f71 | Нет | Токен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь |
out | json | Да | Тип ответа, который ожидать |
sok | ok | Да | Подтверждение операции |
plid | 5203773 | Да | ID instance, для которой создать snapshot |
name | MySnapshot | Да | Название Snapshot |
Пример создания snapshots для услуги
Для примера, используем услугу:
URL:
https://api.zomro.com/
Метод: POST
Тело запроса(Form-data):
Параметр | Значение |
func | instances.snapshots.edit |
auth | 21fc199...c43f71 |
out | json |
sok | ok |
plid | 5203773 |
name | MySnapshot |
Вот пример запроса, который можно выполнить из консоли:
curl --location 'https://api.zomro.com/' \
--form 'func="instances.snapshots.edit"' \
--form 'auth="5acd1215da7a09eaae215987"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'plid="5203773"' \
--form 'name="MySnapshot"'
После выполнения запроса, видим, что snapshots в процессе создания. Эту информацию можем получить из поля Status, которое имеет значение Saving:
После завершения создания резервной копии, статус резервной копии изменится с Saving на Active:
Как видим, статус snapshot является Active.
Как получить список snapshots
Также, с помощью API есть возможность получить список snapshots. Для этого выполняем следующий формат запроса:
URL:
https://api.zomro.com/
Метод: POST
Тело запроса(Form-data):
Параметр | Пример значения | Обязательный параметр | Описание значения |
func | instances.snapshots | Да | Функция, для получения всех snapshots |
auth | 21fc199...c43f71 | Нет | Токен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь |
out | json | Да | Тип ответа, который ожидать |
elid | 5203773 | Да | ID instance, snapshots которой планируется получить |
Для примера, попробуем получить snapshots для услуги 5203773. На предыдущем шаге, создали 1 snapshot. Попробуем получить ее.
Попробуем выполнить следующий запрос в консоли:
curl --location 'https://api.zomro.com/' \
--form 'func="instances.snapshots"' \
--form 'auth="9046d78a8fda29dda83d42dd"' \
--form 'out="json"' \
--form 'elid="5203773"'
Получаем следующий результат:
{
"doc": {
...
"elem": [
{
"architecture": {
"$": "x86_64"
},
"createdate": {
"$": "2024-07-23"
},
"disk_format": {
"$": "qcow2"
},
"fleio_id": {
"$": "afd72725-81aa-43ad-984c-a3f3a05b4b84"
},
"fleio_status": {
"$": "Active"
},
"hypervisor_type": {
"$": "any_hypervisor"
},
"id": {
"$": "5204214"
},
"image_size": {
"$": "3"
},
"item_real_status": {
"$": "2"
},
"min_disk": {
"$": "20"
},
"min_ram": {
"$": "0"
},
"name": {
"$": "MySnapshot"
},
"os_distro": {
"$": "Ubuntu"
},
"os_version": {
"$": "22.04 x64"
},
"protected": {
"$": "off"
},
"region": {
"$": "Netherlands-2"
},
"visibility": {
"$": "private"
}
}
],
}
}
Нас интересует данные, которые получены в следующие вложенности:
doc.elem.[]
Из этого ответа, мы получаем следующие данные:
Название поля | Описание |
architecture |
Архитектура виртуальной машины |
createdate |
Время создания snapshot |
disk_format |
Тип файла snapshot |
fleio_id |
Уникальный UUID в системе fleio |
fleio_status |
Статус snapshot. Значение Active означает, что snapshot создана |
hypervisor_type |
Тип гипервизора для виртуальной машины |
id |
ID snapshot в пределах bill manager |
image_size |
Фактический размер snapshot. Определяется после завершения создания snapshot |
item_real_status |
Статус услуги в рамках billmanager |
min_disk |
Минимальный размер диска на сервере который нужен, чтобы восстановить данную snapshot |
min_ram |
Минимальный размер ОЗУ на сервере, который нужен, чтобы восстановить данную snapshot |
name |
Название snapshot |
os_distro |
Название операционной системы |
os_version |
Версия операционной системы |
protected |
Сообщает, разрешено ли удалять snapshot. При значении «off», snapshot возможно удалить. В случае «on» - snapshot невозможно удалить. |
region |
Название датацентра, где находится snapshot |
visibility |
Статус доступа к snapshots. Единственное доступное значение является «Private» |
Для удаления snapshot выполняем следующий запрос:
URL:
https://api.zomro.com/
Метод: POST
Тело запроса(Form-data):
Параметр | Пример значения | Обязательный параметр | Описание значения |
func | image.delete | Да | Функция, удаление snapshot |
auth | 21fc199...c43f71 | Нет | Токен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь |
out | json | Да | Тип ответа, который ожидать |
plid | 5203773 | Да | ID instance, snapshot которого планируется удалить |
elname |
5204214 |
Да | ID snapshot, которого нужно удалить |
plid |
5204214 |
Да | ID snapshot, которого нужно удалить |
sok | ok | Да | Подтверждение выполнения операции |
Попробуем выполнить следующий запрос в консоли:
curl --location 'https://api.zomro.com/' \
--form 'func="image.delete"' \
--form 'auth="9046d78a8fda29dda83d42dd"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'plid="5203773"' \
--form 'elname="5204214"' \
--form 'elid="5204214"'
После выполнения запроса, проверить результат можно с помощью функции «instances.fleio_bckps», или просмотрев с помощью веб интерфейса:
Как можно увидеть, snapshot был успешно удален.
Также предлагаем изучить статьи, которые могут быть полезными для взаимодействия с продуктами Cloud VPS с помощью API:
- API - Создание услуги
- API - Получение информации о доступных тарифах и их параметрах
- API - Операция Start & Stop
- API - Операция Reboot
- API - Операция Rebuild
- API - Операция Delete
- API - Взаимодействие с Image
- API - Взаимодействие с Backup Schedule
- API - Взаимодействие с Rescue
- API - Взаимодействие с Backup
- API - Взаимодействие с Boot From ISO