Piani
I piani servono a definire delle classi di risorse su cui costruire un server, ne esistono di diversi tipi:
- Shared CPU
- High Memory
- GPU
- NPU
Ogni tipologia rappresenta un prodotto diverso ma sono tutti attivabili tramite l'API ECS o il panello web ermes.
Ottenere tutti i Piani
Per ottenere tutti i piani disponibili al tuo utente è sufficiente utilizzare la seguente richiesta:
Richiesta HTTP
GET /ecs/v2/plans
Risposta HTTP
"status": "ok",
"plans": [
{
"id": 1, //plan id
"name": "ECS1", //plan name
"cpu": "1",
"ram": "1024",
"disk": "20",
"gpu": "0",
"gpu_label": null,
"hourly_price": 0.017, //price for hour
"montly_price": 12.0,
"windows": false, //is a windows plan
"host_type": "ECS", //required host type
"available": true, //plan active
"available_regions": [ //all region where a plan is active
{
"id": 1,
"location": "it-fr2",
"description": "Frosinone"
}
]
},
{
"id": 2,
"name": "ECS2",
"cpu": "2",
"ram": "2048",
"disk": "40",
"gpu": "0",
"gpu_label": null,
"hourly_price": 0.028,
"montly_price": 20.0,
"windows": false,
"host_type": "ECS",
"available": true,
"available_regions": [
{
"id": 1,
"location": "it-fr2",
"description": "Frosinone"
}
]
},
]
}
Attenzione
La presenza di una regione nella lista delle regioni disponibili non indica per forza che il piano sia realmente attivabile in quella location, ma solo che la regione è compatibile con lo specifico piano.
Piani realmente attivabili
Per sapere i piani realmente attivabili ed evitare possibili errori di mancanza di risorse è possibile utilizzare la seguente richiesta:
Richiesta HTTP
GET /ecs/v2/plans/availables
Risposta HTTP
{
"status": "ok",
"plans": [
{
"id": 1,
"name": "ECS1",
"cpu": "1",
"ram": "1024",
"disk": "20",
"gpu": "0",
"gpu_label": null,
"hourly_price": 0.017,
"montly_price": 12.0,
"windows": false,
"host_type": "ECS",
"available": true,
"os_availables": [ //con quali immagini base posso attivare il piano
{
"id": 1,
"name": "centos-7",
"creation_date": "2019-04-16T13:37:41+00:00",
"active_flag": true,
"status": "CD",
"uuid": "ffe2a034-7a44-4f51-9ae8-17fb354793f6",
"description": "CentOS Linux 7",
"notes": "Linux CentOS disk image",
"public": true,
"cloud_image": false,
"so_base": "centos",
"api_version": "v4",
"version": "7"
},
{
"id": 2,
"name": "debian-9",
"creation_date": "2019-04-18T12:34:08+00:00",
"active_flag": true,
"status": "CD",
"uuid": "6708cdc4-0c8d-4ccf-83c7-ae39bccaeb42",
"description": "Debian Linux 9",
"notes": "Linux Debian disk image",
"public": true,
"cloud_image": false,
"so_base": "debian",
"api_version": "v4",
"version": "9"
}
],
"region_availables": [ //in quali regioni posso attualmente attivare il piano
{
"region": "it-fr2",
"hosts": [ //serve a sapere su quale host fisico è attivabile la macchina
{
"host": "ecs911.swlab.seeweb.it",
"servers": []
},
{
"host": "ecs912.swlab.seeweb.it",
"servers": [ //server a sapere da quali server posso isolare il nuovo server
"ec000025"
]
}
]
}
]
}
...
]
}
Info
Per la maggior parte delle attivazioni il campo 'host' può risultare inutile ma se si vuole utilizzare L'isolamento risulta estremamente importate.
Vediamo l'esempio sopra se volessi isolare il nuovo server da ec000025 so che potrei farlo perche oltre a lui è presente un altro host disponibile per il mio piano, in caso ci fosse stato un solo host non mi sarebbe stato possibile utilizzare l'isolamento, sarebbe infatti risultato in un errore per mancanza di risorse
Ricorda utilizzando l'isolamento stai esplicitamente dicendo di non cercare risorse libere su host fisici di altri server virtuali in tuo possesso, verifica quindi che sia realmente utilizzabile prima di farne uso via API