Files
threshold/internal/tests/cluster/multi_controller_worker_test.go
T

81 lines
2.0 KiB
Go
Raw Normal View History

2020-08-12 00:40:39 -04:00
package cluster
import (
"testing"
"time"
"github.com/hashicorp/boundary/internal/cmd/config"
2020-08-12 00:40:39 -04:00
"github.com/hashicorp/boundary/internal/servers/controller"
"github.com/hashicorp/boundary/internal/servers/worker"
"github.com/hashicorp/go-hclog"
"github.com/stretchr/testify/require"
)
func TestMultiControllerMultiWorkerConnections(t *testing.T) {
2021-01-21 16:27:20 -05:00
require := require.New(t)
2020-08-25 00:21:08 -04:00
amId := "ampw_1234567890"
2020-08-12 00:40:39 -04:00
user := "user"
password := "passpass"
logger := hclog.New(&hclog.LoggerOptions{
Level: hclog.Trace,
})
conf, err := config.DevController()
require.NoError(err)
2020-08-12 00:40:39 -04:00
c1 := controller.NewTestController(t, &controller.TestControllerOpts{
Config: conf,
2020-08-12 00:40:39 -04:00
DefaultAuthMethodId: amId,
DefaultLoginName: user,
DefaultPassword: password,
Logger: logger.Named("c1"),
})
defer c1.Shutdown()
c2 := c1.AddClusterControllerMember(t, &controller.TestControllerOpts{
Logger: c1.Config().Logger.ResetNamed("c2"),
})
defer c2.Shutdown()
2021-01-21 16:27:20 -05:00
expectWorkers(t, c1)
expectWorkers(t, c2)
2020-08-12 00:40:39 -04:00
w1 := worker.NewTestWorker(t, &worker.TestWorkerOpts{
2020-08-19 16:47:18 -04:00
WorkerAuthKms: c1.Config().WorkerAuthKms,
2020-08-12 00:40:39 -04:00
InitialControllers: c1.ClusterAddrs(),
Logger: logger.Named("w1"),
})
defer w1.Shutdown()
time.Sleep(10 * time.Second)
2021-01-21 16:27:20 -05:00
expectWorkers(t, c1, w1)
expectWorkers(t, c2, w1)
2020-08-12 00:40:39 -04:00
w2 := w1.AddClusterWorkerMember(t, &worker.TestWorkerOpts{
Logger: logger.Named("w2"),
})
defer w2.Shutdown()
time.Sleep(10 * time.Second)
2021-01-21 16:27:20 -05:00
expectWorkers(t, c1, w1, w2)
expectWorkers(t, c2, w1, w2)
2020-08-12 00:40:39 -04:00
require.NoError(w1.Worker().Shutdown(true))
time.Sleep(10 * time.Second)
2021-01-21 16:27:20 -05:00
expectWorkers(t, c1, w2)
expectWorkers(t, c2, w2)
2020-08-12 00:40:39 -04:00
require.NoError(w1.Worker().Start())
time.Sleep(10 * time.Second)
2021-01-21 16:27:20 -05:00
expectWorkers(t, c1, w1, w2)
expectWorkers(t, c2, w1, w2)
2020-08-12 00:40:39 -04:00
require.NoError(c1.Controller().Shutdown(true))
time.Sleep(10 * time.Second)
2021-01-21 16:27:20 -05:00
expectWorkers(t, c2, w1, w2)
2020-08-12 00:40:39 -04:00
require.NoError(c1.Controller().Start())
time.Sleep(10 * time.Second)
2021-01-21 16:27:20 -05:00
expectWorkers(t, c1, w1, w2)
expectWorkers(t, c2, w1, w2)
2020-08-12 00:40:39 -04:00
}