@@ -16,7 +16,6 @@ package sqsevent
1616import (
1717 "encoding/json"
1818 "fmt"
19- "strings"
2019 "time"
2120
2221 "github.com/aws/aws-node-termination-handler/pkg/monitor"
@@ -61,49 +60,45 @@ type AffectedEntity struct {
6160 EntityValue string `json:"entityValue"`
6261}
6362
64- // ScheduledEventDetail holds the event details for AWS Health scheduled EC2 change events from Amazon EventBridge
65- type ScheduledEventDetail struct {
63+ // ScheduledChangeEventDetail holds the event details for AWS Health scheduled EC2 change events from Amazon EventBridge
64+ type ScheduledChangeEventDetail struct {
6665 EventTypeCategory string `json:"eventTypeCategory"`
6766 Service string `json:"service"`
6867 AffectedEntities []AffectedEntity `json:"affectedEntities"`
6968}
7069
71- const supportedEventCategoryTypes = "scheduledChange"
72-
7370func (m SQSMonitor ) scheduledEventToInterruptionEvents (event EventBridgeEvent , message * sqs.Message ) ([]InterruptionEventWrapper , error ) {
74- scheduledEventDetail := & ScheduledEventDetail {}
71+ scheduledChangeEventDetail := & ScheduledChangeEventDetail {}
7572
76- if err := json .Unmarshal (event .Detail , scheduledEventDetail ); err != nil {
73+ if err := json .Unmarshal (event .Detail , scheduledChangeEventDetail ); err != nil {
7774 return nil , err
7875 }
7976
80- if scheduledEventDetail .Service != "EC2" {
81- return nil , fmt .Errorf ("events from Amazon EventBridge for service (%s) are not supported" , scheduledEventDetail .Service )
77+ if scheduledChangeEventDetail .Service != "EC2" {
78+ return nil , fmt .Errorf ("events from Amazon EventBridge for service (%s) are not supported" , scheduledChangeEventDetail .Service )
8279 }
8380
84- if ! strings . Contains ( supportedEventCategoryTypes , scheduledEventDetail . EventTypeCategory ) {
85- return nil , fmt .Errorf ("events from Amazon EventBridge with EventTypeCategory (%s) are not supported" , scheduledEventDetail .EventTypeCategory )
81+ if scheduledChangeEventDetail . EventTypeCategory != "scheduledChange" {
82+ return nil , fmt .Errorf ("events from Amazon EventBridge with EventTypeCategory (%s) are not supported" , scheduledChangeEventDetail .EventTypeCategory )
8683 }
8784
88- // interruptionEventWrappers := make([]InterruptionEventWrapper, len(event.Resources))
8985 interruptionEventWrappers := []InterruptionEventWrapper {}
9086
91- for _ , affectedEntity := range scheduledEventDetail .AffectedEntities {
87+ for _ , affectedEntity := range scheduledChangeEventDetail .AffectedEntities {
9288 nodeName , err := m .retrieveNodeName (affectedEntity .EntityValue )
9389 if err != nil {
94- // interruptionEventWrappers[i] = InterruptionEventWrapper{nil, err}
9590 interruptionEventWrappers = append (interruptionEventWrappers , InterruptionEventWrapper {nil , err })
9691 continue
9792 }
9893 asgName , _ := m .retrieveAutoScalingGroupName (affectedEntity .EntityValue )
9994 interruptionEvent := monitor.InterruptionEvent {
100- EventID : fmt .Sprintf ("aws-health-maintenance -event-%x" , event .ID ),
95+ EventID : fmt .Sprintf ("aws-health-scheduled-change -event-%x" , event .ID ),
10196 Kind : SQSTerminateKind ,
10297 AutoScalingGroupName : asgName ,
10398 StartTime : time .Now (),
10499 NodeName : nodeName ,
105100 InstanceID : affectedEntity .EntityValue ,
106- Description : fmt .Sprintf ("AWS Health maintenance event received. Instance %s will be interrupted at %s \n " , affectedEntity .EntityValue , event .getTime ()),
101+ Description : fmt .Sprintf ("AWS Health scheduled change event received. Instance %s will be interrupted at %s \n " , affectedEntity .EntityValue , event .getTime ()),
107102 }
108103 interruptionEvent .PostDrainTask = func (interruptionEvent monitor.InterruptionEvent , n node.Node ) error {
109104 errs := m .deleteMessages ([]* sqs.Message {message })
@@ -120,9 +115,7 @@ func (m SQSMonitor) scheduledEventToInterruptionEvents(event EventBridgeEvent, m
120115 return nil
121116 }
122117
123- // interruptionEventWrappers[i] = InterruptionEventWrapper{&interruptionEvent, nil}
124118 interruptionEventWrappers = append (interruptionEventWrappers , InterruptionEventWrapper {& interruptionEvent , nil })
125-
126119 }
127120
128121 return interruptionEventWrappers , nil
0 commit comments