# Przykłady użycia
Ta sekcja zawiera praktyczne przykłady wykorzystania API Oktawave do zarządzania instancjami.
# Maszyny wirtualne
W przypadku maszyn wirtualnych wszystkie opisane operacje są operacjami asynchronicznymi i zwracają zlecenie
# Lista
Aby pobrać listę wszystkich maszyn wirtualnych przypisanych do konta zautoryzowanego użytkownika należy wywołać zasób GET /instances
.
# Żądanie
curl -X GET
--header 'Accept: application/json'
--header 'Authorization: Bearer 1ca85558f91697248735550dd97ee68a'
'https://api.oktawave.com/services/instances'
# Odpowiedź
{
"Items": [
{
"Id": 12345,
"Name": "Oktawave API test instance",
"CreationDate": "2016-04-27T11:33:38",
"CreationUser": {
"Id": 12345
},
...
},
...
],
"Meta": {
"Total": 5
}
}
# Tworzenie
Aby utworzyć maszynę wirtualną należy wywołać zasób POST /instances
i przekazać do niego wszystkie wymagane parametry:
- AuthorizationMethodId - typ uwierzytelnienia na maszynie wirtualnej (klucze SSH lub hasło),
- DiskClass - klasa dysku,
- DiskSize - rozmiar dysku (od 5 do 300GB),
- InstanceName - nazwa maszyny wirtualnej,
- IPAddressId - w przypadku podania zostanie przypisany wybrany adres IP,
- SubregionId - subregion w którym ma zostać utworzona maszyna wirtualna,
- TemplateId - szablon, który ma być użyty do uruchomienia maszyny wirtualnej,
- TypeId - typ maszyny wirtualnej,
- InstancesCount - liczba tworzonych maszyn wirtualnych (od 1 do 5),
Szablony maszyn wirtualnych można uzyskać wywołując GET /templates
- domyślnie API zwróci listę szablonów prywatnych przypisanych do konta, jak i publicznych z Marketu aplikacji.
Wszystkie możliwe do przesłania identyfikatory (np. klasy dysku, typ dysku) znajdziesz w odpowiadających im słownikach.
# Żądanie
curl -X POST
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer 64b342bfa972798f365555204977f19f' -d '{
"AuthorizationMethodId": 1399,
"DiskClass": 48,
"DiskSize": 5,
"InstanceName": "Oktawave API test",
"InstancesCount": 1,
"IPAddressId": 0,
"SubregionId": 6,
"TemplateId": 452,
"TypeId": 1047
}' 'https://api.oktawave.com/services/instances'
# Odpowiedź
{
"Id": 12345,
"CreationDate": "2016-07-18T09:05:30",
"EndDate": null,
"Status": {
"Id": 135,
"Label": "Uruchomiona",
...
},
"OperationType": {
"Id": 138,
"Label": "Tworzenie instancji",
...
},
...
"Progress": 0
}
# Usuwanie
Usuwanie maszyny wirtualnej można wykonać wywołując zasób DELETE /instances/{id}
.
# Żądanie
curl -X DELETE
--header 'Accept: application/json'
--header 'Authorization: Bearer 1ca85558f9555724873b920dd97ee68a'
'https://api.oktawave.com/services/instances/37752'
# Odpowiedź
{
"Id": 12345,
...
"EndDate": null,
"Status": {
"Id": 135,
"Label": "Uruchomiona",
...
},
"OperationType": {
"Id": 206,
"Label": "Usunięcie instancji",
...
},
...
"Progress": 0
}
# Eksport
Operacja eksportu jest operacją asynchroniczną, jednak wyjątkowo nie zwraca zlecenia (podobnie jest z importem). W zamian API zwraca identyfikator eksportu, który zawiera wszystkie potrzebne informacje do zweryfikowania jego prawidłowego wykonania.
# Żądanie
curl -X GET
--header 'Accept: application/json'
--header 'Authorization: Bearer 514c574e1ee7e92651375555d403c37'
'https://api.oktawave.com/services/exports/12345'
# Odpowiedź
{
"Id": 12345,
"Name": "export_test",
"CreationDate": "2016-07-11T10:17:39",
"StartDate": null,
"EndDate": null,
"Status": {
"Id": 12345,
"Label": "Oczekujący",
...
},
"OcsLocation": "api/",
"TotalSpaceCapacity": 0,
"Instance": {
"Id": 12345
},
"CreationUser": {
"Id": 12345
}
}
# Dyski
Zarządzanie dyskami poprzez API Oktawave pozwala szybko modyfikować przestrzeń i szybkość dysku poprzez jego rozszerzenie czy zmianę Tier. W bardziej wymagających przypadkach jest również możliwe dołączenie dodatkowego dysku o wybranej konfiguracji do istniejącej maszyny wirtualnej.
# Modyfikacja parametrów
Jeśli znasz identyfikator (ID) dysku i chciałbyś zmienić jego Tier lub rozmiar będzie to możliwe poprzez serię zapytań do poszczególnych zasobów. Przykłady wywołań możesz zobaczyć w bocznej ramce.
# Żądanie
curl -X POST
--header 'Accept: application/json'
--header 'Authorization: Bearer 13b84fc142c7f0d240b52d32a91d8fd3'
'https://api.oktawave.com/services/disks/48763/change_tier_ticket?tierId=49'
# Odpowiedź
{
"Id": 12345,
"CreationDate": "2016-07-15T12:09:08",
...
"EndDate": null,
"Status": {
"Id": 12345,
"Label": "Uruchomiona",
...
},
"OperationType": {
"Id": 12345,
"Label": "Przenoszenie dysku",
...
},
"ObjectId": 12345,
"ObjectType": {
"Id": 12345,
"Label": "Dysk",
...
},
"Progress": 0
}
# Sieć
Za pomocą API Oktawave można dowolnie łączyć maszyny wirtualne w sieci prywatne, jak również zarządzać dodatkowymi interfejsami czy adresami IP.
# IP
Adresy IP dodawane do maszyn wirtualnych są zawsze adresami publicznymi. Adres IP może być zarezerwowany przez użytkownika, a później dowolnie przenoszony pomiędzy maszynami. W sytuacji dodania nowego adresu bez podania jego identyfikatora (ID) jest nadawany losowy adres z puli.
# Żądanie
curl -X POST
--header 'Accept: application/json'
--header 'Authorization: Bearer 13b84fc142c7f0d240b52d32a91d8fd3'
'https://api.oktawave.com/services/instances/37707/attach_ip_ticket'
# Odpowiedź
{
"Id": 12345,
"CreationDate": "2016-07-15T12:05:20",
...
"EndDate": null,
"Status": {
"Id": 12345,
"Label": "Uruchomiona",
...
},
"OperationType": {
"Id": 12345,
"Label": "Rekonfiguracja",
...
},
"ObjectId": 12345,
"ObjectType": {
"Id": 12345,
"Label": "Instancja",
...
},
"Progress": 0
}
# Sieci OPN
W Oktawave podczas zarządzania maszynami wirtualnymi istnieje możliwość łączenia je w sieci prywatne, czyli OPN (Oktawave Private Network). Ma to na celu ograniczenie komunikacji tylko do wybranych maszyn, bez dostępu z sieci zewnętrznej. Dodanie maszyny wirtualnej do istniejącej sieci polega na wywołaniu zasobu POST /instances/{id}/attach_opn_ticket
- jest wtedy do niej dołączany adres prywatny, automatycznie skonfigurowany do działania w wybranej sieci.
# Żądanie
curl -X POST
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'Authorization: Bearer 514c574e1ee7e92651555125d403c37' -d '
{
"OpnId": 12345
}
' 'https://api.oktawave.com/services/instances/12345/attach_opn_ticket'
# Odpowiedź
{
"Id": 12345,
"CreationDate": "2016-07-11T10:40:28",
"CreationUser": {
"Id": 12345
},
"EndDate": null,
"Status": {
"Id": 12345,
"Label": "Uruchomiona",
...
},
"OperationType": {
"Id": 12345,
"Label": "Rekonfiguracja",
...
},
"ObjectId": 12345,
"ObjectType": {
"Id": 12345,
"Label": "Instancja",
...
},
"Progress": 0
}
← Autoryzacja Słowniki →