diff --git a/controllers/nodeHttpController.go b/controllers/nodeHttpController.go index b898f95a..a6d4fba3 100644 --- a/controllers/nodeHttpController.go +++ b/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 diff --git a/functions/helpers.go b/functions/helpers.go index d6457d17..590bda7e 100644 --- a/functions/helpers.go +++ b/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) diff --git a/models/node.go b/models/node.go index 8176aaa7..be1b633f 100644 --- a/models/node.go +++ b/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( diff --git a/netclient/functions/checkin.go b/netclient/functions/checkin.go index 6c23087c..9c7deee7 100644 --- a/netclient/functions/checkin.go +++ b/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)