mirror of
https://github.com/jsiebens/ionscale.git
synced 2026-03-31 15:07:49 +01:00
90 lines
2.3 KiB
Go
90 lines
2.3 KiB
Go
package tests
|
|
|
|
import (
|
|
"github.com/jsiebens/ionscale/tests/sc"
|
|
"github.com/jsiebens/ionscale/tests/tsn"
|
|
"github.com/stretchr/testify/require"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewHostnameShouldPropagateToPeersWhenSet(t *testing.T) {
|
|
sc.Run(t, func(s *sc.Scenario) {
|
|
tailnet := s.CreateTailnet()
|
|
key := s.CreateAuthKey(tailnet.Id, true)
|
|
|
|
initialName := sc.RandomName()
|
|
|
|
nodeA := s.NewTailscaleNode()
|
|
nodeB := s.NewTailscaleNode(sc.WithName(initialName))
|
|
|
|
require.NoError(t, nodeA.Up(key))
|
|
require.NoError(t, nodeB.Up(key))
|
|
|
|
require.NoError(t, nodeA.WaitFor(tsn.HasPeer(initialName)))
|
|
|
|
newName := sc.RandomName()
|
|
|
|
require.NoError(t, nodeB.SetHostname(newName))
|
|
|
|
require.NoError(t, nodeA.WaitFor(tsn.HasPeer(newName)))
|
|
})
|
|
}
|
|
|
|
func TestSetHostname(t *testing.T) {
|
|
sc.Run(t, func(s *sc.Scenario) {
|
|
tailnet := s.CreateTailnet()
|
|
key := s.CreateAuthKey(tailnet.Id, true)
|
|
|
|
initialName := sc.RandomName()
|
|
|
|
nodeA := s.NewTailscaleNode()
|
|
nodeB := s.NewTailscaleNode(sc.WithName(initialName))
|
|
|
|
require.NoError(t, nodeA.Up(key))
|
|
require.NoError(t, nodeB.Up(key))
|
|
|
|
require.NoError(t, nodeA.WaitFor(tsn.HasPeer(initialName)))
|
|
|
|
mid, err := s.FindMachine(tailnet.Id, initialName)
|
|
require.NoError(t, err)
|
|
|
|
newName := sc.RandomName()
|
|
|
|
require.NoError(t, s.SetMachineName(mid, false, newName))
|
|
require.NoError(t, nodeA.WaitFor(tsn.HasPeer(newName)))
|
|
|
|
require.NoError(t, s.SetMachineName(mid, true, ""))
|
|
require.NoError(t, nodeA.WaitFor(tsn.HasPeer(initialName)))
|
|
})
|
|
}
|
|
|
|
func TestSetHostnameWhenNameAlreadyInUse(t *testing.T) {
|
|
sc.Run(t, func(s *sc.Scenario) {
|
|
tailnet := s.CreateTailnet()
|
|
key := s.CreateAuthKey(tailnet.Id, true)
|
|
|
|
nodeA := s.NewTailscaleNode(sc.WithName("node-a"))
|
|
nodeB := s.NewTailscaleNode(sc.WithName("node-b"))
|
|
|
|
require.NoError(t, nodeA.Up(key))
|
|
require.NoError(t, nodeB.Up(key))
|
|
|
|
require.NoError(t, nodeA.WaitFor(tsn.PeerCount(1)))
|
|
require.NoError(t, nodeB.WaitFor(tsn.PeerCount(1)))
|
|
|
|
mida, err := s.FindMachine(tailnet.Id, "node-a")
|
|
require.NoError(t, err)
|
|
|
|
midb, err := s.FindMachine(tailnet.Id, "node-b")
|
|
require.NoError(t, err)
|
|
|
|
newName := sc.RandomName()
|
|
|
|
require.NoError(t, s.SetMachineName(mida, false, newName))
|
|
require.NoError(t, nodeB.WaitFor(tsn.HasPeer(newName)))
|
|
|
|
err = s.SetMachineName(midb, false, newName)
|
|
require.ErrorContains(t, err, "machine name already in use")
|
|
})
|
|
}
|