Sfoglia il codice sorgente

fix UT error and add error info

Max Ma 1 anno fa
parent
commit
97690fd5c8

+ 1 - 1
controllers/hosts.go

@@ -523,7 +523,7 @@ func authenticateHost(response http.ResponseWriter, request *http.Request) {
 		errorResponse.Code = http.StatusBadRequest
 		errorResponse.Message = err.Error()
 		logger.Log(0, request.Header.Get("user"),
-			"error retrieving host: ", err.Error())
+			"error retrieving host: ", authRequest.ID, err.Error())
 		logic.ReturnErrorResponse(response, request, errorResponse)
 		return
 	}

+ 5 - 2
controllers/network_test.go

@@ -46,8 +46,8 @@ func TestCreateNetwork(t *testing.T) {
 	deleteAllNetworks()
 
 	var network models.Network
-	network.NetID = "skynet"
-	network.AddressRange = "10.0.0.1/24"
+	network.NetID = "skynet1"
+	network.AddressRange = "10.10.0.1/24"
 	// if tests break - check here (removed displayname)
 	//network.DisplayName = "mynetwork"
 
@@ -186,6 +186,8 @@ func TestIpv6Network(t *testing.T) {
 	deleteAllNetworks()
 	createNet()
 	createNetDualStack()
+	logic.SetIpPool()
+	defer logic.ClearIpPool()
 	network, err := logic.GetNetwork("skynet6")
 	t.Run("Test Network Create IPv6", func(t *testing.T) {
 		assert.Nil(t, err)
@@ -203,6 +205,7 @@ func TestIpv6Network(t *testing.T) {
 func deleteAllNetworks() {
 	deleteAllNodes()
 	database.DeleteAllRecords(database.NETWORKS_TABLE_NAME)
+	logic.ClearIpPool()
 }
 
 func createNet() {

+ 1 - 1
controllers/node.go

@@ -95,7 +95,7 @@ func authenticate(response http.ResponseWriter, request *http.Request) {
 		errorResponse.Code = http.StatusBadRequest
 		errorResponse.Message = err.Error()
 		logger.Log(0, request.Header.Get("user"),
-			"error retrieving host: ", err.Error())
+			"error retrieving host: ", result.HostID.String(), err.Error())
 		logic.ReturnErrorResponse(response, request, errorResponse)
 		return
 	}

+ 14 - 0
logic/ippool.go

@@ -18,6 +18,10 @@ var (
 	ipPoolMutex = &sync.RWMutex{}
 )
 
+const (
+	ipCap = 10000
+)
+
 type IpHeap []net.IP
 
 type PoolMap struct {
@@ -230,7 +234,11 @@ func getAvailableIpV4Pool(network *models.Network) *IpHeap {
 	net4 := iplib.Net4FromStr(network.AddressRange)
 	newAddrs := net4.FirstAddress()
 
+	i := 0
 	for {
+		if i >= ipCap {
+			break
+		}
 		if IsIPUnique(network.NetID, newAddrs.String(), database.NODES_TABLE_NAME, false) &&
 			IsIPUnique(network.NetID, newAddrs.String(), database.EXT_CLIENT_TABLE_NAME, false) {
 			heap.Push(ipv4List, newAddrs)
@@ -242,6 +250,7 @@ func getAvailableIpV4Pool(network *models.Network) *IpHeap {
 		if err != nil {
 			break
 		}
+		i++
 	}
 
 	return ipv4List
@@ -266,7 +275,11 @@ func getAvailableIpV6Pool(network *models.Network) *IpHeap {
 		return ipv6List
 	}
 
+	i := 0
 	for {
+		if i >= ipCap {
+			break
+		}
 		if IsIPUnique(network.NetID, newAddrs.String(), database.NODES_TABLE_NAME, true) &&
 			IsIPUnique(network.NetID, newAddrs.String(), database.EXT_CLIENT_TABLE_NAME, true) {
 			heap.Push(ipv6List, newAddrs)
@@ -277,6 +290,7 @@ func getAvailableIpV6Pool(network *models.Network) *IpHeap {
 		if err != nil {
 			break
 		}
+		i++
 	}
 
 	return ipv6List

+ 1 - 1
logic/peers.go

@@ -436,7 +436,7 @@ func GetEgressIPs(peer *models.Node) []net.IPNet {
 
 	peerHost, err := GetHost(peer.HostID.String())
 	if err != nil {
-		logger.Log(0, "error retrieving host for peer", peer.ID.String(), err.Error())
+		logger.Log(0, "error retrieving host for peer", peer.ID.String(), "host id", peer.HostID.String(), err.Error())
 	}
 
 	// check for internet gateway

+ 1 - 1
pro/controllers/failover.go

@@ -43,7 +43,7 @@ func getfailOver(w http.ResponseWriter, r *http.Request) {
 	// confirm host exists
 	node, err := logic.GetNodeByID(nodeid)
 	if err != nil {
-		slog.Error("failed to get node:", "error", err.Error())
+		slog.Error("failed to get node:", "node", nodeid, "error", err.Error())
 		logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
 		return
 	}