Skip to content
This repository was archived by the owner on Jan 19, 2024. It is now read-only.

Commit 17ee4e2

Browse files
fix: Sending error logs to all registered jes instances in uniform (#334)
Signed-off-by: Raphael Ludwig <raphael.ludwig@dynatrace.com>
1 parent 8a9bcbd commit 17ee4e2

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

pkg/keptn/errorlog.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -73,28 +73,27 @@ func (els *ErrorLogSender) SendErrorLogEvent(initialCloudEvent *cloudevents.Even
7373
return fmt.Errorf("error retrieving uniform registrations: %w", err)
7474
}
7575

76-
var integrationID string
76+
sendEvent := false
7777
for _, registration := range registrations {
7878
if registration.Name == els.integrationName {
79-
if integrationID != "" {
80-
return fmt.Errorf("found multiple uniform registrations with name %s", els.integrationName)
79+
errorCloudEvent, err := createErrorLogCloudEvent(registration.ID, initialCloudEvent, applicationError)
80+
if err != nil {
81+
log.Printf("unable to create error log cloudevent %+v: %+v", initialCloudEvent, err)
82+
continue
8183
}
82-
integrationID = registration.ID
83-
}
84-
}
8584

86-
if integrationID == "" {
87-
return fmt.Errorf("no registration found with name %s", els.integrationName)
85+
err = els.ceSender.SendCloudEvent(errorCloudEvent)
86+
if err == nil {
87+
sendEvent = true
88+
}
89+
}
8890
}
8991

90-
errorCloudEvent, err := createErrorLogCloudEvent(integrationID, initialCloudEvent, applicationError)
91-
if err != nil {
92-
return fmt.Errorf("unable to create error log cloudevent: %w", err)
92+
if sendEvent {
93+
return nil
9394
}
9495

95-
els.ceSender.SendCloudEvent(errorCloudEvent)
96-
97-
return nil
96+
return fmt.Errorf("no registration found with name %s", els.integrationName)
9897
}
9998

10099
func createErrorLogCloudEvent(

pkg/keptn/errorlog_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,15 @@ func TestErrorWhenMultipleMatchingRegistrationReturned(t *testing.T) {
129129
).Times(1)
130130

131131
mockCloudEventSender := fake.NewMockCloudEventSender(ctrl)
132+
mockCloudEventSender.EXPECT().SendCloudEvent(gomock.Any()).Times(2).Return(nil)
133+
132134
sut := NewErrorLogSender("foobar", uniformClient, mockCloudEventSender)
133135

134136
newEvent := cloudevents.NewEvent()
135-
err := sut.SendErrorLogEvent(&newEvent, errors.New("some error"))
137+
newEvent.SetExtension("shkeptncontext", "034579438ufj-958340958")
136138

137-
assert.Error(t, err)
138-
assert.ErrorContains(t, err, "found multiple uniform registrations with name foobar")
139+
err := sut.SendErrorLogEvent(&newEvent, errors.New("some error"))
140+
assert.NoError(t, err)
139141
}
140142

141143
func TestSendErrorLogHappyPath(t *testing.T) {

0 commit comments

Comments
 (0)