Skip to content

Commit

Permalink
do not fail when scheduled event does not have end date (aws#182)
Browse files Browse the repository at this point in the history
* do not fail when scheduled event does not have end date. It's nice-to-have information only.

* fix unit-test for scheduled events
  • Loading branch information
bwagner5 committed Jul 6, 2020
1 parent f5f8766 commit 20b8169
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
5 changes: 3 additions & 2 deletions pkg/interruptionevent/scheduled-event.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,12 @@ func checkForScheduledEvents(imds *ec2metadata.Service) ([]InterruptionEvent, er
}
notBefore, err := time.Parse(scheduledEventDateFormat, scheduledEvent.NotBefore)
if err != nil {
return nil, fmt.Errorf("Unable to parsed scheduled event start time: %w", err)
return nil, fmt.Errorf("Unable to parse scheduled event start time: %w", err)
}
notAfter, err := time.Parse(scheduledEventDateFormat, scheduledEvent.NotAfter)
if err != nil {
return nil, fmt.Errorf("Unable to parsed scheduled event end time: %w", err)
notAfter = notBefore
log.Log().Msgf("Unable to parse scheduled event end time, continuing: %v", err)
}
events = append(events, InterruptionEvent{
EventID: scheduledEvent.EventID,
Expand Down
22 changes: 21 additions & 1 deletion pkg/interruptionevent/scheduled-event_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,26 @@ func TestMonitorForScheduledEventsEndTimeParseFail(t *testing.T) {
cancelChan := make(chan interruptionevent.InterruptionEvent)
imds := ec2metadata.New(server.URL, 1)

go func() {
result := <-drainChan
h.Equals(t, scheduledEventId, result.EventID)
h.Equals(t, interruptionevent.ScheduledEventKind, result.Kind)
h.Equals(t, scheduledEventState, result.State)
h.Equals(t, expScheduledEventStartTimeFmt, result.StartTime.String())
h.Equals(t, expScheduledEventStartTimeFmt, result.EndTime.String())

h.Assert(t, strings.Contains(result.Description, scheduledEventCode),
"Expected description to contain \""+scheduledEventCode+
"\"but received \""+result.Description+"\"")
h.Assert(t, strings.Contains(result.Description, scheduledEventStartTime),
"Expected description to contain \""+scheduledEventStartTime+
"\"but received \""+result.Description+"\"")
h.Assert(t, strings.Contains(result.Description, scheduledEventDescription),
"Expected description to contain \""+scheduledEventDescription+
"\"but received \""+result.Description+"\"")

}()

err := interruptionevent.MonitorForScheduledEvents(drainChan, cancelChan, imds)
h.Assert(t, err != nil, "Failed to return error when failed to parse end time")
h.Ok(t, err)
}

0 comments on commit 20b8169

Please sign in to comment.