Browse Source

Merge pull request #801 from gravitl/cleanup_v0.11.0_comms_nodes

added comms checks
dcarns 3 years ago
parent
commit
c5a856d6c5
6 changed files with 33 additions and 10 deletions
  1. 1 0
      config/config.go
  2. 17 2
      controllers/node.go
  3. 5 0
      logic/nodes.go
  4. 1 7
      models/network.go
  5. 7 0
      servercfg/serverconf.go
  6. 2 1
      serverctl/serverctl.go

+ 1 - 0
config/config.go

@@ -76,6 +76,7 @@ type ServerConfig struct {
 	HostNetwork           string `yaml:"hostnetwork"`
 	CommsCIDR             string `yaml:"commscidr"`
 	MQPort                string `yaml:"mqport"`
+	CommsID               string `yaml:"commsid"`
 }
 
 // SQLConfig - Generic SQL Config

+ 17 - 2
controllers/node.go

@@ -263,6 +263,7 @@ func getNetworkNodes(w http.ResponseWriter, r *http.Request) {
 	var nodes []models.Node
 	var params = mux.Vars(r)
 	networkName := params["network"]
+
 	nodes, err := logic.GetNetworkNodes(networkName)
 	if err != nil {
 		returnErrorResponse(w, r, formatError(err, "internal"))
@@ -299,9 +300,9 @@ func getAllNodes(w http.ResponseWriter, r *http.Request) {
 		}
 	}
 	//Return all the nodes in JSON format
-	logger.Log(2, r.Header.Get("user"), "fetched nodes")
+	logger.Log(3, r.Header.Get("user"), "fetched all nodes they have access to")
 	w.WriteHeader(http.StatusOK)
-	json.NewEncoder(w).Encode(nodes)
+	json.NewEncoder(w).Encode(filterCommsNodes(nodes))
 }
 
 func getUsersNodes(user models.User) ([]models.Node, error) {
@@ -329,6 +330,10 @@ func getNode(w http.ResponseWriter, r *http.Request) {
 		returnErrorResponse(w, r, formatError(err, "internal"))
 		return
 	}
+	if logic.IsNodeInComms(&node) {
+		returnErrorResponse(w, r, formatError(err, "internal"))
+		return
+	}
 	logger.Log(2, r.Header.Get("user"), "fetched node", params["nodeid"])
 	w.WriteHeader(http.StatusOK)
 	json.NewEncoder(w).Encode(node)
@@ -659,3 +664,13 @@ func runServerUpdate(node *models.Node, ifaceDelta bool) error {
 	}
 	return nil
 }
+
+func filterCommsNodes(nodes []models.Node) []models.Node {
+	var filterdNodes []models.Node
+	for i := range nodes {
+		if !logic.IsNodeInComms(&nodes[i]) {
+			filterdNodes = append(filterdNodes, nodes[i])
+		}
+	}
+	return filterdNodes
+}

+ 5 - 0
logic/nodes.go

@@ -571,6 +571,11 @@ func IsLocalServer(node *models.Node) bool {
 	return node.ID != "" && local.ID == node.ID
 }
 
+// IsNodeInComms returns if node is in comms network or not
+func IsNodeInComms(node *models.Node) bool {
+	return node.Network == servercfg.GetCommsID()
+}
+
 // validateServer - make sure servers dont change port or address
 func validateServer(currentNode, newNode *models.Node) bool {
 	return (newNode.Address == currentNode.Address &&

+ 1 - 7
models/network.go

@@ -2,8 +2,6 @@ package models
 
 import (
 	"time"
-
-	"github.com/gravitl/netmaker/servercfg"
 )
 
 // Network Struct - contains info for a given unique network
@@ -54,11 +52,7 @@ func (network *Network) SetNetworkLastModified() {
 // Network.SetDefaults - sets default values for a network struct
 func (network *Network) SetDefaults() {
 	if network.DefaultUDPHolePunch == "" {
-		if servercfg.IsClientMode() != "off" {
-			network.DefaultUDPHolePunch = "yes"
-		} else {
-			network.DefaultUDPHolePunch = "no"
-		}
+		network.DefaultUDPHolePunch = "no"
 	}
 	if network.IsLocal == "" {
 		network.IsLocal = "no"

+ 7 - 0
servercfg/serverconf.go

@@ -35,6 +35,7 @@ func GetServerConfig() config.ServerConfig {
 	cfg.MQPort = GetMQPort()
 	cfg.GRPCHost = GetGRPCHost()
 	cfg.GRPCPort = GetGRPCPort()
+	cfg.GRPCConnString = GetGRPCConnString()
 	cfg.MasterKey = "(hidden)"
 	cfg.DNSKey = "(hidden)"
 	cfg.AllowedOrigin = GetAllowedOrigin()
@@ -89,6 +90,7 @@ func GetServerConfig() config.ServerConfig {
 	cfg.CommsCIDR = GetCommsCIDR()
 	services := strings.Join(GetPortForwardServiceList(), ",")
 	cfg.PortForwardServices = services
+	cfg.CommsID = GetCommsCIDR()
 
 	return cfg
 }
@@ -266,6 +268,11 @@ func GetCommsCIDR() string {
 	return "172.242.0.0/16"
 }
 
+// GetCommsID - gets the grpc port
+func GetCommsID() string {
+	return os.Getenv("COMMS_ID")
+}
+
 // GetMessageQueueEndpoint - gets the message queue endpoint
 func GetMessageQueueEndpoint() string {
 	host, _ := GetPublicIP()

+ 2 - 1
serverctl/serverctl.go

@@ -40,7 +40,6 @@ func InitializeCommsNetwork() error {
 	} else {
 		SyncServerNetwork(COMMS_NETID)
 	}
-	logger.Log(1, "comms network initialized")
 	return nil
 }
 
@@ -53,9 +52,11 @@ func setCommsID() {
 			logger.FatalLog("something went wrong when configuring comms id")
 		}
 		COMMS_NETID = commsid
+		os.Setenv("COMMS_ID", COMMS_NETID)
 		return
 	}
 	COMMS_NETID = currentid
+	os.Setenv("COMMS_ID", COMMS_NETID)
 }
 
 // InitServerNetclient - intializes the server netclient