diff --git a/service/extensions/extensions.go b/service/extensions/extensions.go index 57601c8a5100..189d553ab6c4 100644 --- a/service/extensions/extensions.go +++ b/service/extensions/extensions.go @@ -48,11 +48,7 @@ func (bes *Extensions) Start(ctx context.Context, host component.Host) error { ) return err } - _ = bes.telemetry.Status.ReportComponentStatusIf( - instanceID, - component.NewStatusEvent(component.StatusOK), - func(st component.Status) bool { return st == component.StatusStarting }, - ) + _ = bes.telemetry.Status.ReportComponentOKIfStarting(instanceID) extLogger.Info("Extension started.") } return nil diff --git a/service/internal/graph/graph.go b/service/internal/graph/graph.go index 02c2da92c314..1c3c5392bde0 100644 --- a/service/internal/graph/graph.go +++ b/service/internal/graph/graph.go @@ -399,11 +399,7 @@ func (g *Graph) StartAll(ctx context.Context, host component.Host) error { return compErr } - _ = g.telemetry.Status.ReportComponentStatusIf( - instanceID, - component.NewStatusEvent(component.StatusOK), - func(st component.Status) bool { return st == component.StatusStarting }, - ) + _ = g.telemetry.Status.ReportComponentOKIfStarting(instanceID) } return nil } diff --git a/service/internal/servicetelemetry/nop_telemetry_settings_test.go b/service/internal/servicetelemetry/nop_telemetry_settings_test.go index 3b3835c9396e..1043efece75a 100644 --- a/service/internal/servicetelemetry/nop_telemetry_settings_test.go +++ b/service/internal/servicetelemetry/nop_telemetry_settings_test.go @@ -32,11 +32,5 @@ func TestNewNopSettings(t *testing.T) { component.NewStatusEvent(component.StatusStarting), ), ) - require.NoError(t, - set.Status.ReportComponentStatusIf( - &component.InstanceID{}, - component.NewStatusEvent(component.StatusStarting), - func(component.Status) bool { return true }, - ), - ) + require.NoError(t, set.Status.ReportComponentOKIfStarting(&component.InstanceID{})) } diff --git a/service/internal/servicetelemetry/telemetry_settings_test.go b/service/internal/servicetelemetry/telemetry_settings_test.go index 49623a3c364b..f9f2cfd11f04 100644 --- a/service/internal/servicetelemetry/telemetry_settings_test.go +++ b/service/internal/servicetelemetry/telemetry_settings_test.go @@ -33,13 +33,7 @@ func TestSettings(t *testing.T) { component.NewStatusEvent(component.StatusStarting), ), ) - require.NoError(t, - set.Status.ReportComponentStatusIf( - &component.InstanceID{}, - component.NewStatusEvent(component.StatusStarting), - func(component.Status) bool { return true }, - ), - ) + require.NoError(t, set.Status.ReportComponentOKIfStarting(&component.InstanceID{})) compSet := set.ToComponentTelemetrySettings(&component.InstanceID{}) require.NoError(t, compSet.ReportComponentStatus(component.NewStatusEvent(component.StatusStarting))) diff --git a/service/internal/status/status.go b/service/internal/status/status.go index f97256194628..7592f139bcf1 100644 --- a/service/internal/status/status.go +++ b/service/internal/status/status.go @@ -129,21 +129,16 @@ func (r *Reporter) ReportComponentStatus( return r.componentFSM(id).transition(ev) } -// ReportComponentStatusIf reports status for the given InstanceID, if cond, a predicate that -// receives the current status as an argument, evaluates to true. -func (r *Reporter) ReportComponentStatusIf( - id *component.InstanceID, - ev *component.StatusEvent, - cond func(component.Status) bool, -) error { +// ReportComponentOkIfStarting reports StatusOK if the component's current status is Starting +func (r *Reporter) ReportComponentOKIfStarting(id *component.InstanceID) error { r.mu.Lock() defer r.mu.Unlock() if !r.ready { return errStatusNotReady } fsm := r.componentFSM(id) - if cond(fsm.current.Status()) { - return fsm.transition(ev) + if fsm.current.Status() == component.StatusStarting { + return fsm.transition(component.NewStatusEvent(component.StatusOK)) } return nil } diff --git a/service/internal/status/status_test.go b/service/internal/status/status_test.go index 7d71eee2ed86..a1c238b4b0d3 100644 --- a/service/internal/status/status_test.go +++ b/service/internal/status/status_test.go @@ -267,7 +267,7 @@ func TestReporterReady(t *testing.T) { require.NoError(t, err) } -func TestReportStatusIf(t *testing.T) { +func TestReportComponentOKIfStarting(t *testing.T) { for _, tc := range []struct { name string initialStatuses []component.Status @@ -333,11 +333,7 @@ func TestReportStatusIf(t *testing.T) { require.NoError(t, err) } - err := rep.ReportComponentStatusIf( - id, - component.NewStatusEvent(component.StatusOK), - func(st component.Status) bool { return st == component.StatusStarting }, - ) + err := rep.ReportComponentOKIfStarting(id) require.NoError(t, err) require.Equal(t, tc.expectedStatuses, receivedStatuses)