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: