diff --git a/cmd/maglevc/commands.go b/cmd/maglevc/commands.go index c48da1d..1d0d389 100644 --- a/cmd/maglevc/commands.go +++ b/cmd/maglevc/commands.go @@ -81,9 +81,9 @@ func buildTree() *Node { setDisabled := &Node{Word: "disabled", Help: "disable backend (not implemented)", Run: runNotImplemented} setEnabled := &Node{Word: "enabled", Help: "enable backend (not implemented)", Run: runNotImplemented} setBackendName := &Node{ - Word: "", - Help: "backend name", - Dynamic: dynBackends, + Word: "", + Help: "backend name", + Dynamic: dynBackends, Children: []*Node{setPause, setResume, setDisabled, setEnabled}, } setBackend := &Node{ diff --git a/internal/config/config.go b/internal/config/config.go index 113e18f..cf0d8fd 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -86,10 +86,10 @@ type rawConfig struct { } type rawMaglev struct { - HealthChecker rawHealthCheckerCfg `yaml:"healthchecker"` + HealthChecker rawHealthCheckerCfg `yaml:"healthchecker"` HealthChecks map[string]rawHealthCheck `yaml:"healthchecks"` - Backends map[string]rawBackend `yaml:"backends"` - Frontends map[string]rawFrontend `yaml:"frontends"` + Backends map[string]rawBackend `yaml:"backends"` + Frontends map[string]rawFrontend `yaml:"frontends"` } type rawHealthCheckerCfg struct { diff --git a/internal/grpcapi/server_test.go b/internal/grpcapi/server_test.go index f239919..bf7fc14 100644 --- a/internal/grpcapi/server_test.go +++ b/internal/grpcapi/server_test.go @@ -98,7 +98,7 @@ func TestGetFrontend(t *testing.T) { client, cleanup := startTestServer(t, ctx, c) defer cleanup() - info, err := client.GetFrontend(ctx, &GetFrontendRequest{Name:"web"}) + info, err := client.GetFrontend(ctx, &GetFrontendRequest{Name: "web"}) if err != nil { t.Fatalf("GetFrontend: %v", err) } @@ -121,7 +121,7 @@ func TestGetFrontendNotFound(t *testing.T) { client, cleanup := startTestServer(t, ctx, c) defer cleanup() - _, err := client.GetFrontend(ctx, &GetFrontendRequest{Name:"nope"}) + _, err := client.GetFrontend(ctx, &GetFrontendRequest{Name: "nope"}) if err == nil { t.Error("expected error for unknown frontend") } @@ -152,7 +152,7 @@ func TestGetBackend(t *testing.T) { client, cleanup := startTestServer(t, ctx, c) defer cleanup() - info, err := client.GetBackend(ctx, &GetBackendRequest{Name:"be0"}) + info, err := client.GetBackend(ctx, &GetBackendRequest{Name: "be0"}) if err != nil { t.Fatalf("GetBackend: %v", err) } @@ -178,7 +178,7 @@ func TestGetBackendNotFound(t *testing.T) { client, cleanup := startTestServer(t, ctx, c) defer cleanup() - _, err := client.GetBackend(ctx, &GetBackendRequest{Name:"nope"}) + _, err := client.GetBackend(ctx, &GetBackendRequest{Name: "nope"}) if err == nil { t.Error("expected error for unknown backend") } @@ -192,7 +192,7 @@ func TestPauseResumeBackend(t *testing.T) { client, cleanup := startTestServer(t, ctx, c) defer cleanup() - info, err := client.PauseBackend(ctx, &PauseResumeRequest{Name:"be0"}) + info, err := client.PauseBackend(ctx, &PauseResumeRequest{Name: "be0"}) if err != nil { t.Fatalf("PauseBackend: %v", err) } @@ -200,7 +200,7 @@ func TestPauseResumeBackend(t *testing.T) { t.Errorf("after pause: got %q, want paused", info.State) } - info, err = client.ResumeBackend(ctx, &PauseResumeRequest{Name:"be0"}) + info, err = client.ResumeBackend(ctx, &PauseResumeRequest{Name: "be0"}) if err != nil { t.Fatalf("ResumeBackend: %v", err) } diff --git a/internal/health/state_test.go b/internal/health/state_test.go index bd7dc18..ce5717c 100644 --- a/internal/health/state_test.go +++ b/internal/health/state_test.go @@ -253,14 +253,14 @@ func TestTransitionHistory(t *testing.T) { maxHistory := 3 // Drive several state changes. Each cycle: pass×2→Up, fail→Down (Unknown→Down on first fail). - b.Record(fail(), maxHistory) // Unknown→Down - b.Record(pass(), maxHistory) // counter++ - b.Record(pass(), maxHistory) // Down→Up - b.Record(fail(), maxHistory) // Up: counter drops - b.Record(fail(), maxHistory) // Up: counter drops - b.Record(fail(), maxHistory) // Up→Down - b.Record(pass(), maxHistory) // counter++ - b.Record(pass(), maxHistory) // Down→Up + b.Record(fail(), maxHistory) // Unknown→Down + b.Record(pass(), maxHistory) // counter++ + b.Record(pass(), maxHistory) // Down→Up + b.Record(fail(), maxHistory) // Up: counter drops + b.Record(fail(), maxHistory) // Up: counter drops + b.Record(fail(), maxHistory) // Up→Down + b.Record(pass(), maxHistory) // counter++ + b.Record(pass(), maxHistory) // Down→Up if len(b.Transitions) != maxHistory { t.Errorf("transitions capped at %d, got %d", maxHistory, len(b.Transitions)) diff --git a/internal/prober/prober.go b/internal/prober/prober.go index 3bb656b..7e90c8a 100644 --- a/internal/prober/prober.go +++ b/internal/prober/prober.go @@ -17,10 +17,10 @@ type ProbeFunc func(ctx context.Context, cfg ProbeConfig) health.ProbeResult // ProbeConfig holds all parameters needed to execute a single probe. type ProbeConfig struct { - Target net.IP // backend address to probe - Port uint16 // destination port (used by TCP and HTTP probers) - ProbeSrc net.IP // source address to bind; nil lets the OS choose - HealthCheckNetns string // network namespace name; sockets are created inside it + Target net.IP // backend address to probe + Port uint16 // destination port (used by TCP and HTTP probers) + ProbeSrc net.IP // source address to bind; nil lets the OS choose + HealthCheckNetns string // network namespace name; sockets are created inside it Timeout time.Duration HTTP *config.HTTPParams // non-nil for type http/https TCP *config.TCPParams // non-nil for type tcp