mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
set relayed nodes UDP to off and update them
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"github.com/gravitl/netmaker/logger"
|
||||
"github.com/gravitl/netmaker/logic"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"github.com/gravitl/netmaker/mq"
|
||||
)
|
||||
|
||||
func createRelay(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -27,6 +28,13 @@ func createRelay(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
logger.Log(1, r.Header.Get("user"), "created relay on node", relay.NodeID, "on network", relay.NetID)
|
||||
relayedNodes, err := logic.GetNodesByAddress(relay.NetID, relay.RelayAddrs)
|
||||
for _, node := range relayedNodes {
|
||||
err = mq.NodeUpdate(&node)
|
||||
if err != nil {
|
||||
logger.Log(1, "error sending update to relayed node ", node.Address, "on network", relay.NetID, ": ", err.Error())
|
||||
}
|
||||
}
|
||||
w.WriteHeader(http.StatusOK)
|
||||
json.NewEncoder(w).Encode(node)
|
||||
runUpdates(&node, true)
|
||||
|
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/gravitl/netmaker/database"
|
||||
"github.com/gravitl/netmaker/logger"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||
"github.com/gravitl/netmaker/servercfg"
|
||||
"github.com/gravitl/netmaker/validation"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
@@ -429,6 +430,21 @@ func GetNodeByMacAddress(network string, macaddress string) (models.Node, error)
|
||||
return node, nil
|
||||
}
|
||||
|
||||
// GetNodesByAddress - gets a node by mac address
|
||||
func GetNodesByAddress(network string, addresses []string) ([]models.Node, error) {
|
||||
var nodes []models.Node
|
||||
allnodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
return []models.Node{}, err
|
||||
}
|
||||
for _, node := range allnodes {
|
||||
if node.Network == network && ncutils.StringSliceContains(addresses, node.Address) {
|
||||
nodes = append(nodes, node)
|
||||
}
|
||||
}
|
||||
return nodes, nil
|
||||
}
|
||||
|
||||
// GetDeletedNodeByMacAddress - get a deleted node
|
||||
func GetDeletedNodeByMacAddress(network string, macaddress string) (models.Node, error) {
|
||||
|
||||
|
@@ -51,6 +51,10 @@ func SetRelayedNodes(yesOrno string, networkName string, addrs []string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
network, err := GetNetworkSettings(networkName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, value := range collections {
|
||||
|
||||
@@ -63,6 +67,11 @@ func SetRelayedNodes(yesOrno string, networkName string, addrs []string) error {
|
||||
for _, addr := range addrs {
|
||||
if addr == node.Address || addr == node.Address6 {
|
||||
node.IsRelayed = yesOrno
|
||||
if yesOrno == "yes" {
|
||||
node.UDPHolePunch = "no"
|
||||
} else {
|
||||
node.UDPHolePunch = network.DefaultUDPHolePunch
|
||||
}
|
||||
data, err := json.Marshal(&node)
|
||||
if err != nil {
|
||||
return err
|
||||
|
Reference in New Issue
Block a user