opened image

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

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

 

Створення резервної копії

 

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

 

URL: 

https://api.zomro.com/

Метод: POST

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

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcinstances.fleio_bckps.editТакФункція для створення резервної копії
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше про інші варіанти описано тут
outjsonТакТип відповіді, яку очікувати
sokokТакПідтвердження операції
plid5203773ТакID instance, для якої створити резервну копію
nameMyBackupТакНазва резервної копії

 

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

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

 

URL: 

https://api.zomro.com/

 

Метод: POST

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

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

 

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

 

curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio_bckps.edit"' \
--form 'auth="d3ec30e337e01078a1d185cc"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'plid="5203773"' \
--form 'name="MyBackup"'

 

Після виконання запиту, бачимо, що резервна копія в процесі створення. Як бачимо backup має значення Saving:

​​​​​​​

 

Після завершення створення резервної копії, статус резервної копії зміниться з Saving на Active:

 

Як бачимо, статус послуги є Active.

 

Як отримати список резервних копій за допомогою API

 

Також, за допомогою API є можливість отримати список резервних копій. Для цього виконуємо наступний формат запиту:

 URL: 

https://api.zomro.com/

Метод: POST

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

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

 

Для прикладу, спробуємо отримати резервні копії для послуги 5203773. На попередньому кроці, створили 1 резервну копію. Спробуємо отримати її.

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

curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio_bckps"' \
--form 'auth="8409b4eea786e3cad35eacf7"' \
--form 'out="json"' \
--form 'elid="5203773"'

Отримуємо наступний результат:

{
    "doc": {
        ...
        "elem": [
            {
                "architecture": {
                    "$": "x86_64"
                },
                "backup_type": {
                    "$": "manual"
                },
                "createdate": {
                    "$": "2024-07-23"
                },
                "disk_format": {
                    "$": "qcow2"
                },
                "fleio_id": {
                    "$": "b26c0f34-48b2-4cb2-b4eb-388eac959df6"
                },
                "fleio_status": {
                    "$": "Active"
                },
                "hypervisor_type": {
                    "$": "any_hypervisor"
                },
                "id": {
                    "$": "5203980"
                },
                "image_size": {
                    "$": "3"
                },
                "item_real_status": {
                    "$": "2"
                },
                "min_disk": {
                    "$": "20"
                },
                "min_ram": {
                    "$": "0"
                },
                "name": {
                    "$": "MyBackup"
                },
                "os_distro": {
                    "$": "Ubuntu"
                },
                "os_version": {
                    "$": "22.04 x64"
                },
                "protected": {
                    "$": "off"
                },
                "region": {
                    "$": "Netherlands-2"
                },
                "visibility": {
                    "$": "private"
                }
            }
        ],
    }
}

 

Нас цікавлять дані, які отримані в наступній вкладеності:​​​​​​​

doc.elem.[]

 

З цієї відповіді, ми отримуємо наступні дані:

Назва поляОпис

architecture

Архітектура віртуальної машини

backup_type

Яким чином була створена резервна копія: Вручну або за розкладом

createdate

Час створення резервної копії

disk_format

Тип файлу резервної копії

fleio_id

Унікальний UUID в системі fleio

fleio_status

Статус резервної копії. Значення Active означає, що резервна копія створена

hypervisor_type

Тип гіпервізора для віртуальної машини

id

ID резервної копії в межах bill manager

image_size

Фактичний розмір резервної копії. Визначається після завершення створення резервної копії

item_real_status

Статус послуги в рамках billmanager

min_disk

Мінімальний розмір диска на сервері, який потрібен, щоб відновити дану резервну копію

min_ram

Мінімальний розмір ОЗП на сервері, який потрібен, щоб відновити дану резервну копію

name

Назва резервної копії

os_distro

Назва операційної системи

os_version

Версія операційної системи

protected

Повідомляє, чи дозволено видаляти резервну копію. При значенні «off», резервну копію можливо видалити. У випадку «on» - резервну копію неможливо видалити.

region

Назва датацентру, де знаходиться резервна копія

visibility

Статус доступу до резервної копії. Єдине доступне значення є «Private» 

 

Як видалити резервну копію

​​​​​​​

Для видалення резервної копії виконуємо наступний запит:

 URL: 

https://api.zomro.com/

Метод: POST

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

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

5203980

ТакID резервної копії, яку потрібно видалити
elid

5203980

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

 

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

curl --location 'https://api.zomro.com/' \
--form 'func="image.delete"' \
--form 'auth="72307c8cfc94e631d835438f"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'plid="5203773"' \
--form 'elname="5203980"' \
--form 'elid="5203980"'

Після виконання запиту, перевірити результат можна за допомогою функції «instances.fleio_bckps», або переглянувши за допомогою веб інтерфейсу:

​​​​​​​

 

Як можемо побачити, резервна копія була успішно видалена. 

 

Також пропонуємо вивчити статті, які можуть бути корисними для взаємодії з продуктами Cloud VPS за допомогою API: