|
@@ -11,6 +11,7 @@ import (
|
|
"github.com/gravitl/netmaker/logic"
|
|
"github.com/gravitl/netmaker/logic"
|
|
"github.com/gravitl/netmaker/models"
|
|
"github.com/gravitl/netmaker/models"
|
|
"github.com/gravitl/netmaker/mq"
|
|
"github.com/gravitl/netmaker/mq"
|
|
|
|
+ "golang.org/x/exp/slog"
|
|
)
|
|
)
|
|
|
|
|
|
// RelayHandlers - handle EE Relays
|
|
// RelayHandlers - handle EE Relays
|
|
@@ -71,11 +72,16 @@ func createRelay(w http.ResponseWriter, r *http.Request) {
|
|
//for _, relayed := range relayedClients {
|
|
//for _, relayed := range relayedClients {
|
|
//mq.PubPeersForRelayedNode(relayed, relay, peers)
|
|
//mq.PubPeersForRelayedNode(relayed, relay, peers)
|
|
//}
|
|
//}
|
|
- clients := peers
|
|
|
|
- for _, client := range clients {
|
|
|
|
- mq.PubPeerUpdate(&client, &relay, peers)
|
|
|
|
- }
|
|
|
|
- logger.Log(1, r.Header.Get("user"), "created relay on node", relayRequest.NodeID, "on network", relayRequest.NetID)
|
|
|
|
|
|
+ //clients := peers
|
|
|
|
+ go func() {
|
|
|
|
+ for _, client := range peers {
|
|
|
|
+ update := models.PeerAction{
|
|
|
|
+ Peers: logic.GetPeerUpdate(&client.Host),
|
|
|
|
+ }
|
|
|
|
+ mq.PubPeerUpdateToHost(&client.Host, update)
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+ slog.Info("created relay on node", "user", r.Header.Get("user"), "node", relayRequest.NodeID, "network", relayRequest.NetID)
|
|
apiNode := relayNode.ConvertToAPINode()
|
|
apiNode := relayNode.ConvertToAPINode()
|
|
w.WriteHeader(http.StatusOK)
|
|
w.WriteHeader(http.StatusOK)
|
|
json.NewEncoder(w).Encode(apiNode)
|
|
json.NewEncoder(w).Encode(apiNode)
|
|
@@ -97,7 +103,7 @@ func deleteRelay(w http.ResponseWriter, r *http.Request) {
|
|
var params = mux.Vars(r)
|
|
var params = mux.Vars(r)
|
|
nodeid := params["nodeid"]
|
|
nodeid := params["nodeid"]
|
|
netid := params["network"]
|
|
netid := params["network"]
|
|
- updateClients, node, err := logic.DeleteRelay(netid, nodeid)
|
|
|
|
|
|
+ _, node, err := logic.DeleteRelay(netid, nodeid)
|
|
if err != nil {
|
|
if err != nil {
|
|
logger.Log(0, r.Header.Get("user"), "error decoding request body: ", err.Error())
|
|
logger.Log(0, r.Header.Get("user"), "error decoding request body: ", err.Error())
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
|
@@ -105,29 +111,15 @@ func deleteRelay(w http.ResponseWriter, r *http.Request) {
|
|
}
|
|
}
|
|
logger.Log(1, r.Header.Get("user"), "deleted relay server", nodeid, "on network", netid)
|
|
logger.Log(1, r.Header.Get("user"), "deleted relay server", nodeid, "on network", netid)
|
|
go func() {
|
|
go func() {
|
|
- //update relayHost node
|
|
|
|
- relayHost, err := logic.GetHost(node.HostID.String())
|
|
|
|
- if err == nil {
|
|
|
|
- if err := mq.NodeUpdate(&node); err != nil {
|
|
|
|
- logger.Log(1, "relay node update", relayHost.Name, "on network", node.Network, ": ", err.Error())
|
|
|
|
- }
|
|
|
|
- for _, relayedClient := range updateClients {
|
|
|
|
- err = mq.NodeUpdate(&relayedClient.Node)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Log(1, "relayed node update ", relayedClient.Node.ID.String(), "on network", relayedClient.Node.Network, ": ", err.Error())
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- peers, err := logic.GetNetworkClients(node.Network)
|
|
|
|
- if err != nil {
|
|
|
|
- logger.Log(0, "error getting network nodes: ", err.Error())
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- clients := peers
|
|
|
|
- for _, client := range clients {
|
|
|
|
- mq.PubPeerUpdate(&client, nil, peers)
|
|
|
|
|
|
+ peers, err := logic.GetNetworkClients(node.Network)
|
|
|
|
+ if err != nil {
|
|
|
|
+ slog.Warn("error getting network clients: ", "error", err)
|
|
|
|
+ }
|
|
|
|
+ for _, client := range peers {
|
|
|
|
+ update := models.PeerAction{
|
|
|
|
+ Peers: logic.GetPeerUpdate(&client.Host),
|
|
}
|
|
}
|
|
|
|
+ mq.PubPeerUpdateToHost(&client.Host, update)
|
|
}
|
|
}
|
|
}()
|
|
}()
|
|
logger.Log(1, r.Header.Get("user"), "deleted relay on node", node.ID.String(), "on network", node.Network)
|
|
logger.Log(1, r.Header.Get("user"), "deleted relay on node", node.ID.String(), "on network", node.Network)
|