Skip to content

Commit

Permalink
return all resources if groups=* is given
Browse files Browse the repository at this point in the history
  • Loading branch information
27149chen committed Sep 30, 2022
1 parent 6d95d4d commit 345d6ed
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions pkg/storage/internalstorage/collectionresource_storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@ func (s *CollectionResourceStorage) query(ctx context.Context, opts *internal.Li

// The `URLQueryGroups` and `URLQueryResources` only works on *Any Collection Resource*,
// does it nned to work on other collection resources?
gvrs, err := resolveGVRsFromURLQuery(opts.URLQuery)
gvrs, all, err := resolveGVRsFromURLQuery(opts.URLQuery)
if err != nil {
return nil, nil, apierrors.NewBadRequest(err.Error())
}
if len(gvrs) == 0 {
if len(gvrs) == 0 && !all {
return nil, nil, apierrors.NewBadRequest("url query - `groups` or `resources` is required")
}

Expand Down Expand Up @@ -151,12 +151,16 @@ func (s *CollectionResourceStorage) Get(ctx context.Context, opts *internal.List
return collection, nil
}

func resolveGVRsFromURLQuery(query url.Values) (gvrs []schema.GroupVersionResource, err error) {
func resolveGVRsFromURLQuery(query url.Values) (gvrs []schema.GroupVersionResource, all bool, err error) {
if query.Has(URLQueryGroups) {
for _, group := range strings.Split(query.Get(URLQueryGroups), ",") {
if group == "*" {
return nil, true, nil
}

gv, err := parseGroupVersion(group)
if err != nil {
return nil, fmt.Errorf("%s query: %w", URLQueryGroups, err)
return nil, false, fmt.Errorf("%s query: %w", URLQueryGroups, err)
}

gvrs = append(gvrs, gv.WithResource(""))
Expand All @@ -166,7 +170,7 @@ func resolveGVRsFromURLQuery(query url.Values) (gvrs []schema.GroupVersionResour
for _, resource := range strings.Split(query.Get(URLQueryResources), ",") {
gvr, err := parseGroupVersionResource(resource)
if err != nil {
return nil, fmt.Errorf("%s query: %w", URLQueryResources, err)
return nil, false, fmt.Errorf("%s query: %w", URLQueryResources, err)
}

gvrs = append(gvrs, gvr)
Expand Down

0 comments on commit 345d6ed

Please sign in to comment.