From 33b7fa79f94cdb3774ebdce7f45b9ea063ad84c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Mon, 26 May 2025 11:18:09 +0200 Subject: [PATCH] Streamline config, fix tests --- services/activitylog/pkg/config/config.go | 1 + .../pkg/config/defaults/defaultconfig.go | 1 + services/activitylog/pkg/server/http/server.go | 1 - services/activitylog/pkg/service/options.go | 14 -------------- services/activitylog/pkg/service/service.go | 4 ++-- services/activitylog/pkg/service/service_test.go | 16 ++++++++++------ 6 files changed, 14 insertions(+), 23 deletions(-) diff --git a/services/activitylog/pkg/config/config.go b/services/activitylog/pkg/config/config.go index 84a42e49cd..48e9ae7a9d 100644 --- a/services/activitylog/pkg/config/config.go +++ b/services/activitylog/pkg/config/config.go @@ -34,6 +34,7 @@ type Config struct { Context context.Context `yaml:"-"` WriteBufferDuration time.Duration `yaml:"write_buffer_duration" env:"ACTIVITYLOG_WRITE_BUFFER_DURATION" desc:"The duration to wait before flushing the write buffer. This is used to reduce the number of writes to the store." introductionVersion:"%%NEXT%%"` + MaxActivities int `yaml:"max_activities" env:"ACTIVITYLOG_MAX_ACTIVITIES" desc:"The maximum number of activities to keep in the store per resource. If the number of activities exceeds this value, the oldest activities will be removed." introductionVersion:"%%NEXT%%"` } // Events combines the configuration options for the event bus. diff --git a/services/activitylog/pkg/config/defaults/defaultconfig.go b/services/activitylog/pkg/config/defaults/defaultconfig.go index 70b445398a..043646ce93 100644 --- a/services/activitylog/pkg/config/defaults/defaultconfig.go +++ b/services/activitylog/pkg/config/defaults/defaultconfig.go @@ -53,6 +53,7 @@ func DefaultConfig() *config.Config { }, }, WriteBufferDuration: 10 * time.Second, + MaxActivities: 6000, } } diff --git a/services/activitylog/pkg/server/http/server.go b/services/activitylog/pkg/server/http/server.go index 5a6c4ccdbc..1b0b914050 100644 --- a/services/activitylog/pkg/server/http/server.go +++ b/services/activitylog/pkg/server/http/server.go @@ -88,7 +88,6 @@ func Server(opts ...Option) (http.Service, error) { svc.HistoryClient(options.HistoryClient), svc.ValueClient(options.ValueClient), svc.RegisteredEvents(options.RegisteredEvents), - svc.WriteBufferDuration(options.Config.WriteBufferDuration), ) if err != nil { return http.Service{}, err diff --git a/services/activitylog/pkg/service/options.go b/services/activitylog/pkg/service/options.go index 0a34bd9a30..22c6d6282b 100644 --- a/services/activitylog/pkg/service/options.go +++ b/services/activitylog/pkg/service/options.go @@ -103,17 +103,3 @@ func ValueClient(vs settingssvc.ValueService) Option { o.ValueClient = vs } } - -// WriteBufferDuration sets the write buffer duration -func WriteBufferDuration(d time.Duration) Option { - return func(o *Options) { - o.WriteBufferDuration = d - } -} - -// MaxActivities sets the maximum number of activities to store -func MaxActivities(max int) Option { - return func(o *Options) { - o.MaxActivities = max - } -} diff --git a/services/activitylog/pkg/service/service.go b/services/activitylog/pkg/service/service.go index 0f73e4b680..a0cd0a3cbd 100644 --- a/services/activitylog/pkg/service/service.go +++ b/services/activitylog/pkg/service/service.go @@ -206,10 +206,10 @@ func New(opts ...Option) (*ActivitylogService, error) { tp: o.TraceProvider, tracer: o.TraceProvider.Tracer("github.com/opencloud-eu/opencloud/services/activitylog/pkg/service"), parentIdCache: cache, - maxActivities: o.MaxActivities, + maxActivities: o.Config.MaxActivities, natskv: kv, } - s.debouncer = NewDebouncer(o.WriteBufferDuration, s.storeActivity) + s.debouncer = NewDebouncer(o.Config.WriteBufferDuration, s.storeActivity) s.mux.Get("/graph/v1beta1/extensions/org.libregraph/activities", s.HandleGetItemActivities) diff --git a/services/activitylog/pkg/service/service_test.go b/services/activitylog/pkg/service/service_test.go index 7e48e0c657..89a27c759b 100644 --- a/services/activitylog/pkg/service/service_test.go +++ b/services/activitylog/pkg/service/service_test.go @@ -66,7 +66,7 @@ var _ = SynchronizedAfterSuite(func() { var _ = Describe("ActivitylogService", func() { var ( alog *ActivitylogService - getResource func(ref *provider.Reference) (*provider.ResourceInfo, error) + getResource func(_ context.Context, ref *provider.Reference) (*provider.ResourceInfo, error) writebufferduration = 100 * time.Millisecond ) @@ -84,9 +84,9 @@ var _ = Describe("ActivitylogService", func() { Nodes: []string{server.Addr().String()}, Database: "activitylog-test-" + uuid.New().String(), }, + MaxActivities: 4, + WriteBufferDuration: writebufferduration, }), - MaxActivities(4), - WriteBufferDuration(writebufferduration), Stream(stream), TraceProvider(noop.NewTracerProvider()), Mux(chi.NewMux()), @@ -148,7 +148,7 @@ var _ = Describe("ActivitylogService", func() { tc := tc // capture range variable Context(tc.Name, func() { JustBeforeEach(func() { - getResource = func(ref *provider.Reference) (*provider.ResourceInfo, error) { + getResource = func(_ context.Context, ref *provider.Reference) (*provider.ResourceInfo, error) { return tc.Tree[ref.GetResourceId().GetOpaqueId()], nil } @@ -179,9 +179,13 @@ var _ = Describe("ActivitylogService", func() { } ) + BeforeEach(func() { + writebufferduration = 100 * time.Millisecond + }) + Describe("addActivity", func() { var ( - getResource = func(ref *provider.Reference) (*provider.ResourceInfo, error) { + getResource = func(_ context.Context, ref *provider.Reference) (*provider.ResourceInfo, error) { return tree[ref.GetResourceId().GetOpaqueId()], nil } ) @@ -234,7 +238,7 @@ var _ = Describe("ActivitylogService", func() { Describe("Activities", func() { It("combines multiple batches", func() { - getResource = func(ref *provider.Reference) (*provider.ResourceInfo, error) { + getResource = func(_ context.Context, ref *provider.Reference) (*provider.ResourceInfo, error) { return tree[ref.GetResourceId().GetOpaqueId()], nil }