Sfoglia il codice sorgente

fix panic interface conversion

abhishek9686 5 mesi fa
parent
commit
f2144f4fd8
2 ha cambiato i file con 9 aggiunte e 3 eliminazioni
  1. 8 2
      logic/egress.go
  2. 1 1
      logic/peers.go

+ 8 - 2
logic/egress.go

@@ -1,6 +1,7 @@
 package logic
 
 import (
+	"encoding/json"
 	"net"
 
 	"github.com/gravitl/netmaker/models"
@@ -37,18 +38,23 @@ func ValidateEgressReq(e *models.Egress) bool {
 }
 
 func GetNodeEgressInfo(targetNode *models.Node) {
-	eli, _ := (&models.Egress{}).ListByNetwork()
+	eli, _ := (&models.Egress{Network: targetNode.Network}).ListByNetwork()
 	req := models.EgressGatewayRequest{
 		NodeID: targetNode.ID.String(),
 		NetID:  targetNode.Network,
 	}
 	for _, e := range eli {
 		if metric, ok := e.Nodes[targetNode.ID.String()]; ok {
+			m64, err := metric.(json.Number).Int64()
+			if err != nil {
+				m64 = 256
+			}
+			m := uint32(m64)
 			req.Ranges = append(req.Ranges, e.Range)
 			req.RangesWithMetric = append(req.RangesWithMetric, models.EgressRangeMetric{
 				Network:     e.Range,
 				Nat:         e.Nat,
-				RouteMetric: metric.(uint32),
+				RouteMetric: m,
 			})
 		}
 	}

+ 1 - 1
logic/peers.go

@@ -197,6 +197,7 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 		if !node.Connected || node.PendingDelete || node.Action == models.NODE_DELETE {
 			continue
 		}
+		GetNodeEgressInfo(&node)
 		hostPeerUpdate = SetDefaultGw(node, hostPeerUpdate)
 		if !hostPeerUpdate.IsInternetGw {
 			hostPeerUpdate.IsInternetGw = IsInternetGw(node)
@@ -227,7 +228,6 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 		if err != nil {
 			continue
 		}
-		GetNodeEgressInfo(&node)
 		hostPeerUpdate.NameServers = append(hostPeerUpdate.NameServers, networkSettings.NameServers...)
 		currentPeers := GetNetworkNodesMemory(allNodes, node.Network)
 		for _, peer := range currentPeers {