mirror of
https://github.com/harness/drone.git
synced 2025-04-28 05:36:58 +00:00
chore: [CODE-3148]: use refcache.SpaceFinder in usage package (#3422)
* use refcache.SpaceFinder in usage package
This commit is contained in:
parent
f85b6c45c3
commit
682f55de71
@ -40,31 +40,20 @@ func (i *mockInterface) Send(
|
|||||||
return i.SendFunc(ctx, payload)
|
return i.SendFunc(ctx, payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
type SpaceStoreMock struct {
|
type SpaceFinderMock struct {
|
||||||
FindByRefFn func(
|
FindByRefFn func(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
spaceRef string,
|
spaceRef string,
|
||||||
) (*types.Space, error)
|
) (*types.SpaceCore, error)
|
||||||
FindByIDsFn func(
|
|
||||||
ctx context.Context,
|
|
||||||
ids ...int64,
|
|
||||||
) ([]*types.Space, error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SpaceStoreMock) FindByRef(
|
func (s *SpaceFinderMock) FindByRef(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
spaceRef string,
|
spaceRef string,
|
||||||
) (*types.Space, error) {
|
) (*types.SpaceCore, error) {
|
||||||
return s.FindByRefFn(ctx, spaceRef)
|
return s.FindByRefFn(ctx, spaceRef)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SpaceStoreMock) FindByIDs(
|
|
||||||
ctx context.Context,
|
|
||||||
ids ...int64,
|
|
||||||
) ([]*types.Space, error) {
|
|
||||||
return s.FindByIDsFn(ctx, ids...)
|
|
||||||
}
|
|
||||||
|
|
||||||
type MetricsMock struct {
|
type MetricsMock struct {
|
||||||
UpsertOptimisticFn func(ctx context.Context, in *types.UsageMetric) error
|
UpsertOptimisticFn func(ctx context.Context, in *types.UsageMetric) error
|
||||||
GetMetricsFn func(
|
GetMetricsFn func(
|
||||||
|
@ -35,9 +35,8 @@ type Metric struct {
|
|||||||
Bandwidth
|
Bandwidth
|
||||||
}
|
}
|
||||||
|
|
||||||
type SpaceStore interface {
|
type SpaceFinder interface {
|
||||||
FindByRef(ctx context.Context, spaceRef string) (*types.Space, error)
|
FindByRef(ctx context.Context, spaceRef string) (*types.SpaceCore, error)
|
||||||
FindByIDs(ctx context.Context, spaceIDs ...int64) ([]*types.Space, error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type MetricStore interface {
|
type MetricStore interface {
|
||||||
@ -60,7 +59,7 @@ type Mediator struct {
|
|||||||
|
|
||||||
workers []*worker
|
workers []*worker
|
||||||
|
|
||||||
spaceStore SpaceStore
|
spaceFinder SpaceFinder
|
||||||
metricsStore MetricStore
|
metricsStore MetricStore
|
||||||
|
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
@ -70,13 +69,13 @@ type Mediator struct {
|
|||||||
|
|
||||||
func NewMediator(
|
func NewMediator(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
spaceStore SpaceStore,
|
spaceFinder SpaceFinder,
|
||||||
usageMetricsStore MetricStore,
|
usageMetricsStore MetricStore,
|
||||||
config Config,
|
config Config,
|
||||||
) *Mediator {
|
) *Mediator {
|
||||||
m := &Mediator{
|
m := &Mediator{
|
||||||
queue: newQueue(),
|
queue: newQueue(),
|
||||||
spaceStore: spaceStore,
|
spaceFinder: spaceFinder,
|
||||||
metricsStore: usageMetricsStore,
|
metricsStore: usageMetricsStore,
|
||||||
workers: make([]*worker, config.MaxWorkers),
|
workers: make([]*worker, config.MaxWorkers),
|
||||||
config: config,
|
config: config,
|
||||||
@ -112,7 +111,7 @@ func (m *Mediator) Wait() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Mediator) Size(ctx context.Context, spaceRef string) (Bandwidth, error) {
|
func (m *Mediator) Size(ctx context.Context, spaceRef string) (Bandwidth, error) {
|
||||||
space, err := m.spaceStore.FindByRef(ctx, spaceRef)
|
space, err := m.spaceFinder.FindByRef(ctx, spaceRef)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Bandwidth{}, fmt.Errorf("could not find space: %w", err)
|
return Bandwidth{}, fmt.Errorf("could not find space: %w", err)
|
||||||
}
|
}
|
||||||
@ -134,7 +133,7 @@ func (m *Mediator) days30() time.Duration {
|
|||||||
func (m *Mediator) process(ctx context.Context, payload *Metric) {
|
func (m *Mediator) process(ctx context.Context, payload *Metric) {
|
||||||
defer m.wg.Done()
|
defer m.wg.Done()
|
||||||
|
|
||||||
space, err := m.spaceStore.FindByRef(ctx, payload.SpaceRef)
|
space, err := m.spaceFinder.FindByRef(ctx, payload.SpaceRef)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Ctx(ctx).Err(err).Msg("failed to find space")
|
log.Ctx(ctx).Err(err).Msg("failed to find space")
|
||||||
return
|
return
|
||||||
|
@ -27,17 +27,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestMediator_basic(t *testing.T) {
|
func TestMediator_basic(t *testing.T) {
|
||||||
space := &types.Space{
|
space := &types.SpaceCore{
|
||||||
ID: 1,
|
ID: 1,
|
||||||
Identifier: "space",
|
Identifier: "space",
|
||||||
}
|
}
|
||||||
spaceMock := &SpaceStoreMock{
|
spaceFinderMock := &SpaceFinderMock{
|
||||||
FindByRefFn: func(context.Context, string) (*types.Space, error) {
|
FindByRefFn: func(context.Context, string) (*types.SpaceCore, error) {
|
||||||
return space, nil
|
return space, nil
|
||||||
},
|
},
|
||||||
FindByIDsFn: func(context.Context, ...int64) ([]*types.Space, error) {
|
|
||||||
return []*types.Space{space}, nil
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
out := atomic.Int64{}
|
out := atomic.Int64{}
|
||||||
@ -74,7 +71,7 @@ func TestMediator_basic(t *testing.T) {
|
|||||||
defaultSize := 512
|
defaultSize := 512
|
||||||
mediator := NewMediator(
|
mediator := NewMediator(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
spaceMock,
|
spaceFinderMock,
|
||||||
usageMock,
|
usageMock,
|
||||||
Config{
|
Config{
|
||||||
MaxWorkers: 5,
|
MaxWorkers: 5,
|
||||||
|
@ -17,6 +17,7 @@ package usage
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
|
"github.com/harness/gitness/app/services/refcache"
|
||||||
"github.com/harness/gitness/app/store"
|
"github.com/harness/gitness/app/store"
|
||||||
"github.com/harness/gitness/types"
|
"github.com/harness/gitness/types"
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ var WireSet = wire.NewSet(
|
|||||||
func ProvideMediator(
|
func ProvideMediator(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
config *types.Config,
|
config *types.Config,
|
||||||
spaceStore store.SpaceStore,
|
spaceFinder refcache.SpaceFinder,
|
||||||
metricsStore store.UsageMetricStore,
|
metricsStore store.UsageMetricStore,
|
||||||
) Sender {
|
) Sender {
|
||||||
if !config.UsageMetrics.Enabled {
|
if !config.UsageMetrics.Enabled {
|
||||||
@ -38,7 +39,7 @@ func ProvideMediator(
|
|||||||
}
|
}
|
||||||
return NewMediator(
|
return NewMediator(
|
||||||
ctx,
|
ctx,
|
||||||
spaceStore,
|
spaceFinder,
|
||||||
metricsStore,
|
metricsStore,
|
||||||
NewConfig(config),
|
NewConfig(config),
|
||||||
)
|
)
|
||||||
|
@ -501,7 +501,7 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro
|
|||||||
genericHandler := api2.NewGenericHandlerProvider(spaceStore, genericController, tokenStore, controller, authenticator, provider, authorizer)
|
genericHandler := api2.NewGenericHandlerProvider(spaceStore, genericController, tokenStore, controller, authenticator, provider, authorizer)
|
||||||
handler3 := router.GenericHandlerProvider(genericHandler)
|
handler3 := router.GenericHandlerProvider(genericHandler)
|
||||||
appRouter := router.AppRouterProvider(registryOCIHandler, apiHandler, handler2, handler3)
|
appRouter := router.AppRouterProvider(registryOCIHandler, apiHandler, handler2, handler3)
|
||||||
sender := usage.ProvideMediator(ctx, config, spaceStore, usageMetricStore)
|
sender := usage.ProvideMediator(ctx, config, spaceFinder, usageMetricStore)
|
||||||
routerRouter := router2.ProvideRouter(ctx, config, authenticator, repoController, reposettingsController, executionController, logsController, spaceController, pipelineController, secretController, triggerController, connectorController, templateController, pluginController, pullreqController, webhookController, githookController, gitInterface, serviceaccountController, controller, principalController, usergroupController, checkController, systemController, uploadController, keywordsearchController, infraproviderController, gitspaceController, migrateController, aiagentController, capabilitiesController, provider, openapiService, appRouter, sender)
|
routerRouter := router2.ProvideRouter(ctx, config, authenticator, repoController, reposettingsController, executionController, logsController, spaceController, pipelineController, secretController, triggerController, connectorController, templateController, pluginController, pullreqController, webhookController, githookController, gitInterface, serviceaccountController, controller, principalController, usergroupController, checkController, systemController, uploadController, keywordsearchController, infraproviderController, gitspaceController, migrateController, aiagentController, capabilitiesController, provider, openapiService, appRouter, sender)
|
||||||
serverServer := server2.ProvideServer(config, routerRouter)
|
serverServer := server2.ProvideServer(config, routerRouter)
|
||||||
publickeyService := publickey.ProvidePublicKey(publicKeyStore, principalInfoCache)
|
publickeyService := publickey.ProvidePublicKey(publicKeyStore, principalInfoCache)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user