mirror of
https://github.com/juanfont/headscale.git
synced 2025-12-23 13:06:18 +00:00
cli: remove node move command (#2922)
This commit is contained in:
@@ -1644,178 +1644,6 @@ func TestNodeRenameCommand(t *testing.T) {
|
||||
assert.Contains(t, listAllAfterRenameAttempt[4].GetGivenName(), "node-5")
|
||||
}
|
||||
|
||||
func TestNodeMoveCommand(t *testing.T) {
|
||||
IntegrationSkip(t)
|
||||
|
||||
spec := ScenarioSpec{
|
||||
Users: []string{"old-user", "new-user"},
|
||||
}
|
||||
|
||||
scenario, err := NewScenario(spec)
|
||||
require.NoError(t, err)
|
||||
defer scenario.ShutdownAssertNoPanics(t)
|
||||
|
||||
err = scenario.CreateHeadscaleEnv([]tsic.Option{}, hsic.WithTestName("clins"))
|
||||
require.NoError(t, err)
|
||||
|
||||
headscale, err := scenario.Headscale()
|
||||
require.NoError(t, err)
|
||||
|
||||
// Randomly generated node key
|
||||
regID := types.MustRegistrationID()
|
||||
|
||||
userMap, err := headscale.MapUsers()
|
||||
require.NoError(t, err)
|
||||
|
||||
_, err = headscale.Execute(
|
||||
[]string{
|
||||
"headscale",
|
||||
"debug",
|
||||
"create-node",
|
||||
"--name",
|
||||
"nomad-node",
|
||||
"--user",
|
||||
"old-user",
|
||||
"--key",
|
||||
regID.String(),
|
||||
"--output",
|
||||
"json",
|
||||
},
|
||||
)
|
||||
assert.NoError(t, err)
|
||||
|
||||
var node v1.Node
|
||||
assert.EventuallyWithT(t, func(c *assert.CollectT) {
|
||||
err = executeAndUnmarshal(
|
||||
headscale,
|
||||
[]string{
|
||||
"headscale",
|
||||
"nodes",
|
||||
"--user",
|
||||
"old-user",
|
||||
"register",
|
||||
"--key",
|
||||
regID.String(),
|
||||
"--output",
|
||||
"json",
|
||||
},
|
||||
&node,
|
||||
)
|
||||
assert.NoError(c, err)
|
||||
}, 10*time.Second, 200*time.Millisecond, "Waiting for old-user node registration")
|
||||
|
||||
assert.Equal(t, uint64(1), node.GetId())
|
||||
assert.Equal(t, "nomad-node", node.GetName())
|
||||
assert.Equal(t, "old-user", node.GetUser().GetName())
|
||||
|
||||
nodeID := strconv.FormatUint(node.GetId(), 10)
|
||||
|
||||
assert.EventuallyWithT(t, func(c *assert.CollectT) {
|
||||
err = executeAndUnmarshal(
|
||||
headscale,
|
||||
[]string{
|
||||
"headscale",
|
||||
"nodes",
|
||||
"move",
|
||||
"--identifier",
|
||||
strconv.FormatUint(node.GetId(), 10),
|
||||
"--user",
|
||||
strconv.FormatUint(userMap["new-user"].GetId(), 10),
|
||||
"--output",
|
||||
"json",
|
||||
},
|
||||
&node,
|
||||
)
|
||||
assert.NoError(c, err)
|
||||
}, 10*time.Second, 200*time.Millisecond, "Waiting for node move to new-user")
|
||||
|
||||
assert.Equal(t, "new-user", node.GetUser().GetName())
|
||||
|
||||
var allNodes []v1.Node
|
||||
assert.EventuallyWithT(t, func(c *assert.CollectT) {
|
||||
err = executeAndUnmarshal(
|
||||
headscale,
|
||||
[]string{
|
||||
"headscale",
|
||||
"nodes",
|
||||
"list",
|
||||
"--output",
|
||||
"json",
|
||||
},
|
||||
&allNodes,
|
||||
)
|
||||
assert.NoError(c, err)
|
||||
}, 10*time.Second, 200*time.Millisecond, "Waiting for nodes list after move")
|
||||
|
||||
assert.Len(t, allNodes, 1)
|
||||
|
||||
assert.Equal(t, allNodes[0].GetId(), node.GetId())
|
||||
assert.Equal(t, allNodes[0].GetUser(), node.GetUser())
|
||||
assert.Equal(t, "new-user", allNodes[0].GetUser().GetName())
|
||||
|
||||
_, err = headscale.Execute(
|
||||
[]string{
|
||||
"headscale",
|
||||
"nodes",
|
||||
"move",
|
||||
"--identifier",
|
||||
nodeID,
|
||||
"--user",
|
||||
"999",
|
||||
"--output",
|
||||
"json",
|
||||
},
|
||||
)
|
||||
assert.ErrorContains(
|
||||
t,
|
||||
err,
|
||||
"user not found",
|
||||
)
|
||||
assert.Equal(t, "new-user", node.GetUser().GetName())
|
||||
|
||||
assert.EventuallyWithT(t, func(c *assert.CollectT) {
|
||||
err = executeAndUnmarshal(
|
||||
headscale,
|
||||
[]string{
|
||||
"headscale",
|
||||
"nodes",
|
||||
"move",
|
||||
"--identifier",
|
||||
nodeID,
|
||||
"--user",
|
||||
strconv.FormatUint(userMap["old-user"].GetId(), 10),
|
||||
"--output",
|
||||
"json",
|
||||
},
|
||||
&node,
|
||||
)
|
||||
assert.NoError(c, err)
|
||||
}, 10*time.Second, 200*time.Millisecond, "Waiting for node move back to old-user")
|
||||
|
||||
assert.Equal(t, "old-user", node.GetUser().GetName())
|
||||
|
||||
assert.EventuallyWithT(t, func(c *assert.CollectT) {
|
||||
err = executeAndUnmarshal(
|
||||
headscale,
|
||||
[]string{
|
||||
"headscale",
|
||||
"nodes",
|
||||
"move",
|
||||
"--identifier",
|
||||
nodeID,
|
||||
"--user",
|
||||
strconv.FormatUint(userMap["old-user"].GetId(), 10),
|
||||
"--output",
|
||||
"json",
|
||||
},
|
||||
&node,
|
||||
)
|
||||
assert.NoError(c, err)
|
||||
}, 10*time.Second, 200*time.Millisecond, "Waiting for node move to same user")
|
||||
|
||||
assert.Equal(t, "old-user", node.GetUser().GetName())
|
||||
}
|
||||
|
||||
func TestPolicyCommand(t *testing.T) {
|
||||
IntegrationSkip(t)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user