ВОЙТИ
    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: