Skip to content

Commit

Permalink
update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Maliz committed Feb 9, 2023
1 parent 24426ce commit 9d95c6c
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 26 deletions.
30 changes: 15 additions & 15 deletions test/integration/consul-container/libs/service/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import (
"github.com/hashicorp/consul/test/integration/consul-container/libs/utils"
)

// gatewayContainer
type gatewayContainer struct {
// GatewayContainer
type GatewayContainer struct {
ctx context.Context
container testcontainers.Container
ip string
Expand All @@ -28,21 +28,21 @@ type gatewayContainer struct {
serviceName string
}

var _ Service = (*gatewayContainer)(nil)
var _ Service = (*GatewayContainer)(nil)

func (g gatewayContainer) Exec(ctx context.Context, cmd []string) (int, io.Reader, error) {
func (g GatewayContainer) Exec(ctx context.Context, cmd []string) (int, io.Reader, error) {
return g.container.Exec(ctx, cmd)
}

func (g gatewayContainer) Export(partition, peer string, client *api.Client) error {
func (g GatewayContainer) Export(partition, peer string, client *api.Client) error {
return fmt.Errorf("gatewayContainer export unimplemented")
}

func (g gatewayContainer) GetAddr() (string, int) {
func (g GatewayContainer) GetAddr() (string, int) {
return g.ip, g.port
}

func (g gatewayContainer) GetLogs() (string, error) {
func (g GatewayContainer) GetLogs() (string, error) {
rc, err := g.container.Logs(context.Background())
if err != nil {
return "", fmt.Errorf("could not get logs for gateway service %s: %w", g.GetServiceName(), err)
Expand All @@ -56,34 +56,34 @@ func (g gatewayContainer) GetLogs() (string, error) {
return string(out), nil
}

func (g gatewayContainer) GetName() string {
func (g GatewayContainer) GetName() string {
name, err := g.container.Name(g.ctx)
if err != nil {
return ""
}
return name
}

func (g gatewayContainer) GetServiceName() string {
func (g GatewayContainer) GetServiceName() string {
return g.serviceName
}

func (g gatewayContainer) Start() error {
func (g GatewayContainer) Start() error {
if g.container == nil {
return fmt.Errorf("container has not been initialized")
}
return g.container.Start(context.Background())
}

func (c gatewayContainer) Terminate() error {
func (c GatewayContainer) Terminate() error {
return cluster.TerminateContainer(c.ctx, c.container, true)
}

func (g gatewayContainer) GetAdminAddr() (string, int) {
func (g GatewayContainer) GetAdminAddr() (string, int) {
return "localhost", g.adminPort
}

func (g gatewayContainer) Restart() error {
func (g GatewayContainer) Restart() error {
_, err := g.container.State(g.ctx)
if err != nil {
return fmt.Errorf("error get gateway state %s", err)
Expand All @@ -100,7 +100,7 @@ func (g gatewayContainer) Restart() error {
return nil
}

func (g gatewayContainer) GetStatus() (string, error) {
func (g GatewayContainer) GetStatus() (string, error) {
state, err := g.container.State(g.ctx)
return state.Status, err
}
Expand Down Expand Up @@ -190,7 +190,7 @@ func NewGatewayService(ctx context.Context, name string, kind string, node libcl
return nil, err
}

out := &gatewayContainer{
out := &GatewayContainer{
ctx: ctx,
container: info.Container,
ip: info.IP,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ func TestBasicConnectService(t *testing.T) {

clientService := createServices(t, cluster)
_, port := clientService.GetAddr()
_, adminPort := clientService.GetAdminAddr()
clientSidecar, ok := clientService.(*libservice.ConnectContainer)
require.True(t, ok)
_, adminPort := clientSidecar.GetExternalAdminAddr()

libassert.AssertUpstreamEndpointStatus(t, adminPort, "static-server.default", "HEALTHY", 1)
libassert.GetEnvoyListenerTCPFilters(t, adminPort)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ func TestAccessLogs(t *testing.T) {
// Validate Logs on the Admin Interface
serverSidecar, ok := serverService.(*libservice.ConnectContainer)
require.True(t, ok)
ip, port := serverSidecar.GetAdminAddr()
ip, port := serverSidecar.GetExternalAdminAddr()

httpClient := cleanhttp.DefaultClient()
url := fmt.Sprintf("http://%s:%d/clusters?fruit=bananas", ip, port)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ func verifySidecarHasTwoRootCAs(t *testing.T, sidecar libservice.Service) {
connectContainer, ok := sidecar.(*libservice.ConnectContainer)
require.True(t, ok)

_, adminPort := connectContainer.GetAdminAddr()
_, adminPort := connectContainer.GetExternalAdminAddr()

failer := func() *retry.Timer {
return &retry.Timer{Timeout: 30 * time.Second, Wait: 1 * time.Second}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ func TestPeering_Upgrade_ControlPlane_MGW(t *testing.T) {
require.NoError(t, err)

// Verify control plane endpoints and traffic in gateway
_, gatewayAdminPort := dialing.Gateway.GetAdminAddr()
gatewayProxy, ok := dialing.Gateway.(*libservice.GatewayContainer)
require.True(t, ok)
_, gatewayAdminPort := gatewayProxy.GetAdminAddr()
libassert.AssertUpstreamEndpointStatus(t, gatewayAdminPort, "server.dc1.peering", "HEALTHY", 1)
libassert.AssertUpstreamEndpointStatus(t, gatewayAdminPort, "server.dc2.peering", "HEALTHY", 1)
libassert.AssertEnvoyMetricAtLeast(t, gatewayAdminPort,
Expand Down Expand Up @@ -106,7 +108,7 @@ func TestPeering_Upgrade_ControlPlane_MGW(t *testing.T) {
clientSidecarService, err := libservice.CreateAndRegisterStaticClientSidecar(dialingCluster.Servers()[0], libtopology.DialingPeerName, true)
require.NoError(t, err)
_, port := clientSidecarService.GetAddr()
_, adminPort := clientSidecarService.GetAdminAddr()
_, adminPort := clientSidecarService.GetExternalAdminAddr()
require.NoError(t, clientSidecarService.Restart())
libassert.AssertUpstreamEndpointStatus(t, adminPort, fmt.Sprintf("static-server.default.%s.external", libtopology.DialingPeerName), "HEALTHY", 1)
libassert.HTTPServiceEchoes(t, "localhost", port, "")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ func TestPeering_UpgradeToTarget_fromLatest(t *testing.T) {
acceptingClient, err := acceptingCluster.GetClient(nil, false)
require.NoError(t, err)

_, gatewayAdminPort := dialing.Gateway.GetAdminAddr()
gatewayProxy, ok := dialing.Gateway.(*libservice.GatewayContainer)
require.True(t, ok)
_, gatewayAdminPort := gatewayProxy.GetAdminAddr()

// Upgrade the accepting cluster and assert peering is still ACTIVE
require.NoError(t, acceptingCluster.StandardUpgrade(t, context.Background(), tc.targetVersion))
Expand All @@ -76,7 +78,7 @@ func TestPeering_UpgradeToTarget_fromLatest(t *testing.T) {
clientSidecarService, err := libservice.CreateAndRegisterStaticClientSidecar(dialingCluster.Servers()[0], libtopology.DialingPeerName, true)
require.NoError(t, err)
_, port := clientSidecarService.GetAddr()
_, adminPort := clientSidecarService.GetAdminAddr()
_, adminPort := clientSidecarService.GetExternalAdminAddr()
require.NoError(t, clientSidecarService.Restart())
libassert.AssertUpstreamEndpointStatus(t, adminPort, fmt.Sprintf("static-server.default.%s.external", libtopology.DialingPeerName), "HEALTHY", 1)
libassert.HTTPServiceEchoes(t, "localhost", port, "")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,22 @@ func TestTrafficManagement_ServiceWithSubsets(t *testing.T) {
serverConnectProxy, serverConnectProxyV1, serverConnectProxyV2, clientConnectProxy := createService(t, cluster)

_, port := clientConnectProxy.GetAddr()
_, adminPort := clientConnectProxy.GetAdminAddr()
_, serverAdminPort := serverConnectProxy.GetAdminAddr()
_, serverAdminPortV1 := serverConnectProxyV1.GetAdminAddr()
_, serverAdminPortV2 := serverConnectProxyV2.GetAdminAddr()

clientSidecar, ok := clientConnectProxy.(*libservice.ConnectContainer)
require.True(t, ok)
_, adminPort := clientSidecar.GetExternalAdminAddr()

serverSidecar, ok := serverConnectProxy.(*libservice.ConnectContainer)
require.True(t, ok)
_, serverAdminPort := serverSidecar.GetExternalAdminAddr()

serverV1Sidecar, ok := serverConnectProxyV1.(*libservice.ConnectContainer)
require.True(t, ok)
_, serverAdminPortV1 := serverV1Sidecar.GetExternalAdminAddr()

serverV2Sidecar, ok := serverConnectProxyV2.(*libservice.ConnectContainer)
require.True(t, ok)
_, serverAdminPortV2 := serverV2Sidecar.GetExternalAdminAddr()

// validate client and proxy is up and running
libassert.AssertContainerState(t, clientConnectProxy, "running")
Expand Down

0 comments on commit 9d95c6c

Please sign in to comment.