Przykłady użycia
Wszystkie akcje, które można wykonać w panelu administratora Oktawave można również zrealizować poprzez zapytania API.
Ta sekcja zawiera praktyczne przykłady wykorzystania API Oktawave do zarządzania instancjami.

Instancje

W przypadku instancji wszystkie opisane operacje są operacjami asynchronicznymi i zwracają zlecenie

Lista

Aby pobrać listę wszystkich instancji przypisanych do konta zautoryzowanego użytkownika należy wywołać zasób GET /instances.

Żądanie

1
curl -X GET
2
--header 'Accept: application/json'
3
--header 'Authorization: Bearer 1ca85558f91697248735550dd97ee68a'
4
'https://api.oktawave.com/services/instances'
Copied!

Odpowiedź

1
{
2
"Items": [
3
{
4
"Id": 12345,
5
"Name": "Oktawave API test instance",
6
"CreationDate": "2016-04-27T11:33:38",
7
"CreationUser": {
8
"Id": 12345
9
},
10
...
11
},
12
...
13
],
14
"Meta": {
15
"Total": 5
16
}
17
}
Copied!

Tworzenie

Aby utworzyć instancję należy wywołać zasób POST /instances i przekazać do niego wszystkie wymagane parametry:
    AuthorizationMethodId - typ uwierzytelnienia na instancji (klucze SSH lub hasło),
    DiskClass - klasa dysku,
    DiskSize - rozmiar dysku (od 5 do 300GB),
    InstanceName - nazwa instancji,
    IPAddressId - w przypadku podania zostanie przypisany wybrany adres IP,
    SubregionId - subregion w którym ma zostać utworzona instancja,
    TemplateId - szablon, który ma być użyty do uruchomienia instancji,
    TypeId - typ instancji,
    InstancesCount - liczba tworzonych instancji (od 1 do 5),
Szablony instancji 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

1
curl -X POST
2
--header 'Content-Type: application/json'
3
--header 'Accept: application/json'
4
--header 'Authorization: Bearer 64b342bfa972798f365555204977f19f' -d '{
5
"AuthorizationMethodId": 1399,
6
"DiskClass": 48,
7
"DiskSize": 5,
8
"InstanceName": "Oktawave API test",
9
"InstancesCount": 1,
10
"IPAddressId": 0,
11
"SubregionId": 6,
12
"TemplateId": 452,
13
"TypeId": 1047
14
}' 'https://api.oktawave.com/services/instances'
Copied!

Odpowiedź

1
{
2
"Id": 12345,
3
"CreationDate": "2016-07-18T09:05:30",
4
"EndDate": null,
5
"Status": {
6
"Id": 135,
7
"Label": "Uruchomiona",
8
...
9
},
10
"OperationType": {
11
"Id": 138,
12
"Label": "Tworzenie instancji",
13
...
14
},
15
...
16
"Progress": 0
17
}
Copied!

Usuwanie

Usuwanie instancji można wykonać wywołując zasób DELETE /instances/{id}.

Żądanie

1
curl -X DELETE
2
--header 'Accept: application/json'
3
--header 'Authorization: Bearer 1ca85558f9555724873b920dd97ee68a'
4
'https://api.oktawave.com/services/instances/37752'
Copied!

Odpowiedź

1
{
2
"Id": 12345,
3
...
4
"EndDate": null,
5
"Status": {
6
"Id": 135,
7
"Label": "Uruchomiona",
8
...
9
},
10
"OperationType": {
11
"Id": 206,
12
"Label": "Usunięcie instancji",
13
...
14
},
15
...
16
"Progress": 0
17
}
Copied!

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

1
curl -X GET
2
--header 'Accept: application/json'
3
--header 'Authorization: Bearer 514c574e1ee7e92651375555d403c37'
4
'https://api.oktawave.com/services/exports/12345'
Copied!

Odpowiedź

1
{
2
"Id": 12345,
3
"Name": "export_test",
4
"CreationDate": "2016-07-11T10:17:39",
5
"StartDate": null,
6
"EndDate": null,
7
"Status": {
8
"Id": 12345,
9
"Label": "Oczekujący",
10
...
11
},
12
"OcsLocation": "api/",
13
"TotalSpaceCapacity": 0,
14
"Instance": {
15
"Id": 12345
16
},
17
"CreationUser": {
18
"Id": 12345
19
}
20
}
Copied!

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 instancji.

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

1
curl -X POST
2
--header 'Accept: application/json'
3
--header 'Authorization: Bearer 13b84fc142c7f0d240b52d32a91d8fd3'
4
'https://api.oktawave.com/services/disks/48763/change_tier_ticket?tierId=49'
Copied!

Odpowiedź

1
{
2
"Id": 12345,
3
"CreationDate": "2016-07-15T12:09:08",
4
...
5
"EndDate": null,
6
"Status": {
7
"Id": 12345,
8
"Label": "Uruchomiona",
9
...
10
},
11
"OperationType": {
12
"Id": 12345,
13
"Label": "Przenoszenie dysku",
14
...
15
},
16
"ObjectId": 12345,
17
"ObjectType": {
18
"Id": 12345,
19
"Label": "Dysk",
20
...
21
},
22
"Progress": 0
23
}
Copied!

Sieć

Za pomocą API Oktawave można dowolnie łączyć instancje w sieci prywatne, jak również zarządzać dodatkowymi interfejsami czy adresami IP.

IP

Adresy IP dodawane do instancji są zawsze adresami publicznymi. Adres IP może być zarezerwowany przez użytkownika, a później dowolnie przenoszony pomiędzy instancjami. W sytuacji dodania nowego adresu bez podania jego identyfikatora (ID) jest nadawany losowy adres z puli.

Żądanie

1
curl -X POST
2
--header 'Accept: application/json'
3
--header 'Authorization: Bearer 13b84fc142c7f0d240b52d32a91d8fd3'
4
'https://api.oktawave.com/services/instances/37707/attach_ip_ticket'
Copied!

Odpowiedź

1
{
2
"Id": 12345,
3
"CreationDate": "2016-07-15T12:05:20",
4
...
5
"EndDate": null,
6
"Status": {
7
"Id": 12345,
8
"Label": "Uruchomiona",
9
...
10
},
11
"OperationType": {
12
"Id": 12345,
13
"Label": "Rekonfiguracja",
14
...
15
},
16
"ObjectId": 12345,
17
"ObjectType": {
18
"Id": 12345,
19
"Label": "Instancja",
20
...
21
},
22
"Progress": 0
23
}
Copied!

Sieci OPN

W Oktawave podczas zarządzania instancjami istnieje możliwość łączenia je w sieci prywatne, czyli OPN (Oktawave Private Network). Ma to na celu ograniczenie komunikacji tylko do wybranych instancji, bez dostępu z sieci zewnętrznej. Dodanie instancji 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

1
curl -X POST
2
--header 'Content-Type: application/json'
3
--header 'Accept: application/json'
4
--header 'Authorization: Bearer 514c574e1ee7e92651555125d403c37' -d '
5
{
6
"OpnId": 12345
7
}
8
' 'https://api.oktawave.com/services/instances/12345/attach_opn_ticket'
Copied!

Odpowiedź

1
{
2
"Id": 12345,
3
"CreationDate": "2016-07-11T10:40:28",
4
"CreationUser": {
5
"Id": 12345
6
},
7
"EndDate": null,
8
"Status": {
9
"Id": 12345,
10
"Label": "Uruchomiona",
11
...
12
},
13
"OperationType": {
14
"Id": 12345,
15
"Label": "Rekonfiguracja",
16
...
17
},
18
"ObjectId": 12345,
19
"ObjectType": {
20
"Id": 12345,
21
"Label": "Instancja",
22
...
23
},
24
"Progress": 0
25
}
Copied!
Last modified 9mo ago