func getConfigFromToken()

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
}