54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package api
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/hashicorp/nomad/api/internal/testutil"
|
|
"github.com/shoenig/test/must"
|
|
"github.com/shoenig/test/wait"
|
|
)
|
|
|
|
func TestRegionsList(t *testing.T) {
|
|
testutil.Parallel(t)
|
|
c1, s1 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
|
|
c.Region = "regionA"
|
|
})
|
|
defer s1.Stop()
|
|
|
|
c2, s2 := makeClient(t, nil, func(c *testutil.TestServerConfig) {
|
|
c.Region = "regionB"
|
|
})
|
|
defer s2.Stop()
|
|
|
|
// Join the servers
|
|
_, err := c2.Agent().Join(s1.SerfAddr)
|
|
must.NoError(t, err)
|
|
|
|
f := func() error {
|
|
regions, err := c1.Regions().List()
|
|
if err != nil {
|
|
return fmt.Errorf("failed to get regions: %w", err)
|
|
}
|
|
if n := len(regions); n != 2 {
|
|
return fmt.Errorf("expected 2 regions, got %d", n)
|
|
}
|
|
if regions[0] != "regionA" {
|
|
return fmt.Errorf("unexpected first region, got: %s", regions[0])
|
|
}
|
|
if regions[1] != "regionB" {
|
|
return fmt.Errorf("unexpected second region, got: %s", regions[1])
|
|
}
|
|
return nil
|
|
}
|
|
must.Wait(t, wait.InitialSuccess(
|
|
wait.ErrorFunc(f),
|
|
wait.Timeout(10*time.Second),
|
|
wait.Gap(1*time.Second),
|
|
))
|
|
}
|