mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
publish Node and Peer updates in go routine to ensure UI responses are not delayed
This commit is contained in:
@@ -420,6 +420,7 @@ func uncordonNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update"+err.Error())
|
||||||
}
|
}
|
||||||
@@ -427,6 +428,7 @@ func uncordonNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "uncordoned node", node.Name)
|
logger.Log(1, r.Header.Get("user"), "uncordoned node", node.Name)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
json.NewEncoder(w).Encode("SUCCESS")
|
json.NewEncoder(w).Encode("SUCCESS")
|
||||||
@@ -448,6 +450,7 @@ func createEgressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update"+err.Error())
|
||||||
}
|
}
|
||||||
@@ -455,6 +458,7 @@ func createEgressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "created egress gateway on node", gateway.NodeID, "on network", gateway.NetID)
|
logger.Log(1, r.Header.Get("user"), "created egress gateway on node", gateway.NodeID, "on network", gateway.NetID)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
json.NewEncoder(w).Encode(node)
|
json.NewEncoder(w).Encode(node)
|
||||||
@@ -470,6 +474,7 @@ func deleteEgressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update"+err.Error())
|
||||||
}
|
}
|
||||||
@@ -477,6 +482,7 @@ func deleteEgressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "deleted egress gateway", nodeid, "on network", netid)
|
logger.Log(1, r.Header.Get("user"), "deleted egress gateway", nodeid, "on network", netid)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
json.NewEncoder(w).Encode(node)
|
json.NewEncoder(w).Encode(node)
|
||||||
@@ -494,6 +500,7 @@ func createIngressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update"+err.Error())
|
||||||
}
|
}
|
||||||
@@ -501,6 +508,7 @@ func createIngressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "created ingress gateway on node", nodeid, "on network", netid)
|
logger.Log(1, r.Header.Get("user"), "created ingress gateway on node", nodeid, "on network", netid)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
json.NewEncoder(w).Encode(node)
|
json.NewEncoder(w).Encode(node)
|
||||||
@@ -515,6 +523,7 @@ func deleteIngressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
returnErrorResponse(w, r, formatError(err, "internal"))
|
returnErrorResponse(w, r, formatError(err, "internal"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update"+err.Error())
|
||||||
}
|
}
|
||||||
@@ -522,6 +531,7 @@ func deleteIngressGateway(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, "error publishing peer update "+err.Error())
|
logger.Log(1, "error publishing peer update "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "deleted ingress gateway", nodeid)
|
logger.Log(1, r.Header.Get("user"), "deleted ingress gateway", nodeid)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
json.NewEncoder(w).Encode(node)
|
json.NewEncoder(w).Encode(node)
|
||||||
@@ -588,6 +598,7 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, r.Header.Get("user"), "updated node", node.MacAddress, "on network", node.Network)
|
logger.Log(1, r.Header.Get("user"), "updated node", node.MacAddress, "on network", node.Network)
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
json.NewEncoder(w).Encode(newNode)
|
json.NewEncoder(w).Encode(newNode)
|
||||||
|
go func() {
|
||||||
if err := mq.NodeUpdate(&newNode); err != nil {
|
if err := mq.NodeUpdate(&newNode); err != nil {
|
||||||
logger.Log(1, "error publishing node update"+err.Error())
|
logger.Log(1, "error publishing node update"+err.Error())
|
||||||
}
|
}
|
||||||
@@ -596,6 +607,7 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
logger.Log(1, "error publishing peer update after node update"+err.Error())
|
logger.Log(1, "error publishing peer update after node update"+err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteNode(w http.ResponseWriter, r *http.Request) {
|
func deleteNode(w http.ResponseWriter, r *http.Request) {
|
||||||
@@ -616,9 +628,11 @@ func deleteNode(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
node.Action = models.NODE_DELETE
|
node.Action = models.NODE_DELETE
|
||||||
|
go func() {
|
||||||
if err := mq.NodeUpdate(&node); err != nil {
|
if err := mq.NodeUpdate(&node); err != nil {
|
||||||
logger.Log(1, "error publishing node delete "+err.Error())
|
logger.Log(1, "error publishing node delete "+err.Error())
|
||||||
}
|
}
|
||||||
|
}()
|
||||||
logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
|
logger.Log(1, r.Header.Get("user"), "Deleted node", nodeid, "from network", params["network"])
|
||||||
returnSuccessResponse(w, r, nodeid+" deleted.")
|
returnSuccessResponse(w, r, nodeid+" deleted.")
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user