diff --git a/pkg/apis/eventing/v1alpha1/trigger_defaults.go b/pkg/apis/eventing/v1alpha1/trigger_defaults.go index ed19263008e..f8e02270626 100644 --- a/pkg/apis/eventing/v1alpha1/trigger_defaults.go +++ b/pkg/apis/eventing/v1alpha1/trigger_defaults.go @@ -20,9 +20,14 @@ import ( "context" ) +const ( + brokerLabel = "eventing.knative.dev/broker" +) + func (t *Trigger) SetDefaults(ctx context.Context) { t.Spec.SetDefaults(ctx) setUserInfoAnnotations(ctx, t) + setLabels(t) } func (ts *TriggerSpec) SetDefaults(ctx context.Context) { @@ -34,3 +39,10 @@ func (ts *TriggerSpec) SetDefaults(ctx context.Context) { ts.Filter = &TriggerFilter{} } } + +func setLabels(t *Trigger) { + if len(t.Labels) == 0 { + t.Labels = map[string]string{} + } + t.Labels[brokerLabel] = t.Spec.Broker +} diff --git a/pkg/apis/eventing/v1alpha1/trigger_defaults_test.go b/pkg/apis/eventing/v1alpha1/trigger_defaults_test.go index e6ab361ec85..6eddfd83c95 100644 --- a/pkg/apis/eventing/v1alpha1/trigger_defaults_test.go +++ b/pkg/apis/eventing/v1alpha1/trigger_defaults_test.go @@ -18,6 +18,7 @@ package v1alpha1 import ( "context" + "k8s.io/apimachinery/pkg/apis/meta/v1" "testing" "github.com/google/go-cmp/cmp" @@ -34,6 +35,9 @@ var ( } defaultTrigger = Trigger{ + ObjectMeta: v1.ObjectMeta{ + Labels: map[string]string{brokerLabel: defaultBroker}, + }, Spec: TriggerSpec{ Broker: defaultBroker, Filter: defaultTriggerFilter, @@ -47,17 +51,39 @@ func TestTriggerDefaults(t *testing.T) { expected Trigger }{ "nil broker": { - initial: Trigger{Spec: TriggerSpec{Filter: otherTriggerFilter}}, - expected: Trigger{Spec: TriggerSpec{Broker: defaultBroker, Filter: otherTriggerFilter}}, + initial: Trigger{Spec: TriggerSpec{Filter: otherTriggerFilter}}, + expected: Trigger{ + ObjectMeta: v1.ObjectMeta{ + Labels: map[string]string{brokerLabel: defaultBroker}, + }, + Spec: TriggerSpec{Broker: defaultBroker, Filter: otherTriggerFilter}}, }, "nil filter": { - initial: Trigger{Spec: TriggerSpec{Broker: otherBroker}}, - expected: Trigger{Spec: TriggerSpec{Broker: otherBroker, Filter: defaultTriggerFilter}}, + initial: Trigger{Spec: TriggerSpec{Broker: otherBroker}}, + expected: Trigger{ + ObjectMeta: v1.ObjectMeta{ + Labels: map[string]string{brokerLabel: otherBroker}, + }, + Spec: TriggerSpec{Broker: otherBroker, Filter: defaultTriggerFilter}}, }, "nil broker and nil filter": { initial: Trigger{}, expected: defaultTrigger, }, + "with broker and label": { + initial: Trigger{ + ObjectMeta: v1.ObjectMeta{ + Labels: map[string]string{"otherLabel": "my-other-label"}, + }, + Spec: TriggerSpec{Broker: defaultBroker}}, + expected: Trigger{ + ObjectMeta: v1.ObjectMeta{ + Labels: map[string]string{ + "otherLabel": "my-other-label", + brokerLabel: defaultBroker}, + }, + Spec: TriggerSpec{Broker: defaultBroker, Filter: defaultTriggerFilter}}, + }, } for n, tc := range testCases { t.Run(n, func(t *testing.T) { diff --git a/pkg/broker/filter/filter_handler.go b/pkg/broker/filter/filter_handler.go index 397620b61a3..1a6e2380a75 100644 --- a/pkg/broker/filter/filter_handler.go +++ b/pkg/broker/filter/filter_handler.go @@ -241,7 +241,7 @@ func (r *Handler) sendEvent(ctx context.Context, tctx cloudevents.HTTPTransportC var arrivalTimeStr string if extErr := event.ExtensionAs(broker.EventArrivalTime, &arrivalTimeStr); extErr == nil { arrivalTime, err := time.Parse(time.RFC3339, arrivalTimeStr) - if err != nil { + if err == nil { r.reporter.ReportEventProcessingTime(reportArgs, time.Since(arrivalTime)) } }