Bläddra i källkod

network update logic

afeiszli 3 år sedan
förälder
incheckning
68215679d5
4 ändrade filer med 38 tillägg och 6 borttagningar
  1. 1 0
      logic/nodes.go
  2. 11 6
      logic/pro/networkuser.go
  3. 7 0
      models/node.go
  4. 19 0
      serverctl/serverctl.go

+ 1 - 0
logic/nodes.go

@@ -475,6 +475,7 @@ func SetNodeDefaults(node *models.Node) {
 	node.SetDefaultIsK8S()
 	node.SetDefaultIsHub()
 	node.SetDefaultConnected()
+	node.SetDefaultACL()
 }
 
 // GetRecordKey - get record key

+ 11 - 6
logic/pro/networkuser.go

@@ -11,13 +11,18 @@ import (
 
 // InitializeNetworkUsers - intializes network users for a given network
 func InitializeNetworkUsers(network string) error {
-	newNetUserMap := make(promodels.NetworkUserMap)
-	netUserData, err := json.Marshal(newNetUserMap)
-	if err != nil {
-		return err
-	}
 
-	return database.Insert(network, string(netUserData), database.NETWORK_USER_TABLE_NAME)
+	_, err := database.FetchRecord(database.NETWORK_USER_TABLE_NAME, network)
+	if err != nil && database.IsEmptyRecord(err) {
+		newNetUserMap := make(promodels.NetworkUserMap)
+		netUserData, err := json.Marshal(newNetUserMap)
+		if err != nil {
+			return err
+		}
+
+		return database.Insert(network, string(netUserData), database.NETWORK_USER_TABLE_NAME)
+	}
+	return err
 }
 
 // GetNetworkUsers - gets the network users table

+ 7 - 0
models/node.go

@@ -142,6 +142,13 @@ func (node *Node) SetDefaultConnected() {
 	}
 }
 
+// Node.SetDefaultACL
+func (node *Node) SetDefaultACL() {
+	if node.DefaultACL == "" {
+		node.DefaultACL = "yes"
+	}
+}
+
 // Node.SetDefaultMTU - sets default MTU of a node
 func (node *Node) SetDefaultMTU() {
 	if node.MTU == 0 {

+ 19 - 0
serverctl/serverctl.go

@@ -10,6 +10,7 @@ import (
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/logic/acls"
 	"github.com/gravitl/netmaker/logic/acls/nodeacls"
+	"github.com/gravitl/netmaker/logic/pro"
 	"github.com/gravitl/netmaker/netclient/ncutils"
 	"github.com/gravitl/netmaker/servercfg"
 )
@@ -89,6 +90,10 @@ func SetDefaults() error {
 		return err
 	}
 
+	if err := setNetworkDefaults(); err != nil {
+		return err
+	}
+
 	return nil
 }
 
@@ -111,3 +116,17 @@ func setNodeDefaults() error {
 	}
 	return nil
 }
+
+func setNetworkDefaults() error {
+	// upgraded systems will not have NetworkUsers's set, which is why we need this function
+	networks, err := logic.GetNetworks()
+	if err != nil {
+		return err
+	}
+	for _, net := range networks {
+		if err = pro.InitializeNetworkUsers(net.NetID); err != nil {
+			logger.Log(0, "could not initialize NetworkUsers on network ", net.NetID)
+		}
+	}
+	return nil
+}