mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-06 01:07:41 +08:00
GRA-414: added additional logs for extclient controllers
This commit is contained in:
@@ -43,8 +43,11 @@ func getNetworkExtClients(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
var extclients []models.ExtClient
|
var extclients []models.ExtClient
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
extclients, err := logic.GetNetworkExtClients(params["network"])
|
network := params["network"]
|
||||||
|
extclients, err := logic.GetNetworkExtClients(network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to get ext clients for network [%s]: %v", network, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -64,6 +67,8 @@ func getAllExtClients(w http.ResponseWriter, r *http.Request) {
|
|||||||
networksSlice := []string{}
|
networksSlice := []string{}
|
||||||
marshalErr := json.Unmarshal([]byte(headerNetworks), &networksSlice)
|
marshalErr := json.Unmarshal([]byte(headerNetworks), &networksSlice)
|
||||||
if marshalErr != nil {
|
if marshalErr != nil {
|
||||||
|
logger.Log(0, "error unmarshalling networks: ",
|
||||||
|
marshalErr.Error())
|
||||||
returnErrorResponse(w, r, formatError(marshalErr, "internal"))
|
returnErrorResponse(w, r, formatError(marshalErr, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -72,6 +77,7 @@ func getAllExtClients(w http.ResponseWriter, r *http.Request) {
|
|||||||
if networksSlice[0] == ALL_NETWORK_ACCESS {
|
if networksSlice[0] == ALL_NETWORK_ACCESS {
|
||||||
clients, err = functions.GetAllExtClients()
|
clients, err = functions.GetAllExtClients()
|
||||||
if err != nil && !database.IsEmptyRecord(err) {
|
if err != nil && !database.IsEmptyRecord(err) {
|
||||||
|
logger.Log(0, "failed to get all extclients: ", err.Error())
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -100,6 +106,8 @@ func getExtClient(w http.ResponseWriter, r *http.Request) {
|
|||||||
network := params["network"]
|
network := params["network"]
|
||||||
client, err := logic.GetExtClient(clientid, network)
|
client, err := logic.GetExtClient(clientid, network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"), fmt.Sprintf("failed to get extclient for [%s] on network [%s]: %v",
|
||||||
|
clientid, network, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -118,13 +126,16 @@ func getExtClientConf(w http.ResponseWriter, r *http.Request) {
|
|||||||
networkid := params["network"]
|
networkid := params["network"]
|
||||||
client, err := logic.GetExtClient(clientid, networkid)
|
client, err := logic.GetExtClient(clientid, networkid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"), fmt.Sprintf("failed to get extclient for [%s] on network [%s]: %v",
|
||||||
|
clientid, networkid, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
gwnode, err := logic.GetNodeByID(client.IngressGatewayID)
|
gwnode, err := logic.GetNodeByID(client.IngressGatewayID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, r.Header.Get("user"), "Could not retrieve Ingress Gateway Node", client.IngressGatewayID)
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to get ingress gateway node [%s] info: %v", client.IngressGatewayID, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -197,6 +208,7 @@ Endpoint = %s
|
|||||||
if params["type"] == "qr" {
|
if params["type"] == "qr" {
|
||||||
bytes, err := qrcode.Encode(config, qrcode.Medium, 220)
|
bytes, err := qrcode.Encode(config, qrcode.Medium, 220)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(1, r.Header.Get("user"), "failed to encode qr code: ", err.Error())
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -204,6 +216,7 @@ Endpoint = %s
|
|||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
_, err = w.Write(bytes)
|
_, err = w.Write(bytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(1, r.Header.Get("user"), "response writer error (qr) ", err.Error())
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -217,6 +230,7 @@ Endpoint = %s
|
|||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
_, err := fmt.Fprint(w, config)
|
_, err := fmt.Fprint(w, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(1, r.Header.Get("user"), "response writer error (file) ", err.Error())
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@@ -239,7 +253,10 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
|
|||||||
nodeid := params["nodeid"]
|
nodeid := params["nodeid"]
|
||||||
ingressExists := checkIngressExists(nodeid)
|
ingressExists := checkIngressExists(nodeid)
|
||||||
if !ingressExists {
|
if !ingressExists {
|
||||||
returnErrorResponse(w, r, formatError(errors.New("ingress does not exist"), "internal"))
|
err := errors.New("ingress does not exist")
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to create extclient on network [%s]: %v", networkName, err))
|
||||||
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,6 +265,8 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
|
|||||||
extclient.IngressGatewayID = nodeid
|
extclient.IngressGatewayID = nodeid
|
||||||
node, err := logic.GetNodeByID(nodeid)
|
node, err := logic.GetNodeByID(nodeid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to get ingress gateway node [%s] info: %v", nodeid, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -260,6 +279,8 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
err = logic.CreateExtClient(&extclient)
|
err = logic.CreateExtClient(&extclient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to create new ext client on network [%s]: %v", networkName, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -278,25 +299,43 @@ func updateExtClient(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
var newExtClient models.ExtClient
|
var newExtClient models.ExtClient
|
||||||
var oldExtClient models.ExtClient
|
var oldExtClient models.ExtClient
|
||||||
_ = json.NewDecoder(r.Body).Decode(&newExtClient)
|
err := json.NewDecoder(r.Body).Decode(&newExtClient)
|
||||||
|
|
||||||
key, err := logic.GetRecordKey(params["clientid"], params["network"])
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"), "error decoding request body: ",
|
||||||
|
err.Error())
|
||||||
|
returnErrorResponse(w, r, formatError(err, "badrequest"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
clientid := params["clientid"]
|
||||||
|
network := params["network"]
|
||||||
|
key, err := logic.GetRecordKey(clientid, network)
|
||||||
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to get record key for client [%s], network [%s]: %v",
|
||||||
|
clientid, network, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
data, err := database.FetchRecord(database.EXT_CLIENT_TABLE_NAME, key)
|
data, err := database.FetchRecord(database.EXT_CLIENT_TABLE_NAME, key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to fetch ext client record key [%s] from db for client [%s], network [%s]: %v",
|
||||||
|
key, clientid, network, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err = json.Unmarshal([]byte(data), &oldExtClient); err != nil {
|
if err = json.Unmarshal([]byte(data), &oldExtClient); err != nil {
|
||||||
|
logger.Log(0, "error unmarshalling extclient: ",
|
||||||
|
err.Error())
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var changedEnabled = newExtClient.Enabled != oldExtClient.Enabled // indicates there was a change in enablement
|
var changedEnabled = newExtClient.Enabled != oldExtClient.Enabled // indicates there was a change in enablement
|
||||||
newclient, err := logic.UpdateExtClient(newExtClient.ClientID, params["network"], newExtClient.Enabled, &oldExtClient)
|
newclient, err := logic.UpdateExtClient(newExtClient.ClientID, params["network"], newExtClient.Enabled, &oldExtClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to update ext client [%s], network [%s]: %v",
|
||||||
|
clientid, network, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -320,22 +359,28 @@ func deleteExtClient(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
// get params
|
// get params
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
|
clientid := params["clientid"]
|
||||||
extclient, err := logic.GetExtClient(params["clientid"], params["network"])
|
network := params["network"]
|
||||||
|
extclient, err := logic.GetExtClient(clientid, network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = errors.New("Could not delete extclient " + params["clientid"])
|
err = errors.New("Could not delete extclient " + params["clientid"])
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to delete extclient [%s],network [%s]: %v", clientid, network, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ingressnode, err := logic.GetNodeByID(extclient.IngressGatewayID)
|
ingressnode, err := logic.GetNodeByID(extclient.IngressGatewayID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to get ingress gateway node [%s] info: %v", extclient.IngressGatewayID, err))
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = logic.DeleteExtClient(params["network"], params["clientid"])
|
err = logic.DeleteExtClient(params["network"], params["clientid"])
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
fmt.Sprintf("failed to delete extclient [%s],network [%s]: %v", clientid, network, err))
|
||||||
err = errors.New("Could not delete extclient " + params["clientid"])
|
err = errors.New("Could not delete extclient " + params["clientid"])
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
|
@@ -46,7 +46,7 @@ func getNetworks(w http.ResponseWriter, r *http.Request) {
|
|||||||
networksSlice := []string{}
|
networksSlice := []string{}
|
||||||
marshalErr := json.Unmarshal([]byte(headerNetworks), &networksSlice)
|
marshalErr := json.Unmarshal([]byte(headerNetworks), &networksSlice)
|
||||||
if marshalErr != nil {
|
if marshalErr != nil {
|
||||||
logger.Log(0, "error unmarshalling networks: ",
|
logger.Log(0, r.Header.Get("user"), "error unmarshalling networks: ",
|
||||||
marshalErr.Error())
|
marshalErr.Error())
|
||||||
returnErrorResponse(w, r, formatError(marshalErr, "badrequest"))
|
returnErrorResponse(w, r, formatError(marshalErr, "badrequest"))
|
||||||
return
|
return
|
||||||
@@ -56,7 +56,7 @@ func getNetworks(w http.ResponseWriter, r *http.Request) {
|
|||||||
if networksSlice[0] == ALL_NETWORK_ACCESS {
|
if networksSlice[0] == ALL_NETWORK_ACCESS {
|
||||||
allnetworks, err = logic.GetNetworks()
|
allnetworks, err = logic.GetNetworks()
|
||||||
if err != nil && !database.IsEmptyRecord(err) {
|
if err != nil && !database.IsEmptyRecord(err) {
|
||||||
logger.Log(0, "failed to fetch networks: ", err.Error())
|
logger.Log(0, r.Header.Get("user"), "failed to fetch networks: ", err.Error())
|
||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user