func()

in pkg/admin/services/traffic/retry.go [49:86]


func (tm *RetryService) Search(r *model.Retry) ([]*model.Retry, error) {
	result := make([]*model.Retry, 0)

	var con string
	if r.Service != "" && r.Service != "*" {
		con = util.ColonSeparatedKey(r.Service, r.Group, r.Version)
	}

	list, err := services.GetRules(con, constant.ConfiguratorRuleSuffix)
	if err != nil {
		return result, err
	}

	for k, v := range list {
		k, _ = strings.CutSuffix(k, constant.ConfiguratorRuleSuffix)
		split := strings.Split(k, ":")
		retry := &model.Retry{
			Service: split[0],
		}
		if len(split) >= 2 {
			retry.Version = split[1]
		}
		if len(split) >= 3 {
			retry.Group = split[2]
		}

		rv, err2 := getValue(v, "consumer", "retries")
		if err2 != nil {
			return result, err2
		}
		if rv != nil {
			retry.Retry = rv.(int)
			result = append(result, retry)
		}
	}

	return result, nil
}