opened image

API - Взаємодія зі Snapshots

У цьому документі описано процес створення, перегляду та видалення snapshots для instance за допомогою API сервісу Zomro. Наведені приклади запитів допоможуть вам швидко розібратися з основними операціями, необхідними для управління snapshots через API.

 

Створення snapshots

Щоб створити snapshots, виконайте наступний запит:

 

URL: 

https://api.zomro.com/

Метод: POST

Тіло запиту(Form-data):

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcinstances.snapshots.editТакфункція для створення snapshots
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
outjsonТакТип відповіді, який очікувати
sokokТакПідтвердження операції
plid5203773ТакID instance, для якої створити snapshot
nameMySnapshotТакНазва Snapshot

 

Приклад створення snapshots для послуги

Для прикладу, використовуємо послугу:

 

 

URL: 

https://api.zomro.com/

 

Метод: POST

Тіло запиту(Form-data):

ПараметрЗначення
funcinstances.snapshots.edit
auth21fc199...c43f71
outjson
sokok
plid5203773
nameMySnapshot

 

Ось приклад запиту, який можна виконати з консолі:

 

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):

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcinstances.snapshotsТакФункція, для отримання всіх snapshots
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
outjsonТакТип відповіді, який очікувати
elid5203773Так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):

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcimage.deleteТакФункція, видалення snapshot
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
outjsonТакТип відповіді, який очікувати
plid5203773ТакID instance, snapshot якого планується видалити
elname

5204214

ТакID snapshot, якого потрібно видалити
plid

5204214

ТакID snapshot, якого потрібно видалити
sokokТакПідтвердження виконання операції

 

Спробуємо виконати наступний запит в консолі:

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: