in internal/immediateruncommand/immediateruncommand.go [157:182]
func getGoalStatesToProcess(goalStates []hostgacommunicator.ImmediateExtensionGoalState, maxTasksToFetch int) ([]settings.SettingsCommon, []settings.SettingsCommon, error) {
var newGoalStates []settings.SettingsCommon
var skippedGoalStates []settings.SettingsCommon
for _, el := range goalStates {
validSignature, err := el.ValidateSignature()
if err != nil {
return nil, nil, errors.Wrap(err, "failed to validate goal state signature")
}
if validSignature {
for _, s := range el.Settings {
statusKey := types.GoalStateKey{ExtensionName: *s.ExtensionName, SeqNumber: *s.SeqNo}
_, goalStateAlreadyProcessed := goalStateEventObserver.GetStatusForKey(statusKey)
if !goalStateAlreadyProcessed {
if len(newGoalStates) < maxTasksToFetch {
newGoalStates = append(newGoalStates, s)
} else {
skippedGoalStates = append(skippedGoalStates, s)
}
}
}
}
}
return newGoalStates, skippedGoalStates, nil
}