in inlong-tubemq/tubemq-client-twins/tubemq-client-go/config/config.go [416:498]
func getConfigFromToken(config *Config, values []string) error {
var err error
switch values[0] {
case "readTimeout":
config.Net.ReadTimeout, err = parseDuration(values[1])
case "tlsEnable":
config.Net.TLS.Enable, err = strconv.ParseBool(values[1])
case "CACertFile":
config.Net.TLS.CACertFile = values[1]
case "tlsCertFile":
config.Net.TLS.TLSCertFile = values[1]
case "tlsKeyFile":
config.Net.TLS.TLSKeyFile = values[1]
case "tlsServerName":
config.Net.TLS.TLSServerName = values[1]
case "group":
config.Consumer.Group = values[1]
case "topic":
config.Consumer.Topics = append(config.Consumer.Topics, values[1])
config.Producer.Topics = append(config.Producer.Topics, values[1])
case "filters":
topicFilters := config.Consumer.TopicFilters
if len(config.Consumer.Topics) == 0 {
return errs.New(errs.RetInvalidConfig, fmt.Sprintf("topic filters %s should have topic", values[1]))
}
topic := config.Consumer.Topics[len(config.Consumer.Topics)-1]
topicFilters[topic] = append(topicFilters[topic], values[1])
case "consumePosition":
config.Consumer.ConsumePosition, err = strconv.Atoi(values[1])
case "boundConsume":
config.Consumer.BoundConsume, err = strconv.ParseBool(values[1])
case "sessionKey":
config.Consumer.SessionKey = values[1]
case "sourceCount":
config.Consumer.SourceCount, err = strconv.Atoi(values[1])
case "selectBig":
config.Consumer.SelectBig, err = strconv.ParseBool(values[1])
case "rollbackIfConfirmTimeout":
config.Consumer.RollbackIfConfirmTimeout, err = strconv.ParseBool(values[1])
case "maxSubInfoReportInterval":
config.Consumer.MaxSubInfoReportInterval, err = strconv.Atoi(values[1])
case "maxPartCheckPeriod":
config.Consumer.MaxPartCheckPeriod, err = parseDuration(values[1])
case "partCheckSlice":
config.Consumer.PartCheckSlice, err = parseDuration(values[1])
case "msgNotFoundWait":
config.Consumer.MsgNotFoundWait, err = parseDuration(values[1])
case "rebConfirmWait":
config.Consumer.RebConfirmWait, err = parseDuration(values[1])
case "maxConfirmWait":
config.Consumer.MaxConfirmWait, err = parseDuration(values[1])
case "shutdownRebWait":
config.Consumer.ShutdownRebWait, err = parseDuration(values[1])
case "heartbeatInterval":
config.Heartbeat.Interval, err = parseDuration(values[1])
case "heartbeatMaxRetryTimes":
config.Heartbeat.MaxRetryTimes, err = strconv.Atoi(values[1])
case "heartbeatAfterFail":
config.Heartbeat.AfterFail, err = parseDuration(values[1])
case "authEnable":
config.Net.Auth.Enable, err = strconv.ParseBool(values[1])
case "authUserName":
config.Net.Auth.UserName = values[1]
case "authPassword":
config.Net.Auth.Password = values[1]
case "logPath":
err = log.SetLogPath(values[1])
if err == nil {
config.Log.LogPath = values[1]
}
case "logLevel":
err = log.SetLogLevel(values[1])
if err == nil {
config.Log.LogLevel = values[1]
}
default:
return fmt.Errorf("address format invalid, unknown keys: %v", values[0])
}
if err != nil {
return fmt.Errorf("address format invalid(%v) err:%s", values[0], err.Error())
}
return err
}