Bläddra i källkod

invalidate node cache

Tobias Cudnik 2 år sedan
förälder
incheckning
aca435abdd
5 ändrade filer med 48 tillägg och 0 borttagningar
  1. 12 0
      logic/gateway.go
  2. 4 0
      logic/legacy.go
  3. 16 0
      logic/networks.go
  4. 12 0
      logic/relay.go
  5. 4 0
      logic/util.go

+ 12 - 0
logic/gateway.go

@@ -57,6 +57,10 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
 	if err != nil {
 		return node, err
 	}
+	// invalidate cache
+	CacheNodesMutex.Lock()
+	CacheNodes = nil
+	CacheNodesMutex.Unlock()
 	if err = database.Insert(node.ID.String(), string(nodeData), database.NODES_TABLE_NAME); err != nil {
 		return models.Node{}, err
 	}
@@ -132,6 +136,10 @@ func CreateIngressGateway(netid string, nodeid string, ingress models.IngressReq
 	if err != nil {
 		return models.Node{}, err
 	}
+	// invalidate cache
+	CacheNodesMutex.Lock()
+	CacheNodes = nil
+	CacheNodesMutex.Unlock()
 	err = database.Insert(node.ID.String(), string(data), database.NODES_TABLE_NAME)
 	if err != nil {
 		return models.Node{}, err
@@ -178,6 +186,10 @@ func DeleteIngressGateway(networkName string, nodeid string) (models.Node, bool,
 	if err != nil {
 		return models.Node{}, false, removedClients, err
 	}
+	// invalidate cache
+	CacheNodesMutex.Lock()
+	CacheNodes = nil
+	CacheNodesMutex.Unlock()
 	err = database.Insert(node.ID.String(), string(data), database.NODES_TABLE_NAME)
 	if err != nil {
 		return models.Node{}, wasFailover, removedClients, err

+ 4 - 0
logic/legacy.go

@@ -24,6 +24,10 @@ func IsLegacyNode(nodeID string) bool {
 // CheckAndRemoveLegacyNode - checks for legacy node and removes
 func CheckAndRemoveLegacyNode(nodeID string) bool {
 	if IsLegacyNode(nodeID) {
+		// invalidate cache
+		CacheNodesMutex.Lock()
+		CacheNodes = nil
+		CacheNodesMutex.Unlock()
 		if err := database.DeleteRecord(database.NODES_TABLE_NAME, nodeID); err == nil {
 			return true
 		}

+ 16 - 0
logic/networks.go

@@ -356,6 +356,10 @@ func UpdateNetworkLocalAddresses(networkName string) error {
 				logger.Log(1, "error in node  address assignment!")
 				return err
 			}
+			// invalidate cache
+			CacheNodesMutex.Lock()
+			CacheNodes = nil
+			CacheNodesMutex.Unlock()
 			database.Insert(node.ID.String(), string(newNodeData), database.NODES_TABLE_NAME)
 		}
 	}
@@ -389,6 +393,10 @@ func RemoveNetworkNodeIPv6Addresses(networkName string) error {
 			if err != nil {
 				return err
 			}
+			// invalidate cache
+			CacheNodesMutex.Lock()
+			CacheNodes = nil
+			CacheNodesMutex.Unlock()
 			database.Insert(node.ID.String(), string(data), database.NODES_TABLE_NAME)
 		}
 	}
@@ -430,6 +438,10 @@ func UpdateNetworkNodeAddresses(networkName string) error {
 			if err != nil {
 				return err
 			}
+			// invalidate cache
+			CacheNodesMutex.Lock()
+			CacheNodes = nil
+			CacheNodesMutex.Unlock()
 			database.Insert(node.ID.String(), string(data), database.NODES_TABLE_NAME)
 		}
 	}
@@ -471,6 +483,10 @@ func UpdateNetworkNodeAddresses6(networkName string) error {
 			if err != nil {
 				return err
 			}
+			// invalidate cache
+			CacheNodesMutex.Lock()
+			CacheNodes = nil
+			CacheNodesMutex.Unlock()
 			database.Insert(node.ID.String(), string(data), database.NODES_TABLE_NAME)
 		}
 	}

+ 12 - 0
logic/relay.go

@@ -38,6 +38,10 @@ func CreateRelay(relay models.RelayRequest) ([]models.Node, models.Node, error)
 	if err != nil {
 		return returnnodes, node, err
 	}
+	// invalidate cache
+	CacheNodesMutex.Lock()
+	CacheNodes = nil
+	CacheNodesMutex.Unlock()
 	if err = database.Insert(node.ID.String(), string(nodeData), database.NODES_TABLE_NAME); err != nil {
 		return returnnodes, models.Node{}, err
 	}
@@ -112,6 +116,10 @@ func SetRelayedNodes(setRelayed bool, networkName string, addrs []string) ([]mod
 				if err != nil {
 					return returnnodes, err
 				}
+				// invalidate cache
+				CacheNodesMutex.Lock()
+				CacheNodes = nil
+				CacheNodesMutex.Unlock()
 				database.Insert(node.ID.String(), string(data), database.NODES_TABLE_NAME)
 				returnnodes = append(returnnodes, node)
 			}
@@ -201,6 +209,10 @@ func DeleteRelay(network, nodeid string) ([]models.Node, models.Node, error) {
 	if err != nil {
 		return returnnodes, models.Node{}, err
 	}
+	// invalidate cache
+	CacheNodesMutex.Lock()
+	CacheNodes = nil
+	CacheNodesMutex.Unlock()
 	if err = database.Insert(nodeid, string(data), database.NODES_TABLE_NAME); err != nil {
 		return returnnodes, models.Node{}, err
 	}

+ 4 - 0
logic/util.go

@@ -61,6 +61,10 @@ func SetNetworkNodesLastModified(networkName string) error {
 	if err != nil {
 		return err
 	}
+	// invalidate cache
+	CacheNetworksMutex.Lock()
+	CacheNodes = nil
+	CacheNetworksMutex.Unlock()
 	err = database.Insert(networkName, string(data), database.NETWORKS_TABLE_NAME)
 	if err != nil {
 		return err