blob: 50f2ae65e36cedfaf0718d8c597fd27826db0bea [file] [edit]
package service
import (
"strings"
"testing"
"github.com/moby/moby/client"
"github.com/moby/moby/v2/integration/internal/swarm"
"github.com/moby/moby/v2/internal/testutil/daemon"
"gotest.tools/v3/assert"
"gotest.tools/v3/skip"
)
func TestSwarmCAHash(t *testing.T) {
skip.If(t, strings.HasPrefix(testEnv.FirewallBackendDriver(), "nftables"), "swarm cannot be used with nftables")
ctx := setupTest(t)
d1 := swarm.NewSwarm(ctx, t, testEnv)
defer d1.Stop(t)
d2 := daemon.New(t)
d2.Start(t)
defer d2.Stop(t)
splitToken := strings.Split(d1.JoinTokens(t).Worker, "-")
splitToken[2] = "1kxftv4ofnc6mt30lmgipg6ngf9luhwqopfk1tz6bdmnkubg0e"
replacementToken := strings.Join(splitToken, "-")
c2 := d2.NewClientT(t)
defer c2.Close()
_, err := c2.SwarmJoin(ctx, client.SwarmJoinOptions{
ListenAddr: d2.SwarmListenAddr(),
JoinToken: replacementToken,
RemoteAddrs: []string{d1.SwarmListenAddr()},
})
assert.ErrorContains(t, err, "remote CA does not match fingerprint")
}