From d0872b45e2c77d5d506d83a3f805de4cda93878f Mon Sep 17 00:00:00 2001 From: shreyas-goenka <88374338+shreyas-goenka@users.noreply.github.com> Date: Tue, 18 Apr 2023 15:00:34 +0200 Subject: [PATCH] Log pipeline update errors using progress logger (#338) ## Changes Logs error message for all exceptions ## Tests Manually and using unit tests --- bundle/run/progress/pipeline.go | 7 ++++++- bundle/run/progress/pipeline_events.go | 2 +- bundle/run/progress/pipeline_test.go | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/bundle/run/progress/pipeline.go b/bundle/run/progress/pipeline.go index 80f11148..1372c627 100644 --- a/bundle/run/progress/pipeline.go +++ b/bundle/run/progress/pipeline.go @@ -13,7 +13,6 @@ type ProgressEvent pipelines.PipelineEvent func (event *ProgressEvent) String() string { result := strings.Builder{} - result.WriteString(event.Timestamp + " ") // Print event type with some padding to make output more pretty @@ -22,6 +21,12 @@ func (event *ProgressEvent) String() string { result.WriteString(event.Level.String() + " ") result.WriteString(fmt.Sprintf(`"%s"`, event.Message)) + // construct error string + if event.Error != nil { + for _, exception := range event.Error.Exceptions { + result.WriteString(fmt.Sprintf("\n%s", exception.Message)) + } + } return result.String() } diff --git a/bundle/run/progress/pipeline_events.go b/bundle/run/progress/pipeline_events.go index c34cd80b..173b6ecf 100644 --- a/bundle/run/progress/pipeline_events.go +++ b/bundle/run/progress/pipeline_events.go @@ -19,7 +19,7 @@ func NewPipelineUpdateUrlEvent(host, updateId, pipelineId string) *PipelineUpdat } func (event *PipelineUpdateUrlEvent) String() string { - return fmt.Sprintf("The pipeline update can be found at %s\n", event.Url) + return fmt.Sprintf("Update URL: %s\n", event.Url) } func (event *PipelineUpdateUrlEvent) IsInplaceSupported() bool { diff --git a/bundle/run/progress/pipeline_test.go b/bundle/run/progress/pipeline_test.go index 85a077f1..6f5665bb 100644 --- a/bundle/run/progress/pipeline_test.go +++ b/bundle/run/progress/pipeline_test.go @@ -34,3 +34,24 @@ func TestUpdateProgressEventToString(t *testing.T) { } assert.Equal(t, `2023-03-27T23:30:36.122Z update_progress ERROR "my_message"`, event.String()) } + +func TestUpdateErrorEventToString(t *testing.T) { + event := ProgressEvent{ + EventType: "update_progress", + Message: "failed to update pipeline", + Level: pipelines.EventLevelError, + Origin: &pipelines.Origin{ + FlowName: "my_flow", + PipelineName: "my_pipeline", + }, + Timestamp: "2023-03-27T23:30:36.122Z", + Error: &pipelines.ErrorDetail{ + Exceptions: []pipelines.SerializedException{ + { + Message: "parsing error", + }, + }, + }, + } + assert.Equal(t, "2023-03-27T23:30:36.122Z update_progress ERROR \"failed to update pipeline\"\nparsing error", event.String()) +}