Skip to content

Commit 535f781

Browse files
authored
Merge pull request #328 from mortent/FixPruneEventTransformer
Fix missing error property in PruneEventTransformer
2 parents a465a04 + a5f0741 commit 535f781

File tree

2 files changed

+44
-12
lines changed

2 files changed

+44
-12
lines changed

cmd/printers/events/formatter_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,16 @@ func TestFormatter_FormatApplyEvent(t *testing.T) {
5555
},
5656
expected: "cronjob.batch/my-cron configured (preview-server)",
5757
},
58+
"apply event with error should display the error": {
59+
previewStrategy: common.DryRunServer,
60+
event: event.ApplyEvent{
61+
Operation: event.Failed,
62+
Type: event.ApplyEventResourceUpdate,
63+
Identifier: createIdentifier("apps", "Deployment", "", "my-dep"),
64+
Error: fmt.Errorf("this is a test error"),
65+
},
66+
expected: "deployment.apps/my-dep failed: this is a test error (preview-server)",
67+
},
5868
"completed event": {
5969
previewStrategy: common.DryRunNone,
6070
event: event.ApplyEvent{
@@ -164,6 +174,15 @@ func TestFormatter_FormatPruneEvent(t *testing.T) {
164174
},
165175
expected: "deployment.apps/my-dep prune skipped (preview)",
166176
},
177+
"resource with prune error": {
178+
previewStrategy: common.DryRunNone,
179+
event: event.PruneEvent{
180+
Type: event.PruneEventFailed,
181+
Identifier: createIdentifier("apps", "Deployment", "", "my-dep"),
182+
Error: fmt.Errorf("this is a test"),
183+
},
184+
expected: "deployment.apps/my-dep prune failed: this is a test",
185+
},
167186
"prune event with completed status": {
168187
previewStrategy: common.DryRunNone,
169188
event: event.PruneEvent{
@@ -215,6 +234,16 @@ func TestFormatter_FormatDeleteEvent(t *testing.T) {
215234
},
216235
expected: "deployment.apps/my-dep delete skipped (preview)",
217236
},
237+
"resource with delete error": {
238+
previewStrategy: common.DryRunServer,
239+
event: event.DeleteEvent{
240+
Type: event.DeleteEventFailed,
241+
Object: createObject("apps", "Deployment", "", "my-dep"),
242+
Identifier: createIdentifier("apps", "Deployment", "", "my-dep"),
243+
Error: fmt.Errorf("this is a test"),
244+
},
245+
expected: "deployment.apps/my-dep deletion failed: this is a test (preview-server)",
246+
},
218247
"delete event with completed status": {
219248
previewStrategy: common.DryRunNone,
220249
event: event.DeleteEvent{

pkg/apply/destroyer.go

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -131,26 +131,29 @@ func runPruneEventTransformer(eventChannel chan event.Event) (chan event.Event,
131131
go func() {
132132
defer close(completedChannel)
133133
for msg := range tempEventChannel {
134-
if msg.PruneEvent.Type == event.PruneEventFailed {
134+
// If it is not a Prune event, no need to make any transformation.
135+
if msg.Type != event.PruneType {
136+
eventChannel <- msg
137+
} else {
138+
var deleteEventType event.DeleteEventType
139+
switch msg.PruneEvent.Type {
140+
case event.PruneEventFailed:
141+
deleteEventType = event.DeleteEventFailed
142+
case event.PruneEventCompleted:
143+
deleteEventType = event.DeleteEventCompleted
144+
case event.PruneEventResourceUpdate:
145+
deleteEventType = event.DeleteEventResourceUpdate
146+
}
135147
eventChannel <- event.Event{
136148
Type: event.DeleteType,
137149
DeleteEvent: event.DeleteEvent{
138-
Type: event.DeleteEventFailed,
150+
Type: deleteEventType,
139151
Operation: transformPruneOperation(msg.PruneEvent.Operation),
140152
Object: msg.PruneEvent.Object,
141153
Identifier: msg.PruneEvent.Identifier,
154+
Error: msg.PruneEvent.Error,
142155
},
143156
}
144-
continue
145-
}
146-
eventChannel <- event.Event{
147-
Type: event.DeleteType,
148-
DeleteEvent: event.DeleteEvent{
149-
Type: event.DeleteEventResourceUpdate,
150-
Operation: transformPruneOperation(msg.PruneEvent.Operation),
151-
Object: msg.PruneEvent.Object,
152-
Identifier: msg.PruneEvent.Identifier,
153-
},
154157
}
155158
}
156159
}()

0 commit comments

Comments
 (0)