check if state field exists before processing a message

This commit is contained in:
Sonja Happ 2020-10-26 12:03:02 +01:00
parent cf8775b39d
commit 03341dbe42

View file

@ -261,13 +261,14 @@ func processMessage(message amqp.Delivery) error {
return fmt.Errorf("AMQP: Could not unmarshal message to JSON: %v err: %v", string(message.Body), err) return fmt.Errorf("AMQP: Could not unmarshal message to JSON: %v err: %v", string(message.Body), err)
} }
if payload.State != nil {
// if a message contains a "state" field, it is an update for an IC
ICUUID := payload.Properties.UUID ICUUID := payload.Properties.UUID
_, err = uuid.Parse(ICUUID) _, err = uuid.Parse(ICUUID)
if err != nil { if err != nil {
return fmt.Errorf("AMQP: UUID not valid: %v, message ignored: %v \n", ICUUID, string(message.Body)) return fmt.Errorf("AMQP: UUID not valid: %v, message ignored: %v \n", ICUUID, string(message.Body))
} }
var sToBeUpdated InfrastructureComponent var sToBeUpdated InfrastructureComponent
err = sToBeUpdated.ByUUID(ICUUID) err = sToBeUpdated.ByUUID(ICUUID)
@ -281,6 +282,6 @@ func processMessage(message amqp.Delivery) error {
// update record based on payload // update record based on payload
err = sToBeUpdated.updateICviaAMQP(payload) err = sToBeUpdated.updateICviaAMQP(payload)
} }
}
return err return err
} }