mirror of
https://github.com/harness/drone.git
synced 2025-05-05 15:32:56 +00:00
feat: [CODE-3514]: make mediator public (#3709)
This commit is contained in:
parent
dbb193e834
commit
952a6d852f
@ -30,7 +30,7 @@ type RepoFinder interface {
|
||||
FindByID(ctx context.Context, id int64) (*types.RepositoryCore, error)
|
||||
}
|
||||
|
||||
func registerEventListeners(
|
||||
func RegisterEventListeners(
|
||||
ctx context.Context,
|
||||
instanceID string,
|
||||
sender Sender,
|
||||
|
@ -59,7 +59,7 @@ type MetricStore interface {
|
||||
) ([]types.UsageMetric, error)
|
||||
}
|
||||
|
||||
type mediator struct {
|
||||
type Mediator struct {
|
||||
queue *queue
|
||||
|
||||
workers []*worker
|
||||
@ -72,13 +72,13 @@ type mediator struct {
|
||||
config Config
|
||||
}
|
||||
|
||||
func newMediator(
|
||||
func NewMediator(
|
||||
ctx context.Context,
|
||||
spaceFinder SpaceFinder,
|
||||
usageMetricsStore MetricStore,
|
||||
config Config,
|
||||
) *mediator {
|
||||
m := &mediator{
|
||||
) *Mediator {
|
||||
m := &Mediator{
|
||||
queue: newQueue(),
|
||||
spaceFinder: spaceFinder,
|
||||
metricsStore: usageMetricsStore,
|
||||
@ -91,7 +91,7 @@ func newMediator(
|
||||
return m
|
||||
}
|
||||
|
||||
func (m *mediator) Start(ctx context.Context) {
|
||||
func (m *Mediator) Start(ctx context.Context) {
|
||||
for i := range m.workers {
|
||||
w := newWorker(i, m.queue)
|
||||
go w.start(ctx, m.process)
|
||||
@ -99,23 +99,23 @@ func (m *mediator) Start(ctx context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
func (m *mediator) Stop() {
|
||||
func (m *Mediator) Stop() {
|
||||
for i := range m.workers {
|
||||
m.workers[i].stop()
|
||||
}
|
||||
}
|
||||
|
||||
func (m *mediator) Send(ctx context.Context, payload Metric) error {
|
||||
func (m *Mediator) Send(ctx context.Context, payload Metric) error {
|
||||
m.wg.Add(1)
|
||||
m.queue.Add(ctx, payload)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *mediator) Wait() {
|
||||
func (m *Mediator) Wait() {
|
||||
m.wg.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.spaceFinder.FindByRef(ctx, spaceRef)
|
||||
if err != nil {
|
||||
return Bandwidth{}, fmt.Errorf("could not find space: %w", err)
|
||||
@ -131,7 +131,7 @@ func (m *mediator) Size(ctx context.Context, spaceRef string) (Bandwidth, error)
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (m *mediator) process(ctx context.Context, payload *Metric) {
|
||||
func (m *Mediator) process(ctx context.Context, payload *Metric) {
|
||||
defer m.wg.Done()
|
||||
|
||||
space, err := m.spaceFinder.FindByRef(ctx, payload.SpaceRef)
|
||||
|
@ -102,7 +102,7 @@ func TestMediator_basic(t *testing.T) {
|
||||
numEventsCreated := 4
|
||||
numEventsPushed := 5
|
||||
defaultSize := 512
|
||||
mediator := newMediator(
|
||||
mediator := NewMediator(
|
||||
context.Background(),
|
||||
spaceFinderMock,
|
||||
usageMock,
|
||||
@ -110,7 +110,7 @@ func TestMediator_basic(t *testing.T) {
|
||||
MaxWorkers: 5,
|
||||
},
|
||||
)
|
||||
err = registerEventListeners(context.Background(), "test", mediator, repoEvReaderFactory, repoFinderMock)
|
||||
err = RegisterEventListeners(context.Background(), "test", mediator, repoEvReaderFactory, repoFinderMock)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to register event listeners: %v", err)
|
||||
}
|
||||
|
@ -43,14 +43,14 @@ func ProvideMediator(
|
||||
return &Noop{}, nil
|
||||
}
|
||||
|
||||
m := newMediator(
|
||||
m := NewMediator(
|
||||
ctx,
|
||||
spaceFinder,
|
||||
metricsStore,
|
||||
NewConfig(config),
|
||||
)
|
||||
|
||||
if err := registerEventListeners(ctx, config.InstanceID, m, repoEvReaderFactory, repoFinder); err != nil {
|
||||
if err := RegisterEventListeners(ctx, config.InstanceID, m, repoEvReaderFactory, repoFinder); err != nil {
|
||||
return nil, fmt.Errorf("failed to register event listeners: %w", err)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user