Networks
Le reti sono importanti strumenti che permettono la di collegare i propri server virtuali attraverso un canale sicuro, privato e isolato in maniera semplice e astratta.
Creare una rete
Per poter connettere i propri server a una rete, è innanzitutto necessario crearne una, per fare ciò è possibile utilizzare la seguente richiesta:
Richiesta HTTP
POST /ecs/v2/networks
Risposta HTTP
{
"status": "created",
"network": {
"id": 37,
"network_id": 17,
"name": "net000017", //nome identificativo della network
"active": true,
"created_at": "2024-11-19T08:12:13.884Z",
"deactivated_at": null,
"user": "admin" //utente a cui appartiene la network
}
}
Visualizzare le reti
È poi possibile visualizzare tutte le reti attive con la richiesta:
Richiesta HTTP
GET /ecs/v2/networks
Risposta HTTP
{
"status": "ok",
"networks": [
{
"id": 35,
"network_id": 15,
"name": "net000015",
"active": true,
"created_at": "2024-11-15T16:03:45.822Z",
"deactivated_at": null,
"user": "admin"
},
{
"id": 36,
"network_id": 16,
"name": "net000016",
"active": true,
"created_at": "2024-11-18T09:05:59.322Z",
"deactivated_at": null,
"user": "admin"
}
]
}
Visulizzare una rete specifica
In alternativa per visualizzare una rete specifica è possibile utilizzare la chiamata:
Richiesta HTTP
GET /ecs/v2/networks/{name}
Risposta HTTP
{
"status": "ok",
"network": {
"id": 37,
"network_id": 17,
"name": "net000017",
"active": true,
"created_at": "2024-11-19T08:12:13.884Z",
"deactivated_at": null,
"user": "admin"
}
}
Rimuovere una rete
La possibilità di rimuovere una rete è abilitata esclusivamente se non sono presenti collegamenti attivi a essa. Per rimuovere uno script è possibile utilizzare la seguente chiamata API:
Richiesta HTTP
DELETE /ecs/v2/networks/net000017
Risposta HTTP
{
"status": "no_content"
}
Potresti ricevere i seguenti errori
Status Code | Messaggio | Spiegazione |
---|---|---|
400 | can't delete network until there are vlan attached to it | impossibile rimuovere una rete fino a quando ci sono collegamenti attivi ad essa |
vlans
Per connettere un server a una rete è necessario generare un vlan tra il server e la rete desiderata.
La creazione del primo "collegamento" o in altre parole la creazione della prima vlan tra un server e una rete comporterà il riavvio del server.
Il riavvio sarà anche necessario per rimuovere ogni vlan presente tra una rete e un server.
Creare una vlan
Per poter utilizzare una vlan è necessario crearla utilizzando la seguente richiesta:
Richiesta HTTP
POST /ecs/v2/servers/{servername}/networks/{networkname}/vlans
{
"vlan_id": 1, //l'id della vlan
"pvid": true //se la vlan è pvid dell'interfaccia su cui è ospite
}
Risposta HTTP
{
"status": "creating",
"action": {
"id": 1552,
"status": "in-progress",
"user": "admin",
"created_at": "2024-11-20T09:59:46.353012+00:00",
"started_at": null,
"completed_at": null,
"resource": "ec200322-net000022",
"resource_type": "network",
"type": "add_vlan",
"progress": 0
}
}
Potresti ricevere i seguenti errori:
Status Code | Messaggio | Spiegazione |
---|---|---|
400 | vlan with id {vlan_id} already exists in network '{vxlanname}' | la vlan che si deridera creare già esiste |
400 | vlan with id {vlan_id} not in 1-4094 | l'id della vlan è fuori dal range consentito |
Info
La configurazione presa in esempio è la più classica e viene generata tramite pannello all'aggiunta di una nuova interfaccia.
Creare un vlan range
Nel caso si voglio creare velocemente un intervallo di vlan è disponibile la seguente richiesta:
Richiesta HTTP
POST /ecs/v2/servers/{servername}/networks/{networkname}/vlans
{
"vlans": "1-100",
}
Risposta HTTP
{
"status": "creating",
"action": {
"id": 1552,
"status": "in-progress",
"user": "admin",
"created_at": "2024-11-20T09:59:46.353012+00:00",
"started_at": null,
"completed_at": null,
"resource": "ec200322-net000022",
"resource_type": "network",
"type": "add_vlan",
"progress": 0
}
}
Potresti ricevere i seguenti errori:
Status Code | Messaggio | Spiegazione |
---|---|---|
400 | when using vlans range, vlans_range field must be a string | il campo 'vlans' deve essere una stringa |
400 | when using vlans range, must use '-' as divider | il campo 'vlans' deve contenere '-' |
400 | invalid range format using vlans range, only one divider '-' must be inserted | il campo 'vlans' deve contenere solo un '-' |
400 | invalid range format using vlans range, start and end must be digits | nel campo 'vlans' il valore precendente e successivo ad '-' deve esse un numero |
400 | invalid range format using vlans range, end must be greater than start | nel campo 'vlans' il valore successivo ad '-' deve essere maggiore del valore precedente |
400 | invalid range format using vlans range, start must be greater than 0 and less than 4093 | nel campo 'vlans' il valore precedente a '-' deve essere maggiore di 0 e minore uguale di 4093 |
400 | invalid range format using vlans range, end must be greater than 1 and less than 4094 | nel campo 'vlans' il valore successivo a '-' deve essere maggiore uguale di 1 e minore uguale di 4094 |
400 | when using vlans range, 'pvid' field is not supported | quando si utilizza il campo 'vlans' il campo 'pvid' non è supportato |
400 | when using vlans range, 'vlan_id' field is not supported | quando si utilizza il campo 'vlans' il campo 'vlan_id' non è supportato |
Ottenere tutte le vlan di un server su una rete
Dopo aver creato delle vlan è possibile visualizzarle con la seguente richiesta:
Richiesta HTTP
GET /ecs/v2/servers/{servername}/networks/{networkname}/vlans
Risposta HTTP
{
"status": "ok",
"vlans": [
{
"id": 132021,
"vlan_id": 1,
"pvid": true,
"status": "ok",
"active": true,
"created_at": "2024-11-20T09:59:46.347Z",
"deactivated_at": null,
"mac_address": "52:54:00:14:f9:1e",
"network": "net000022",
"server": "ec200322"
},
{
"id": 132022,
"vlan_id": 2,
"pvid": false,
"status": "ok",
"active": true,
"created_at": "2024-11-20T10:17:52.338Z",
"deactivated_at": null,
"mac_address": "52:54:00:14:f9:1e",
"network": "net000022",
"server": "ec200322"
}
]
}
Aggiornare una vlan
Per aggiornare una vlan e definire un nuovo PVID è disponibile la seguente richiesta:
Richiesta HTTP
PATCH /ecs/v2/servers/{servername}/networks/{networkname}/vlans/{vlan_id}
{
"pvid": true
}
Risposta HTTP
{
"status": "updating",
"vlan": {
"id": 132022,
"server": "ec200322",
"network": "net000022",
"vlan_id": 2,
"status": "updating",
"active": true,
"created_at": "2024-11-20T10:17:52.338Z",
"deactivated_at": null,
"mac_address": "52:54:00:14:f9:1e",
"pvid": true,
"user": "admin"
},
"action": {
"id": 1554,
"status": "in-progress",
"user": "admin",
"created_at": "2024-11-20T10:24:57.106901+00:00",
"started_at": null,
"completed_at": null,
"resource": "ec200322-net000022",
"resource_type": "network",
"type": "update_vlan",
"progress": 0
}
}
Attenzione
Una vlan deve avere come stato ok per poter essere aggiornata o rimossa
Rimuovere una vlan
Ovviamente è anche possibile rimuovere una vlan, per fare ciò è disponibile la seguente richiesta:
Richiesta HTTP
DELETE /ecs/v2/servers/{servername}/networks/{networkname}/vlans/{vlan_id}
Rimuovere un range di vlan
Allo stesso modo è possibile rimuovere un range di vlan con la seguente chiamata:
Richiesta HTTP
DELETE /ecs/v2/servers/{servername}/networks/{networkname}/vlans/{vlan_id_start}-{vlan_id_end}
Potresti ricevere i seguenti errori:
Status Code | Messaggio | Spiegazione |
---|---|---|
400 | when using vlans range, vlans_range field must be a string | il campo 'vlans' deve essere una stringa |
400 | when using vlans range, must use '-' as divider | il campo 'vlans' deve contenere '-' |
400 | invalid range format using vlans range, only one divider '-' must be inserted | il campo 'vlans' deve contenere solo un '-' |
400 | invalid range format using vlans range, start and end must be digits | nel campo 'vlans' il valore precendente e successivo ad '-' deve esse un numero |
400 | invalid range format using vlans range, end must be greater than start | nel campo 'vlans' il valore successivo ad '-' deve essere maggiore del valore precedente |
400 | invalid range format using vlans range, start must be greater than 0 and less than 4093 | nel campo 'vlans' il valore precedente a '-' deve essere maggiore di 0 e minore uguale di 4093 |
400 | invalid range format using vlans range, end must be greater than 1 and less than 4094 | nel campo 'vlans' il valore successivo a '-' deve essere maggiore uguale di 1 e minore uguale di 4094 |