Browse Source

added egress as pull change

worker-9 4 years ago
parent
commit
095ff2fbfc
4 changed files with 33 additions and 4 deletions
  1. 2 2
      controllers/nodeHttpController.go
  2. 31 0
      functions/helpers.go
  3. 0 1
      models/node.go
  4. 0 1
      netclient/functions/checkin.go

+ 2 - 2
controllers/nodeHttpController.go

@@ -558,7 +558,7 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
 	if err = database.Insert(key, string(nodeData), database.NODES_TABLE_NAME); err != nil {
 		return models.Node{}, err
 	}
-	if err = functions.NetworkNodesUpdateAction(node.Network, models.NODE_EGRESS_CHANGE); err != nil {
+	if err = functions.NetworkNodesUpdatePullChanges(node.Network); err != nil {
 		return models.Node{}, err
 	}
 	return node, nil
@@ -617,7 +617,7 @@ func DeleteEgressGateway(network, macaddress string) (models.Node, error) {
 	if err = database.Insert(key, string(data), database.NODES_TABLE_NAME); err != nil {
 		return models.Node{}, err
 	}
-	if err = functions.NetworkNodesUpdateAction(network, models.NODE_EGRESS_CHANGE); err != nil {
+	if err = functions.NetworkNodesUpdatePullChanges(network); err != nil {
 		return models.Node{}, err
 	}
 	return node, nil

+ 31 - 0
functions/helpers.go

@@ -266,6 +266,37 @@ func NetworkNodesUpdateAction(networkName string, action string) error {
 	return nil
 }
 
+func NetworkNodesUpdatePullChanges(networkName string) error {
+
+	collections, err := database.FetchRecords(database.NODES_TABLE_NAME)
+	if err != nil {
+		if database.IsEmptyRecord(err) {
+			return nil
+		}
+		return err
+	}
+
+	for _, value := range collections {
+		var node models.Node
+		err := json.Unmarshal([]byte(value), &node)
+		if err != nil {
+			fmt.Println("error in node address assignment!")
+			return err
+		}
+		if node.Network == networkName {
+			node.PullChanges = "yes"
+			data, err := json.Marshal(&node)
+			if err != nil {
+				return err
+			}
+			node.SetID()
+			database.Insert(node.ID, string(data), database.NODES_TABLE_NAME)
+		}
+	}
+
+	return nil
+}
+
 func UpdateNetworkLocalAddresses(networkName string) error {
 
 	collection, err := database.FetchRecords(database.NODES_TABLE_NAME)

+ 0 - 1
models/node.go

@@ -20,7 +20,6 @@ const TEN_YEARS_IN_SECONDS = 300000000
 const NODE_UPDATE_KEY = "updatekey"
 const NODE_DELETE = "delete"
 const NODE_IS_PENDING = "pending"
-const NODE_EGRESS_CHANGE = "egresschange"
 const NODE_NOOP = "noop"
 
 var seededRand *rand.Rand = rand.New(

+ 0 - 1
netclient/functions/checkin.go

@@ -99,7 +99,6 @@ func checkNodeActions(node *models.Node, network string, servercfg config.Server
 			log.Println("Unable to process reset keys request:", err)
 			return ""
 		}
-		return ""
 	}
 	if node.Action == models.NODE_DELETE || localNode.Action == models.NODE_DELETE {
 		err := LeaveNetwork(network)