Merge branch 'release-v1.5.1' of https://github.com/gravitl/netmaker into fix/set-default-using-api

This commit is contained in:
VishalDalwadi
2026-04-15 11:25:25 +05:30
3 changed files with 11 additions and 99 deletions
-55
View File
@@ -3,13 +3,11 @@ package controller
import (
"fmt"
"net"
"os"
"testing"
"github.com/google/uuid"
"github.com/gravitl/netmaker/schema"
"github.com/stretchr/testify/assert"
"github.com/txn2/txeh"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
"github.com/gravitl/netmaker/functions"
@@ -203,59 +201,6 @@ func TestCreateDNS(t *testing.T) {
assert.Equal(t, "newhost", dns.Name)
}
func TestSetDNS(t *testing.T) {
deleteAllDNS(t)
deleteAllNetworks()
etc, err := txeh.NewHosts(&txeh.HostsConfig{})
assert.Nil(t, err)
err = functions.SetDNSDir()
assert.Nil(t, err)
t.Run("NoNetworks", func(t *testing.T) {
err := logic.SetDNS()
assert.Nil(t, err)
info, err := txeh.NewHosts(&txeh.HostsConfig{
ReadFilePath: "./config/dnsconfig/netmaker.hosts",
})
assert.Nil(t, err)
assert.Equal(t, etc.RenderHostsFile(), info.RenderHostsFile())
})
t.Run("NoEntries", func(t *testing.T) {
createNet()
err := logic.SetDNS()
assert.Nil(t, err)
info, err := txeh.NewHosts(&txeh.HostsConfig{
ReadFilePath: "./config/dnsconfig/netmaker.hosts",
})
assert.Nil(t, err)
assert.Equal(t, etc.RenderHostsFile(), info.RenderHostsFile())
})
t.Run("NodeExists", func(t *testing.T) {
createTestNode()
err := logic.SetDNS()
assert.Nil(t, err)
info, err := os.Stat("./config/dnsconfig/netmaker.hosts")
assert.Nil(t, err)
assert.False(t, info.IsDir())
content, err := os.ReadFile("./config/dnsconfig/netmaker.hosts")
assert.Nil(t, err)
assert.Contains(t, string(content), "linuxhost")
})
t.Run("EntryExists", func(t *testing.T) {
entry := models.DNSEntry{Address: "10.0.0.3", Name: "newhost", Network: "skynet"}
_, err := logic.CreateDNS(entry)
assert.Nil(t, err)
err = logic.SetDNS()
assert.Nil(t, err)
info, err := os.Stat("./config/dnsconfig/netmaker.hosts")
assert.Nil(t, err)
assert.False(t, info.IsDir())
content, err := os.ReadFile("./config/dnsconfig/netmaker.hosts")
assert.Nil(t, err)
assert.Contains(t, string(content), "newhost")
})
}
func TestGetDNSEntry(t *testing.T) {
deleteAllDNS(t)
deleteAllNetworks()
+1 -40
View File
@@ -20,7 +20,6 @@ import (
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/schema"
"github.com/gravitl/netmaker/servercfg"
"github.com/txn2/txeh"
)
const (
@@ -111,45 +110,7 @@ func DeleteNetworkNameservers(networkID string) error {
// SetDNS - sets the dns on file
func SetDNS() error {
hostfile, err := txeh.NewHosts(&txeh.HostsConfig{})
if err != nil {
return err
}
var corefilestring string
networks, err := (&schema.Network{}).ListAll(db.WithContext(context.TODO()))
if err != nil {
return err
}
for _, net := range networks {
corefilestring = corefilestring + net.Name + " "
dns, err := GetDNS(net.Name)
if err != nil && !database.IsEmptyRecord(err) {
return err
}
for _, entry := range dns {
hostfile.AddHost(entry.Address, entry.Name)
}
}
dns := GetExtclientDNS()
for _, entry := range dns {
hostfile.AddHost(entry.Address, entry.Name)
}
if corefilestring == "" {
corefilestring = "example.com"
}
err = hostfile.SaveAs("./config/dnsconfig/netmaker.hosts")
if err != nil {
return err
}
/* if something goes wrong with server DNS, check here
// commented out bc we were not using IsSplitDNS
if servercfg.IsSplitDNS() {
err = SetCorefile(corefilestring)
}
*/
return err
return nil
}
// GetDNS - gets the DNS of a current network
+10 -4
View File
@@ -159,7 +159,7 @@ func GetNetworkNodesMemory(allNodes []models.Node, network string) []models.Node
}
var (
pendingCheckins = make(map[string]models.Node)
pendingCheckins = make(map[string]time.Time)
pendingCheckinsMu sync.Mutex
)
@@ -171,7 +171,7 @@ func UpdateNodeCheckin(node *models.Node) error {
node.EgressDetails = models.EgressDetails{}
if servercfg.CacheEnabled() {
pendingCheckinsMu.Lock()
pendingCheckins[node.ID.String()] = *node
pendingCheckins[node.ID.String()] = node.LastCheckIn
pendingCheckinsMu.Unlock()
storeNodeInCache(*node)
storeNodeInNetworkCache(*node, node.Network)
@@ -189,13 +189,19 @@ func UpdateNodeCheckin(node *models.Node) error {
func FlushNodeCheckins() {
pendingCheckinsMu.Lock()
batch := pendingCheckins
pendingCheckins = make(map[string]models.Node)
pendingCheckins = make(map[string]time.Time)
pendingCheckinsMu.Unlock()
if len(batch) == 0 {
return
}
var failed int
for id, node := range batch {
for id, checkin := range batch {
node, err := GetNodeByID(id)
if err != nil {
failed++
continue
}
node.LastCheckIn = checkin
data, err := json.Marshal(node)
if err != nil {
failed++