12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package ganserv
- import (
- "encoding/json"
- "net/http"
- "imuslab.com/zoraxy/mod/utils"
- )
- func (m *NetworkManager) HandleAddNetwork(w http.ResponseWriter, r *http.Request) {
- networkName, err := utils.PostPara(r, "name")
- if err != nil {
- utils.SendErrorResponse(w, "invalid or empty name given")
- return
- }
- subnetMask, err := utils.PostPara(r, "subnetMask")
- if err != nil {
- utils.SendErrorResponse(w, "invalid or empty subnetMask given")
- return
- }
- // Generate a new UUID for this network
- networkUID := newNetworkID()
- // Create a new network object and add it to the list of networks
- newNetwork := &Network{
- UID: networkUID,
- Name: networkName,
- CIDR: subnetMask,
- Description: "",
- Nodes: []*Node{},
- }
- err = m.AddNetwork(newNetwork)
- if err != nil {
- utils.SendErrorResponse(w, err.Error())
- return
- }
- // Return the new network ID
- js, _ := json.Marshal(networkUID)
- utils.SendJSONResponse(w, string(js))
- }
- func (m *NetworkManager) HandleRemoveNetwork(w http.ResponseWriter, r *http.Request) {
- networkID, err := utils.PostPara(r, "id")
- if err != nil {
- utils.SendErrorResponse(w, "invalid or empty network id given")
- return
- }
- err = m.RemoveNetwork(networkID)
- if err != nil {
- utils.SendErrorResponse(w, err.Error())
- return
- }
- utils.SendOK(w)
- }
- func (m *NetworkManager) HandleListNetwork(w http.ResponseWriter, r *http.Request) {
- netid, _ := utils.GetPara(r, "netid")
- if netid != "" {
- targetNet, err := m.GetNetworkByID(netid)
- if err != nil {
- utils.SendErrorResponse(w, err.Error())
- return
- }
- js, _ := json.Marshal(targetNet)
- utils.SendJSONResponse(w, string(js))
- } else {
- // Return the list of networks as JSON
- js, _ := json.Marshal(m.networks)
- utils.SendJSONResponse(w, string(js))
- }
- }
|