in internal/commandProcessor/commandProcessor.go [171:198]
func getSeqNum(ctx **log.Context, hEnv types.HandlerEnvironment, extensionName string) (int, error) {
// Multiconfig support: Agent should set env variables for the extension name and sequence number
seqNum := -1
var err error = nil
seqNumVariable := os.Getenv(constants.ConfigSequenceNumberEnvName)
if seqNumVariable != "" {
seqNum, err = strconv.Atoi(seqNumVariable)
if err != nil {
msg := fmt.Sprintf("failed to parse env variable ConfigSequenceNumber: %v", seqNumVariable)
(*ctx).Log("message", msg, "error", err)
return seqNum, errors.Wrap(err, msg)
}
}
// Read the seqNum from latest config file in case VMAgent did not set it as env variable
if seqNum == -1 {
seqNum, err = seqnumutil.FindSequenceNumberFromConfig(hEnv.HandlerEnvironment.ConfigFolder, constants.ConfigFileExtension, extensionName)
if err != nil {
(*ctx).Log("FindSequenceNumberFromConfig", "failed to find sequence number from config folder.", "error", err)
} else {
(*ctx).Log("FindSequenceNumberFromConfig", fmt.Sprintf("Sequence number determined from config folder: %d", seqNum))
}
}
(*ctx) = (*ctx).With("seq", seqNum)
(*ctx).Log("seqNum", seqNum)
return seqNum, nil
}