func()

in server/datasource/etcd/kv/kv_dao.go [512:547]


func (s *Dao) listData(ctx context.Context, project, domain string, options ...datasource.FindOption) (*model.KVResponse, datasource.FindOptions, error) {
	opts := datasource.NewDefaultFindOpts()
	for _, o := range options {
		o(&opts)
	}
	ctx, cancel := context.WithTimeout(ctx, opts.Timeout)
	defer cancel()

	regex, err := toRegex(opts)
	if err != nil {
		return nil, opts, err
	}

	if Enabled() {
		result, useCache, err := Search(ctx, &CacheSearchReq{
			Domain:  domain,
			Project: project,
			Opts:    &opts,
			Regex:   regex,
		})
		if useCache && err == nil {
			return result, opts, nil
		}
		if useCache && err != nil {
			openlog.Error("using cache to search kv failed: " + err.Error())
		}
	}

	result, err := matchLabelsSearch(ctx, domain, project, regex, opts)
	if err != nil {
		openlog.Error("list kv failed: " + err.Error())
		return nil, opts, err
	}

	return result, opts, nil
}