From 48721084df7247a9addabb5a1ccfbb46bb57ac6d Mon Sep 17 00:00:00 2001 From: Kateryna Nezdolii Date: Mon, 11 May 2026 18:08:32 +0000 Subject: [PATCH] [cache/linear] Expose cache version Signed-off-by: Kateryna Nezdolii --- pkg/cache/v3/linear.go | 4 ++++ pkg/cache/v3/linear_test.go | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/pkg/cache/v3/linear.go b/pkg/cache/v3/linear.go index b126027f3..0913cef5b 100644 --- a/pkg/cache/v3/linear.go +++ b/pkg/cache/v3/linear.go @@ -565,6 +565,10 @@ func (cache *LinearCache) CreateDeltaWatch(request *DeltaRequest, sub Subscripti return cache.trackWatch(watch), nil } +func (cache *LinearCache) GetVersion() uint64 { + return cache.version +} + func (cache *LinearCache) nextWatchID() uint64 { cache.currentWatchID++ if cache.currentWatchID == 0 { diff --git a/pkg/cache/v3/linear_test.go b/pkg/cache/v3/linear_test.go index 5cf3cdb56..73382457a 100644 --- a/pkg/cache/v3/linear_test.go +++ b/pkg/cache/v3/linear_test.go @@ -394,6 +394,26 @@ func TestLinearGetResources(t *testing.T) { assert.Truef(t, reflect.DeepEqual(expectedResources, resources), "resources are not equal. got: %v want: %v", resources, expectedResources) } +func TestLinearGetVersion(t *testing.T) { + c := NewLinearCache(testType) + assert.Equal(t, uint64(0), c.GetVersion()) + + require.NoError(t, c.UpdateResource("a", testResource("a"))) + assert.Equal(t, uint64(1), c.GetVersion()) + + require.NoError(t, c.UpdateResource("b", testResource("b"))) + assert.Equal(t, uint64(2), c.GetVersion()) + + require.NoError(t, c.DeleteResource("a")) + assert.Equal(t, uint64(3), c.GetVersion()) + + require.NoError(t, c.UpdateResources(map[string]types.Resource{"c": testResource("c")}, []string{"b"})) + assert.Equal(t, uint64(4), c.GetVersion()) + + c.SetResources(map[string]types.Resource{"d": testResource("d")}) + assert.Equal(t, uint64(5), c.GetVersion()) +} + func TestLinearVersionPrefix(t *testing.T) { c := NewLinearCache(testType, WithVersionPrefix("instance1-"))