У цьому документі описано процес створення, перегляду та видалення 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