opened image

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

У цій статті описано, як здійснювати операцію Rescue за допомогою API.

 

Використання Rescue

Щоб запустити процес Rescue для instance, виконуємо запит такого формату:

 

URL: 

https://api.zomro.com/

Метод: POST

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

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcinstances.fleio.rescueТакФункція для використання Boot from ISO
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
outjsonТакТип відповіді, яку очікувати
sokokТакПідтвердження операції
elid5203773ТакID instance
select_bootf8f2573f-56c4-44c5-8469-84eee4aa64e7ТакUUID образу, який плануємо використовувати
passwordMyPassword1НіПароль доступу до сервера в режимі Rescue. Рекомендується встановлювати, щоб мати доступ до сервера    
zonepubТакТип зони, де знаходиться зображення. Доступні параметри: «own», «pub».

 

Приклад переходу Instance в режим Boot From ISO

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

і завантажимо наступний образ:
 

 

URL: 

https://api.zomro.com/

 

Метод: POST

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

ПараметрЗначення
funcinstances.fleio.rescue
auth21fc199...c43f71
outjson
sokok
elid5203773
select_boot_from_isof8f2573f-56c4-44c5-8469-84eee4aa64e7
zonepub
passwordMyPassword1

 

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

curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio.rescue"' \
--form 'auth="43137b5f35a6ba4ee01f4a4e"' \
--form 'out="json"' \
--form 'elid="5203773"' \
--form 'sok="ok"' \
--form 'select_boot="f8f2573f-56c4-44c5-8469-84eee4aa64e7"' \
--form 'password="MyPassword1"' \
--form 'zone="pub"'

 

Після виконання запиту, бачимо, що instance перейшов у режим «Rescue». Підтвердженням цього є результат на фото:

 

 

Також, якщо не передавати параметр sok, буде виконано запит у режимі попереднього перегляду. Виконавши цей запит, можна отримати доступні image для переходу в rescue з обраного image. Для прикладу, виконаємо наступний запит, але без переданого параметра «sok»:

 

curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio.rescue"' \
--form 'auth="43137b5f35a6ba4ee01f4a4e"' \
--form 'out="json"' \
--form 'elid="5203773"' 


Отримуємо наступну відповідь:

 

{
    "doc": {
        ...
        "slist": [
            {
                "$name": "zone",
                "val": [
                    {
                        "$key": "pub",
                        "$": "pub"
                    },
                    {
                        "$key": "own",
                        "$": "own"
                    }
                ]
            },
            {
                "$name": "select_boot",
                "val": [
                    {
                        "$depend": "pub",
                        "$key": "f8f2573f-56c4-44c5-8469-84eee4aa64e7",
                        "$": "Ubuntu 22.04"
                    },
                    {
                        "$depend": "pub",
                        "$key": "0bf4deb2-855c-4863-8518-6006d804adbb",
                        "$": "Debian 10"
                    },
                    {
                        "$depend": "pub",
                        "$key": "18d0ee2e-4d57-4f40-9b56-03c1773b5831",
                        "$": "AlmaLinux 8"
                    },
                    {
                        "$depend": "pub",
                        "$key": "1d9dda4c-34b0-4304-a90a-8f3018722fa2",
                        "$": "Rocky-Linux-8"
                    },
                    {
                        "$depend": "pub",
                        "$key": "2af0af94-0e6e-4ef3-8837-d41fdbfa3564",
                        "$": "Windows Server 2016"
                    },
                    {
                        "$depend": "pub",
                        "$key": "3010ae60-0185-4021-98da-f50013147ebd",
                        "$": "Debian 11"
                    },
                    {
                        "$depend": "pub",
                        "$key": "479c96f1-ccc6-47a2-952c-c9e3bbdc8d07",
                        "$": "Ubuntu 20.04"
                    },
                    {
                        "$depend": "pub",
                        "$key": "5da4ad83-45f6-4c0e-9a7e-7a7c18b2be6c",
                        "$": "AlmaLinux 9"
                    },
                    {
                        "$depend": "pub",
                        "$key": "7d7911e3-7178-4f36-a308-d841db5fe654",
                        "$": "CentOS Stream 9"
                    },
                    {
                        "$depend": "pub",
                        "$key": "92fabac2-69cc-46ad-8439-c377e0c90632",
                        "$": "Ubuntu 23.04"
                    },
                    {
                        "$depend": "pub",
                        "$key": "93878ba5-6b9e-4924-a4be-34edb623f808",
                        "$": "Debian 12"
                    },
                    {
                        "$depend": "pub",
                        "$key": "a8b7bcb3-6698-4264-b413-f2b866a46a70",
                        "$": "Rocky-Linux-9"
                    },
                    {
                        "$depend": "pub",
                        "$key": "b10434c0-d839-428f-a919-cac733fd6552",
                        "$": "Windows Server 2019"
                    },
                    {
                        "$depend": "pub",
                        "$key": "bda2467e-e192-4e4e-becc-cda2e71b9767",
                        "$": "Windows Server 2022"
                    },
                    {
                        "$depend": "own",
                        "$name": "foo",
                        "$key": "a9e7c223-5f11-4546-a298-6af546bebde6",
                        "$": "Centos 9 x64"
                    },
                ]
            }
        ],
    
    }
}

 

Проаналізувавши цю структуру відповіді, отримані цікаві дані знаходяться в наступній вкладеності:

 

doc.slist.[]

 

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

UUIDНазва ImageНазва OSОбласть видимості

f8f2573f-56c4-44c5-8469-84eee4aa64e7

-

Ubuntu 22.04

pub

0bf4deb2-855c-4863-8518-6006d804adbb

-

Debian 10

pub

18d0ee2e-4d57-4f40-9b56-03c1773b5831

-

AlmaLinux 8

pub

1d9dda4c-34b0-4304-a90a-8f3018722fa2

-

Rocky-Linux-8

pub

2af0af94-0e6e-4ef3-8837-d41fdbfa3564

-

Windows Server 2016

pub

3010ae60-0185-4021-98da-f50013147ebd

-

Debian 11

pub

479c96f1-ccc6-47a2-952c-c9e3bbdc8d07

-

Ubuntu 20.04

pub

5da4ad83-45f6-4c0e-9a7e-7a7c18b2be6c

-

AlmaLinux 9

pub

7d7911e3-7178-4f36-a308-d841db5fe654

-

CentOS Stream 9

pub

92fabac2-69cc-46ad-8439-c377e0c90632

-

Ubuntu 23.04

pub

93878ba5-6b9e-4924-a4be-34edb623f808

-

Debian 12

pub

a8b7bcb3-6698-4264-b413-f2b866a46a70

-

Rocky-Linux-9

pub

b10434c0-d839-428f-a919-cac733fd6552

-

Windows Server 2019

pub

bda2467e-e192-4e4e-becc-cda2e71b9767

-

Windows Server 2022

pub
a9e7c223-5f11-4546-a298-6af546bebde6fooCentos 9 x64own

 

Image з модифікатором доступу «pub» доступний всім користувачам. Зате з «own» - доступний тільки власнику image.
  

Також, для виходу з режиму «Rescue» виконуємо наступний API запит, наступного формату:

 

URL: 

https://api.zomro.com/

Метод: POST

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

ПараметрПриклад значенняОбов'язковий параметрОпис значення
funcinstances.fleio.unrescueТакФункція для виходу з режиму «Rescue»
auth21fc199...c43f71НіТокен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
outjsonТакТип відповіді, яку очікувати
elid5203773ТакID instance

 

Як відключити режим «Rescue»

 

Для прикладу, відключимо режим «Rescue» для Instance з ID 5203773.

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

curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio.unrescue"' \
--form 'auth="0b31d69ab7b7b4839dfd6506"' \
--form 'out="json"' \
--form 'elid="5203773"'

Після виконання запиту, бачимо, що послуга активна:

​​​​​​​

 

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