layer1: log namespace summary active flag

This commit is contained in:
Naeel
2026-04-26 11:51:03 +03:00
parent fed69da335
commit 7d7fe561a8
3 changed files with 43 additions and 1 deletions
@@ -2,6 +2,21 @@
## Цель шага
Довести `HasActiveNamespaces()` до реального use-site, чтобы helper не оставался чисто декларативным.
## Что изменено
1. `LogNamespaceManagerSummary()` теперь пишет флаг `has_active_namespaces`.
2. Добавлен unit test на presence и значение этого поля в structured log.
## Почему это безопасно
- watcher behavior не меняется;
- изменён только debug/logging contract;
- покрыто `go test ./pkg/utils/...`.# 2026-04-26 — NamespaceManager rewrite, step 49
## Цель шага
Собрать `prepare + start` managed namespace watcher в один общий entrypoint.
## Что меняем
+1
View File
@@ -143,6 +143,7 @@ func LogNamespaceManagerSummary(logger *zap.Logger, message string, summary Name
logger.Info(message,
zap.Int("total_namespaces", summary.TotalNamespaces),
zap.Int("live_namespaces", summary.LiveNamespaces),
zap.Bool("has_active_namespaces", summary.HasActiveNamespaces()),
zap.Any("phase_counts", summary.PhaseCounts),
zap.Any("source_counts", summary.SourceCounts),
zap.Strings("subscribers", summary.Subscribers),
+26
View File
@@ -8,6 +8,7 @@ import (
"time"
"go.uber.org/zap"
"go.uber.org/zap/zaptest/observer"
corev1 "k8s.io/api/core/v1"
k8sfake "k8s.io/client-go/kubernetes/fake"
k8sCache "k8s.io/client-go/tools/cache"
@@ -583,6 +584,31 @@ func TestLogNamespaceManagerSummary(t *testing.T) {
LogNamespaceManagerSummary(logger, "namespace summary", summary)
}
func TestLogNamespaceManagerSummaryIncludesHasActiveNamespaces(t *testing.T) {
core, logs := observer.New(zap.InfoLevel)
logger := zap.New(core)
LogNamespaceManagerSummary(logger, "namespace summary", NamespaceManagerSummary{
LiveNamespaces: 1,
PhaseCounts: map[NamespacePhase]int{},
SourceCounts: map[NamespaceSource]int{},
Subscribers: []string{},
})
entries := logs.AllUntimed()
if len(entries) != 1 {
t.Fatalf("expected one log entry, got %d", len(entries))
}
fields := entries[0].ContextMap()
active, ok := fields["has_active_namespaces"].(bool)
if !ok {
t.Fatalf("expected has_active_namespaces field in log context")
}
if !active {
t.Fatalf("expected has_active_namespaces=true in log context")
}
}
func TestNamespaceManagerSummaryEmptyContract(t *testing.T) {
manager := NewNamespaceManager()
summary := manager.Summary()