opened image

API - Interakcja z Rescue

W tym artykule opisano, jak przeprowadzić operację Rescue za pomocą API.

 

Użycie Rescue

Aby uruchomić proces Rescue dla instancji, wykonujemy zapytanie w następującym formacie:

 

URL: 

https://api.zomro.com/

Metoda: POST

Treść zapytania (Form-data):

ParametrPrzykład wartościObowiązkowy parametrOpis wartości
funcinstances.fleio.rescueTakFunkcja do użycia Boot from ISO
auth21fc199...c43f71NieToken sesji. Jest to jedna z opcji autoryzacji. Więcej informacji o innych opcjach znajduje się tutaj
outjsonTakTyp odpowiedzi, której oczekiwać
sokokTakPotwierdzenie operacji
elid5203773TakID instancji
select_bootf8f2573f-56c4-44c5-8469-84eee4aa64e7TakUUID obrazu, który planujemy użyć
passwordMyPassword1NieHasło dostępu do serwera w trybie Rescue. Zaleca się ustawić, aby mieć dostęp do serwera    
zonepubTakTyp strefy, w której znajduje się obraz. Dostępne parametry: «own», «pub».

 

Przykład przejścia instancji w tryb Boot From ISO

Na przykładzie użyjemy usługi:

i załadujemy następujący obraz:
 

 

URL: 

https://api.zomro.com/

 

Metoda: POST

Treść zapytania (Form-data):

ParametrWartość
funcinstances.fleio.rescue
auth21fc199...c43f71
outjson
sokok
elid5203773
select_boot_from_isof8f2573f-56c4-44c5-8469-84eee4aa64e7
zonepub
passwordMyPassword1

 

Oto przykład zapytania, które można wykonać z konsoli:

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"'

 

Po wykonaniu zapytania widzimy, że instancja przeszła w tryb «Rescue». Potwierdzeniem tego jest wynik na zdjęciu:

 

 

Również, jeśli nie przekażemy parametru sok, zapytanie zostanie wykonane w trybie podglądu. Wykonując to zapytanie, można uzyskać dostępne obrazy do przejścia w tryb rescue z wybranego obrazu. Na przykład wykonamy następujące zapytanie, ale bez przekazanego parametru «sok»:

 

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


Otrzymujemy następującą odpowiedź:

 

{
    "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"
                    },
                ]
            }
        ],
    
    }
}

 

Analizując tę strukturę odpowiedzi, interesujące nas dane znajdują się w następującej zagnieżdżeniu:

 

doc.slist.[]

 

Jak widzimy, mamy dostępne obrazy:

UUIDNazwa obrazuNazwa OSObszar widoczności

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

 

Obraz z modyfikatorem dostępu «pub» jest dostępny dla wszystkich użytkowników. Natomiast z «own» - jest dostępny tylko dla właściciela obrazu.
  

Również, aby wyjść z trybu «Rescue», wykonujemy następujące zapytanie API w następującym formacie:

 

URL: 

https://api.zomro.com/

Metoda: POST

Treść zapytania (Form-data):

ParametrPrzykład wartościObowiązkowy parametrOpis wartości
funcinstances.fleio.unrescueTakFunkcja do wyjścia z trybu «Rescue»
auth21fc199...c43f71NieToken sesji. Jest to jedna z opcji autoryzacji. Więcej informacji o innych opcjach znajduje się tutaj
outjsonTakTyp odpowiedzi, której oczekiwać
elid5203773TakID instancji

 

Jak wyłączyć tryb «Rescue»

 

Na przykładzie wyłączymy tryb «Rescue» dla instancji z ID 5203773.

Spróbujemy wykonać następujące zapytanie w konsoli:

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

Po wykonaniu zapytania widzimy, że usługa jest aktywna:

​​​​​​​

 

Również proponujemy zapoznać się z artykułami, które mogą być przydatne do interakcji z produktami Cloud VPS za pomocą API: