УВІЙТИ
    opened image

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