opened image

API - Interakcja ze Snapshots

W tym dokumencie opisano proces tworzenia, przeglądania i usuwania snapshots dla instancji za pomocą API serwisu Zomro. Przykłady zapytań pomogą szybko zrozumieć podstawowe operacje niezbędne do zarządzania snapshots przez API.

 

Tworzenie snapshots

Aby utworzyć snapshots, wykonaj następujące zapytanie:

 

URL: 

https://api.zomro.com/

Metoda: POST

Treść zapytania (Form-data):

ParametrPrzykład wartościObowiązkowy parametrOpis wartości
funcinstances.snapshots.editTakfunkcja do tworzenia snapshots
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
plid5203773TakID instancji, dla której utworzyć snapshot
nameMySnapshotTakNazwa Snapshot

 

Przykład tworzenia snapshots dla usługi

Na przykład, użyjemy usługi:

 

 

URL: 

https://api.zomro.com/

 

Metoda: POST

Treść zapytania (Form-data):

ParametrWartość
funcinstances.snapshots.edit
auth21fc199...c43f71
outjson
sokok
plid5203773
nameMySnapshot

 

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

 

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

 

Po wykonaniu zapytania, widzimy, że snapshots jest w trakcie tworzenia. Tę informację możemy uzyskać z pola Status, które ma wartość Saving:

 

 

Po zakończeniu tworzenia kopii zapasowej, status kopii zapasowej zmieni się z Saving na Active:

 

 

Jak widzimy, status snapshot jest Active.

 

Jak uzyskać listę snapshots

 

Również za pomocą API można uzyskać listę snapshots. W tym celu wykonujemy następujące zapytanie:

 URL: 

https://api.zomro.com/

Metoda: POST

Treść zapytania (Form-data):

ParametrPrzykład wartościObowiązkowy parametrOpis wartości
funcinstances.snapshotsTakFunkcja do uzyskania wszystkich snapshots
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, snapshots której planuje się uzyskać

 

Na przykład, spróbujemy uzyskać snapshots dla usługi 5203773. W poprzednim kroku utworzyliśmy 1 snapshot. Spróbujmy ją uzyskać.

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

curl --location 'https://api.zomro.com/' \
--form 'func="instances.snapshots"' \
--form 'auth="9046d78a8fda29dda83d42dd"' \
--form 'out="json"' \
--form 'elid="5203773"'

Otrzymujemy następujący wynik:

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

 

Interesują nas dane, które uzyskano w następujących zagnieżdżeniach:

doc.elem.[]

 

Z tej odpowiedzi uzyskujemy następujące dane:

Nazwa polaOpis

architecture

Architektura maszyny wirtualnej

createdate

Czas utworzenia snapshot

disk_format

Typ pliku snapshot

fleio_id

Unikalny UUID w systemie fleio

fleio_status

Status snapshot. Wartość Active oznacza, że snapshot została utworzona

hypervisor_type

Typ hypervisora dla maszyny wirtualnej

id

ID snapshot w ramach bill manager

image_size

Rzeczywisty rozmiar snapshot. Określany po zakończeniu tworzenia snapshot

item_real_status

Status usługi w ramach billmanager

min_disk

Minimalny rozmiar dysku na serwerze potrzebny do przywrócenia tej snapshot

min_ram

Minimalny rozmiar RAM na serwerze potrzebny do przywrócenia tej snapshot

name

Nazwa snapshot

os_distro

Nazwa systemu operacyjnego

os_version

Wersja systemu operacyjnego

protected

Informuje, czy usunięcie snapshot jest dozwolone. Przy wartości „off” snapshot można usunąć. W przypadku „on” - snapshot nie można usunąć.

region

Nazwa centrum danych, w którym znajduje się snapshot

visibility

Status dostępu do snapshots. Jedyną dostępną wartością jest „Private”

 

Aby usunąć snapshot, wykonaj następujące zapytanie:

 URL: 

https://api.zomro.com/

Metoda: POST

Treść zapytania (Form-data):

ParametrPrzykład wartościObowiązkowy parametrOpis wartości
funcimage.deleteTakFunkcja do usunięcia snapshot
auth21fc199...c43f71NieToken sesji. Jest to jedna z opcji autoryzacji. Więcej informacji o innych opcjach znajduje się tutaj
outjsonTakTyp odpowiedzi, której oczekiwać
plid5203773TakID instancji, snapshot której planuje się usunąć
elname

5204214

TakID snapshot, którą należy usunąć
plid

5204214

TakID snapshot, którą należy usunąć
sokokTakPotwierdzenie wykonania operacji

 

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

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

Po wykonaniu zapytania, wynik można sprawdzić za pomocą funkcji „instances.fleio_bckps” lub przeglądając za pomocą interfejsu webowego:

 

 

Jak można zobaczyć, snapshot została pomyślnie usunięta.

 

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