Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: fix ce/ent drift in sdk and testing/deployer submodules #19041

Merged
merged 1 commit into from
Oct 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions sdk/testutil/io.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
)

var noCleanup = strings.ToLower(os.Getenv("TEST_NOCLEANUP")) == "true"
var saveSnapshot = strings.ToLower(os.Getenv("TEST_SAVE_SNAPSHOT")) == "true"

// TempDir creates a temporary directory within tmpdir with the name 'testname-name'.
// If the directory cannot be created t.Fatal is called.
Expand Down
66 changes: 54 additions & 12 deletions sdk/testutil/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,16 @@ type ServerConfigCallback func(c *TestServerConfig)
// defaultServerConfig returns a new TestServerConfig struct
// with all of the listen ports incremented by one.
func defaultServerConfig(t TestingTB, consulVersion *version.Version) *TestServerConfig {
nodeID, err := uuid.GenerateUUID()
if err != nil {
panic(err)
var nodeID string
var err error

if id, ok := os.LookupEnv("TEST_NODE_ID"); ok {
nodeID = id
} else {
nodeID, err = uuid.GenerateUUID()
if err != nil {
panic(err)
}
}

ports := freeport.GetN(t, 7)
Expand Down Expand Up @@ -287,23 +294,42 @@ func NewTestServerConfigT(t TestingTB, cb ServerConfigCallback) (*TestServer, er
"consul or skip this test")
}

prefix := "consul"
if t != nil {
// Use test name for tmpdir if available
prefix = strings.Replace(t.Name(), "/", "_", -1)
}
tmpdir, err := os.MkdirTemp("", prefix)
if err != nil {
return nil, errors.Wrap(err, "failed to create tempdir")
var tmpdir string

if dir, ok := os.LookupEnv("TEST_TMP_DIR"); ok {
// NOTE(CTIA): using TEST_TMP_DIR may cause conflict when NewTestServerConfigT
// is called > 1 since two agent will uses the same directory
tmpdir = dir
if _, err := os.Stat(tmpdir); os.IsNotExist(err) {
if err = os.Mkdir(tmpdir, 0750); err != nil {
return nil, errors.Wrap(err, "failed to create tempdir from env TEST_TMP_DIR")
}
} else {
t.Logf("WARNING: using tempdir that already exists %s", tmpdir)
}
} else {
prefix := "consul"
if t != nil {
// Use test name for tmpdir if available
prefix = strings.Replace(t.Name(), "/", "_", -1)
}
tmpdir, err = os.MkdirTemp("", prefix)
if err != nil {
return nil, errors.Wrap(err, "failed to create tempdir")
}
}

consulVersion, err := findConsulVersion()
if err != nil {
return nil, err
}

datadir := filepath.Join(tmpdir, "data")
if _, err := os.Stat(datadir); !os.IsNotExist(err) {
t.Logf("WARNING: using a data that already exists %s", datadir)
}
cfg := defaultServerConfig(t, consulVersion)
cfg.DataDir = filepath.Join(tmpdir, "data")
cfg.DataDir = datadir
if cb != nil {
cb(cfg)
}
Expand All @@ -324,6 +350,7 @@ func NewTestServerConfigT(t TestingTB, cb ServerConfigCallback) (*TestServer, er
// Start the server
args := []string{"agent", "-config-file", configFile}
args = append(args, cfg.Args...)
t.Logf("test cmd args: consul args: %s", args)
cmd := exec.Command("consul", args...)
cmd.Stdout = cfg.Stdout
cmd.Stderr = cfg.Stderr
Expand Down Expand Up @@ -388,6 +415,21 @@ func (s *TestServer) Stop() error {
}

if s.cmd.Process != nil {

if saveSnapshot {
fmt.Println("Saving snapshot")
// create a snapshot prior to upgrade test
args := []string{"snapshot", "save", "-http-addr",
fmt.Sprintf("http://%s", s.HTTPAddr), filepath.Join(s.tmpdir, "backup.snap")}
fmt.Printf("Saving snapshot: consul args: %s\n", args)
cmd := exec.Command("consul", args...)
cmd.Stdout = s.Config.Stdout
cmd.Stderr = s.Config.Stderr
if err := cmd.Run(); err != nil {
return errors.Wrap(err, "failed to save a snapshot")
}
}

if runtime.GOOS == "windows" {
if err := s.cmd.Process.Kill(); err != nil {
return errors.Wrap(err, "failed to kill consul server")
Expand Down
6 changes: 3 additions & 3 deletions sdk/testutil/testlog.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ import (
// be used by tests to set the log level of a hclog.Logger. Defaults to
// hclog.Warn if the environment variable is unset, or if the value of the
// environment variable can not be matched to a log level.
var TestLogLevel = testLogLevel()
var TestLogLevel = TestLogLevelWithDefault(hclog.Warn)

func testLogLevel() hclog.Level {
func TestLogLevelWithDefault(l hclog.Level) hclog.Level {
level := hclog.LevelFromString(os.Getenv("TEST_LOG_LEVEL"))
if level != hclog.NoLevel {
return level
}
return hclog.Warn
return l
}

func Logger(t TestingTB) hclog.InterceptLogger {
Expand Down
2 changes: 2 additions & 0 deletions testing/deployer/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,5 @@ require (
golang.org/x/text v0.11.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

replace github.com/hashicorp/consul/sdk => ../../sdk
2 changes: 0 additions & 2 deletions testing/deployer/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/hashicorp/consul/api v1.24.0 h1:u2XyStA2j0jnCiVUU7Qyrt8idjRn4ORhK6DlvZ3bWhA=
github.com/hashicorp/consul/api v1.24.0/go.mod h1:NZJGRFYruc/80wYowkPFCp1LbGmJC9L8izrwfyVx/Wg=
github.com/hashicorp/consul/sdk v0.14.1 h1:ZiwE2bKb+zro68sWzZ1SgHF3kRMBZ94TwOCFRF4ylPs=
github.com/hashicorp/consul/sdk v0.14.1/go.mod h1:vFt03juSzocLRFo59NkeQHHmQa6+g7oU0pfzdI1mUhg=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
Expand Down
16 changes: 8 additions & 8 deletions testing/deployer/sprawl/acl.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func (s *Sprawl) bootstrapACLs(cluster string) error {
return fmt.Errorf("management token no longer works: %w", err)
}

logger.Info("current management token", "token", mgmtToken)
logger.Debug("current management token", "token", mgmtToken)
return nil
}

Expand All @@ -65,7 +65,7 @@ TRYAGAIN2:
tok, _, err := ac.Bootstrap()
if err != nil {
if isACLNotBootstrapped(err) {
logger.Warn("system is rebooting", "error", err)
logger.Debug("system is rebooting", "error", err)
time.Sleep(250 * time.Millisecond)
goto TRYAGAIN2
}
Expand All @@ -74,7 +74,7 @@ TRYAGAIN2:
mgmtToken = tok.SecretID
s.secrets.SaveGeneric(cluster, secrets.BootstrapToken, mgmtToken)

logger.Info("current management token", "token", mgmtToken)
logger.Debug("current management token", "token", mgmtToken)

return nil

Expand Down Expand Up @@ -120,7 +120,7 @@ func (s *Sprawl) createAnonymousToken(cluster *topology.Cluster) error {
return err
}

logger.Info("created anonymous token",
logger.Debug("created anonymous token",
"token", token.SecretID,
)

Expand All @@ -138,7 +138,7 @@ func (s *Sprawl) createAnonymousPolicy(cluster *topology.Cluster) error {
return err
}

logger.Info("created anonymous policy",
logger.Debug("created anonymous policy",
"policy-name", op.Name,
"policy-id", op.ID,
)
Expand All @@ -164,7 +164,7 @@ func (s *Sprawl) createAgentTokens(cluster *topology.Cluster) error {
return err
}

logger.Info("created agent token",
logger.Debug("created agent token",
"node", node.ID(),
"token", token.SecretID,
)
Expand Down Expand Up @@ -193,7 +193,7 @@ func (s *Sprawl) createCrossNamespaceCatalogReadPolicies(cluster *topology.Clust
return err
}

logger.Info("created cross-ns-catalog-read policy",
logger.Debug("created cross-ns-catalog-read policy",
"policy-name", op.Name,
"policy-id", op.ID,
"partition", partition,
Expand Down Expand Up @@ -244,7 +244,7 @@ func (s *Sprawl) createServiceTokens(cluster *topology.Cluster) error {
return fmt.Errorf("could not create token: %w", err)
}

logger.Info("created service token",
logger.Debug("created service token",
"service", svc.ID.Name,
"namespace", svc.ID.Namespace,
"partition", svc.ID.Partition,
Expand Down
1 change: 0 additions & 1 deletion testing/deployer/sprawl/acl_rules.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,6 @@ func policyForMeshGateway(svc *topology.Service, enterprise bool) *api.ACLPolicy
Description: policyName,
}
if enterprise {
fmt.Printf("Enterprise mgw ACLS - Partition: %s, Namespace: default", svc.ID.Partition)
policy.Partition = svc.ID.Partition
policy.Namespace = "default"
}
Expand Down
12 changes: 6 additions & 6 deletions testing/deployer/sprawl/boot.go
Original file line number Diff line number Diff line change
Expand Up @@ -427,12 +427,12 @@ func (s *Sprawl) waitForLocalWrites(cluster *topology.Cluster, token string) {
start := time.Now()
for attempts := 0; ; attempts++ {
if err := tryKV(); err != nil {
logger.Warn("local kv write failed; something is not ready yet", "error", err)
logger.Debug("local kv write failed; something is not ready yet", "error", err)
time.Sleep(500 * time.Millisecond)
continue
} else {
dur := time.Since(start)
logger.Info("local kv write success", "elapsed", dur, "retries", attempts)
logger.Debug("local kv write success", "elapsed", dur, "retries", attempts)
}

break
Expand All @@ -442,12 +442,12 @@ func (s *Sprawl) waitForLocalWrites(cluster *topology.Cluster, token string) {
start = time.Now()
for attempts := 0; ; attempts++ {
if err := tryAP(); err != nil {
logger.Warn("local partition write failed; something is not ready yet", "error", err)
logger.Debug("local partition write failed; something is not ready yet", "error", err)
time.Sleep(500 * time.Millisecond)
continue
} else {
dur := time.Since(start)
logger.Info("local partition write success", "elapsed", dur, "retries", attempts)
logger.Debug("local partition write success", "elapsed", dur, "retries", attempts)
}

break
Expand Down Expand Up @@ -501,10 +501,10 @@ func (s *Sprawl) waitForClientAntiEntropyOnce(cluster *topology.Cluster) error {

if len(stragglers) == 0 {
dur := time.Since(start)
logger.Info("all nodes have posted node updates, so first anti-entropy has happened", "elapsed", dur)
logger.Debug("all nodes have posted node updates, so first anti-entropy has happened", "elapsed", dur)
return nil
}
logger.Info("not all client nodes have posted node updates yet", "nodes", stragglers)
logger.Debug("not all client nodes have posted node updates yet", "nodes", stragglers)

time.Sleep(1 * time.Second)
}
Expand Down
8 changes: 4 additions & 4 deletions testing/deployer/sprawl/catalog.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ RETRY:
return fmt.Errorf("failed to register service %q to node %q: %w", svc.ID, node.ID(), err)
}

logger.Info("registered service to client agent",
logger.Debug("registered service to client agent",
"service", svc.ID.Name,
"node", node.Name,
"namespace", svc.ID.Namespace,
Expand Down Expand Up @@ -226,7 +226,7 @@ RETRY:
return fmt.Errorf("error registering virtual node %s: %w", node.ID(), err)
}

logger.Info("virtual node created",
logger.Debug("virtual node created",
"node", node.ID(),
)

Expand Down Expand Up @@ -258,7 +258,7 @@ RETRY:
return fmt.Errorf("error registering service %s to node %s: %w", svc.ID, node.ID(), err)
}

logger.Info("dataplane service created",
logger.Debug("dataplane service created",
"service", svc.ID,
"node", node.ID(),
)
Expand Down Expand Up @@ -293,7 +293,7 @@ RETRY:
return fmt.Errorf("error registering service %s to node %s: %w", svc.ID, node.ID(), err)
}

logger.Info("dataplane sidecar service created",
logger.Debug("dataplane sidecar service created",
"service", pid,
"node", node.ID(),
)
Expand Down
2 changes: 1 addition & 1 deletion testing/deployer/sprawl/configentries.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func (s *Sprawl) populateInitialConfigEntries(cluster *topology.Cluster) error {
err,
)
}
logger.Info("wrote initial config entry",
logger.Debug("wrote initial config entry",
"kind", ce.GetKind(),
"name", ce.GetName(),
"namespace", ce.GetNamespace(),
Expand Down
3 changes: 2 additions & 1 deletion testing/deployer/sprawl/consul.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,14 @@ func (s *Sprawl) waitForLeader(cluster *topology.Cluster) {
client = s.clients[cluster.Name]
logger = s.logger.With("cluster", cluster.Name)
)
logger.Info("waiting for cluster to elect leader")
for {
leader, err := client.Status().Leader()
if leader != "" && err == nil {
logger.Info("cluster has leader", "leader_addr", leader)
return
}
logger.Info("cluster has no leader yet", "error", err)
logger.Debug("cluster has no leader yet", "error", err)
time.Sleep(500 * time.Millisecond)
}
}
Expand Down
2 changes: 1 addition & 1 deletion testing/deployer/sprawl/details.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ func (s *Sprawl) PrintDetails() error {

w.Flush()

s.logger.Info("CURRENT SPRAWL DETAILS", "details", buf.String())
s.logger.Debug("CURRENT SPRAWL DETAILS", "details", buf.String())

return nil
}
Expand Down
6 changes: 3 additions & 3 deletions testing/deployer/sprawl/ent.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func (s *Sprawl) initTenancies(cluster *topology.Cluster) error {
if err != nil {
return fmt.Errorf("error creating partition %q: %w", ap.Name, err)
}
logger.Info("created partition", "partition", ap.Name)
logger.Debug("created partition", "partition", ap.Name)
}

partitionNameList = append(partitionNameList, ap.Name)
Expand Down Expand Up @@ -105,13 +105,13 @@ func (s *Sprawl) initTenancies(cluster *topology.Cluster) error {
if err != nil {
return err
}
logger.Info("updated namespace", "namespace", ns, "partition", ap.Name)
logger.Debug("updated namespace", "namespace", ns, "partition", ap.Name)
} else {
_, _, err := nsClient.Create(obj, nil)
if err != nil {
return err
}
logger.Info("created namespace", "namespace", ns, "partition", ap.Name)
logger.Debug("created namespace", "namespace", ns, "partition", ap.Name)
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion testing/deployer/sprawl/internal/build/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func DockerImages(
run *runner.Runner,
t *topology.Topology,
) error {
logw := logger.Named("docker").StandardWriter(&hclog.StandardLoggerOptions{ForceLevel: hclog.Info})
logw := logger.Named("docker").StandardWriter(&hclog.StandardLoggerOptions{ForceLevel: hclog.Debug})

built := make(map[string]struct{})
for _, c := range t.Clusters {
Expand Down
4 changes: 2 additions & 2 deletions testing/deployer/sprawl/internal/tfgen/digest.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func (g *Generator) digestOutputs(out *Outputs) error {
}

if node.DigestExposedPorts(nodeOut.Ports) {
g.logger.Info("discovered exposed port mappings",
g.logger.Debug("discovered exposed port mappings",
"cluster", clusterName,
"node", nid.String(),
"ports", nodeOut.Ports,
Expand All @@ -37,7 +37,7 @@ func (g *Generator) digestOutputs(out *Outputs) error {
return err
}
if changed {
g.logger.Info("discovered exposed forward proxy port",
g.logger.Debug("discovered exposed forward proxy port",
"network", netName,
"port", proxyPort,
)
Expand Down
Loading