added egress as pull change

This commit is contained in:
worker-9 2021-08-06 13:47:39 -04:00
parent 94cf8bfbc6
commit 095ff2fbfc
4 changed files with 33 additions and 4 deletions

View file

@ -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

View file

@ -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)

View file

@ -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(

View file

@ -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)