mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-16 13:51:42 +08:00
added ability to disable ext clients
This commit is contained in:
@@ -228,6 +228,8 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
extclient.IngressGatewayEndpoint = node.Endpoint + ":" + strconv.FormatInt(int64(node.ListenPort), 10)
|
||||
// TODO, could rely on network template as well in future
|
||||
extclient.Enabled = true
|
||||
err = json.NewDecoder(r.Body).Decode(&extclient)
|
||||
if err != nil && !errors.Is(err, io.EOF) {
|
||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||
@@ -268,12 +270,21 @@ func updateExtClient(w http.ResponseWriter, r *http.Request) {
|
||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
newclient, err := logic.UpdateExtClient(newExtClient.ClientID, params["network"], &oldExtClient)
|
||||
var changedEnabled = newExtClient.Enabled != oldExtClient.Enabled // indicates there was a change in enablement
|
||||
newclient, err := logic.UpdateExtClient(newExtClient.ClientID, params["network"], newExtClient.Enabled, &oldExtClient)
|
||||
if err != nil {
|
||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||
return
|
||||
}
|
||||
logger.Log(1, r.Header.Get("user"), "updated client", newExtClient.ClientID)
|
||||
if changedEnabled { // need to send a peer update to the ingress node as enablement of one of it's clients has changed
|
||||
serverNode, err := logic.GetNetworkServerLocal(params["network"])
|
||||
if err == nil {
|
||||
if err = mq.PublishPeerUpdate(&serverNode); err != nil {
|
||||
logger.Log(1, "failed to send peer update after enablement change for ext client", newExtClient.ClientID)
|
||||
}
|
||||
}
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
json.NewEncoder(w).Encode(newclient)
|
||||
}
|
||||
|
Reference in New Issue
Block a user