layer1: add namespace lifecycle subscribers step 16

This commit is contained in:
Naeel
2026-04-26 10:21:26 +03:00
parent 2857398e11
commit ae8275d0a7
3 changed files with 35 additions and 0 deletions
@@ -0,0 +1,18 @@
# 2026-04-26 — NamespaceManager rewrite, step 16
## Цель шага
Подготовить lifecycle subscriber contract для будущего reconcile path.
## Что меняем
1. Расширяем `NamespaceSubscriber` методами:
- `OnNamespaceAdd()`
- `OnNamespaceRemove()`
- `OnNamespaceResync()`
2. Обновляем тестовую заглушку subscriber-а.
## Что НЕ меняем
- не вызываем subscriber-ов из manager;
- не подключаем contract к runtime components.
+4
View File
@@ -1,6 +1,7 @@
package utils
import (
"context"
"sort"
"sync"
"time"
@@ -8,6 +9,9 @@ import (
type NamespaceSubscriber interface {
Name() string
OnNamespaceAdd(ctx context.Context, record NamespaceRecord) error
OnNamespaceRemove(ctx context.Context, record NamespaceRecord) error
OnNamespaceResync(ctx context.Context, record NamespaceRecord) error
}
type NamespaceManager interface {
+13
View File
@@ -1,6 +1,7 @@
package utils
import (
"context"
"errors"
"reflect"
"testing"
@@ -15,6 +16,18 @@ func (s testNamespaceSubscriber) Name() string {
return s.name
}
func (s testNamespaceSubscriber) OnNamespaceAdd(ctx context.Context, record NamespaceRecord) error {
return nil
}
func (s testNamespaceSubscriber) OnNamespaceRemove(ctx context.Context, record NamespaceRecord) error {
return nil
}
func (s testNamespaceSubscriber) OnNamespaceResync(ctx context.Context, record NamespaceRecord) error {
return nil
}
func TestNamespaceManagerSnapshotAndGet(t *testing.T) {
manager := NewNamespaceManager()
now := time.Now().UTC()