From b46f598edac5de5b77c7d31b28da2c45ba4d3469 Mon Sep 17 00:00:00 2001 From: Vaibhav Kamra Date: Sat, 22 Jun 2019 13:09:49 -0700 Subject: [PATCH] Rename ResourceRequirement (#5885) --- pkg/filter/crd.go | 10 ++-- pkg/filter/filter.go | 26 +++++------ pkg/filter/filter_test.go | 82 ++++++++++++++++----------------- pkg/filter/unstructured.go | 4 +- pkg/filter/unstructured_test.go | 10 ++-- 5 files changed, 66 insertions(+), 66 deletions(-) diff --git a/pkg/filter/crd.go b/pkg/filter/crd.go index 1bd09f28bd..12471344e2 100644 --- a/pkg/filter/crd.go +++ b/pkg/filter/crd.go @@ -9,8 +9,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -// CRDMatcher returns a ResourceMatcher that matches all CRs in this cluster. -func CRDMatcher(ctx context.Context, cli crdclient.Interface) (ResourceMatcher, error) { +// CRDMatcher returns a ResourceTypeMatcher that matches all CRs in this cluster. +func CRDMatcher(ctx context.Context, cli crdclient.Interface) (ResourceTypeMatcher, error) { crds, err := cli.ApiextensionsV1beta1().CustomResourceDefinitions().List(metav1.ListOptions{}) if err != nil { return nil, errors.Wrap(err, "Failed to query CRDs in cluster") @@ -18,10 +18,10 @@ func CRDMatcher(ctx context.Context, cli crdclient.Interface) (ResourceMatcher, return crdsToMatcher(crds.Items), nil } -func crdsToMatcher(crds []apiextensions.CustomResourceDefinition) ResourceMatcher { - gvrs := make(ResourceMatcher, 0, len(crds)) +func crdsToMatcher(crds []apiextensions.CustomResourceDefinition) ResourceTypeMatcher { + gvrs := make(ResourceTypeMatcher, 0, len(crds)) for _, crd := range crds { - gvr := ResourceRequirement{ + gvr := ResourceTypeRequirement{ Group: crd.Spec.Group, Version: crd.Spec.Version, Resource: crd.Spec.Names.Plural, diff --git a/pkg/filter/filter.go b/pkg/filter/filter.go index 58ea2dfede..6dbf73be81 100644 --- a/pkg/filter/filter.go +++ b/pkg/filter/filter.go @@ -4,13 +4,13 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" ) -type ResourceRequirement struct { +type ResourceTypeRequirement struct { Group string `json:"group,omitempty"` Version string `json:"version,omitempty"` Resource string `json:"resource,omitempty"` } -func (r ResourceRequirement) Matches(gvr schema.GroupVersionResource) bool { +func (r ResourceTypeRequirement) Matches(gvr schema.GroupVersionResource) bool { return matches(r.Group, gvr.Group) && matches(r.Version, gvr.Version) && matches(r.Resource, gvr.Resource) } @@ -18,13 +18,13 @@ func matches(sel, val string) bool { return sel == "" || sel == val } -type ResourceMatcher []ResourceRequirement +type ResourceTypeMatcher []ResourceTypeRequirement -func (g ResourceMatcher) Empty() bool { +func (g ResourceTypeMatcher) Empty() bool { return len(g) == 0 } -func (g ResourceMatcher) Any(gvr schema.GroupVersionResource) bool { +func (g ResourceTypeMatcher) Any(gvr schema.GroupVersionResource) bool { for _, req := range g { if req.Matches(gvr) { return true @@ -33,7 +33,7 @@ func (g ResourceMatcher) Any(gvr schema.GroupVersionResource) bool { return false } -func (g ResourceMatcher) All(gvr schema.GroupVersionResource) bool { +func (g ResourceTypeMatcher) All(gvr schema.GroupVersionResource) bool { for _, req := range g { if !req.Matches(gvr) { return false @@ -44,16 +44,16 @@ func (g ResourceMatcher) All(gvr schema.GroupVersionResource) bool { type GroupVersionResourceList []schema.GroupVersionResource -func (g GroupVersionResourceList) Include(ms ...ResourceMatcher) GroupVersionResourceList { +func (g GroupVersionResourceList) Include(ms ...ResourceTypeMatcher) GroupVersionResourceList { return g.apply(ms, false) } -func (g GroupVersionResourceList) Exclude(ms ...ResourceMatcher) GroupVersionResourceList { +func (g GroupVersionResourceList) Exclude(ms ...ResourceTypeMatcher) GroupVersionResourceList { return g.apply(ms, true) } -func (g GroupVersionResourceList) apply(ms []ResourceMatcher, exclude bool) GroupVersionResourceList { - m := joinResourceMatchers(ms...) +func (g GroupVersionResourceList) apply(ms []ResourceTypeMatcher, exclude bool) GroupVersionResourceList { + m := joinResourceTypeMatchers(ms...) if m.Empty() { return g } @@ -66,15 +66,15 @@ func (g GroupVersionResourceList) apply(ms []ResourceMatcher, exclude bool) Grou return filtered } -func joinResourceMatchers(ms ...ResourceMatcher) ResourceMatcher { +func joinResourceTypeMatchers(ms ...ResourceTypeMatcher) ResourceTypeMatcher { n := 0 for _, m := range ms { n += len(m) } - gvr := make(ResourceMatcher, n) + gvr := make(ResourceTypeMatcher, n) i := 0 for _, m := range ms { - copy(gvr[i:], []ResourceRequirement(m)) + copy(gvr[i:], []ResourceTypeRequirement(m)) i += len(m) } return gvr diff --git a/pkg/filter/filter_test.go b/pkg/filter/filter_test.go index 94cefc234c..58c11778c5 100644 --- a/pkg/filter/filter_test.go +++ b/pkg/filter/filter_test.go @@ -16,13 +16,13 @@ var _ = Suite(&FilterSuite{}) func (s *FilterSuite) TestGVRRequirement(c *C) { for _, tc := range []struct { - gvrr ResourceRequirement + gvrr ResourceTypeRequirement gvr schema.GroupVersionResource expected bool }{ // Basic case { - gvrr: ResourceRequirement{ + gvrr: ResourceTypeRequirement{ Group: "", Version: "", Resource: "", @@ -37,7 +37,7 @@ func (s *FilterSuite) TestGVRRequirement(c *C) { // Case w/ Version Requirements { - gvrr: ResourceRequirement{ + gvrr: ResourceTypeRequirement{ Group: "", Version: "v1", Resource: "", @@ -50,7 +50,7 @@ func (s *FilterSuite) TestGVRRequirement(c *C) { expected: false, }, { - gvrr: ResourceRequirement{ + gvrr: ResourceTypeRequirement{ Group: "", Version: "v1", Resource: "", @@ -63,7 +63,7 @@ func (s *FilterSuite) TestGVRRequirement(c *C) { expected: false, }, { - gvrr: ResourceRequirement{ + gvrr: ResourceTypeRequirement{ Group: "", Version: "v1", Resource: "", @@ -76,7 +76,7 @@ func (s *FilterSuite) TestGVRRequirement(c *C) { expected: true, }, { - gvrr: ResourceRequirement{ + gvrr: ResourceTypeRequirement{ Group: "", Version: "v1", Resource: "", @@ -91,7 +91,7 @@ func (s *FilterSuite) TestGVRRequirement(c *C) { // Wrong group { - gvrr: ResourceRequirement{ + gvrr: ResourceTypeRequirement{ Group: "apps", Version: "v1", Resource: "services", @@ -106,7 +106,7 @@ func (s *FilterSuite) TestGVRRequirement(c *C) { // Wrong object { - gvrr: ResourceRequirement{ + gvrr: ResourceTypeRequirement{ Group: "", Version: "v1", Resource: "services", @@ -124,17 +124,17 @@ func (s *FilterSuite) TestGVRRequirement(c *C) { } func (s *FilterSuite) TestGroupVersionResourceEmpty(c *C) { - var g ResourceMatcher + var g ResourceTypeMatcher c.Assert(g.Empty(), Equals, true) - g = ResourceMatcher{} + g = ResourceTypeMatcher{} c.Assert(g.Empty(), Equals, true) - g = ResourceMatcher{ResourceRequirement{}} + g = ResourceTypeMatcher{ResourceTypeRequirement{}} c.Assert(g.Empty(), Equals, false) } func (s *FilterSuite) TestGroupVersionResourceAnyAll(c *C) { for _, tc := range []struct { - g ResourceMatcher + g ResourceTypeMatcher gvr schema.GroupVersionResource any bool all bool @@ -147,48 +147,48 @@ func (s *FilterSuite) TestGroupVersionResourceAnyAll(c *C) { all: true, }, { - g: ResourceMatcher{}, + g: ResourceTypeMatcher{}, gvr: schema.GroupVersionResource{}, any: false, all: true, }, { - g: ResourceMatcher{ - ResourceRequirement{}, + g: ResourceTypeMatcher{ + ResourceTypeRequirement{}, }, gvr: schema.GroupVersionResource{}, any: true, all: true, }, { - g: ResourceMatcher{ - ResourceRequirement{Group: "mygroup"}, + g: ResourceTypeMatcher{ + ResourceTypeRequirement{Group: "mygroup"}, }, gvr: schema.GroupVersionResource{Group: "mygroup"}, any: true, all: true, }, { - g: ResourceMatcher{ - ResourceRequirement{Group: "mygroup"}, + g: ResourceTypeMatcher{ + ResourceTypeRequirement{Group: "mygroup"}, }, gvr: schema.GroupVersionResource{Group: "yourgroup"}, any: false, all: false, }, { - g: ResourceMatcher{ - ResourceRequirement{Group: "mygroup"}, - ResourceRequirement{Group: "yourgroup"}, + g: ResourceTypeMatcher{ + ResourceTypeRequirement{Group: "mygroup"}, + ResourceTypeRequirement{Group: "yourgroup"}, }, gvr: schema.GroupVersionResource{Group: "yourgroup"}, any: true, all: false, }, { - g: ResourceMatcher{ - ResourceRequirement{Group: "mygroup"}, - ResourceRequirement{Group: "yourgroup"}, + g: ResourceTypeMatcher{ + ResourceTypeRequirement{Group: "mygroup"}, + ResourceTypeRequirement{Group: "yourgroup"}, }, gvr: schema.GroupVersionResource{Group: "ourgroup"}, any: false, @@ -202,7 +202,7 @@ func (s *FilterSuite) TestGroupVersionResourceAnyAll(c *C) { func (s *FilterSuite) TestGroupVersionResourceIncludeExclude(c *C) { for _, tc := range []struct { - m ResourceMatcher + m ResourceTypeMatcher gvrs GroupVersionResourceList include GroupVersionResourceList exclude GroupVersionResourceList @@ -220,7 +220,7 @@ func (s *FilterSuite) TestGroupVersionResourceIncludeExclude(c *C) { }, }, { - m: ResourceMatcher{}, + m: ResourceTypeMatcher{}, gvrs: []schema.GroupVersionResource{ schema.GroupVersionResource{}, }, @@ -232,7 +232,7 @@ func (s *FilterSuite) TestGroupVersionResourceIncludeExclude(c *C) { }, }, { - m: ResourceMatcher{ResourceRequirement{}}, + m: ResourceTypeMatcher{ResourceTypeRequirement{}}, gvrs: []schema.GroupVersionResource{ schema.GroupVersionResource{}, }, @@ -242,7 +242,7 @@ func (s *FilterSuite) TestGroupVersionResourceIncludeExclude(c *C) { exclude: []schema.GroupVersionResource{}, }, { - m: ResourceMatcher{ResourceRequirement{}}, + m: ResourceTypeMatcher{ResourceTypeRequirement{}}, gvrs: []schema.GroupVersionResource{ schema.GroupVersionResource{ Group: "mygroup", @@ -256,8 +256,8 @@ func (s *FilterSuite) TestGroupVersionResourceIncludeExclude(c *C) { exclude: []schema.GroupVersionResource{}, }, { - m: ResourceMatcher{ - ResourceRequirement{ + m: ResourceTypeMatcher{ + ResourceTypeRequirement{ Group: "mygroup", }, }, @@ -274,11 +274,11 @@ func (s *FilterSuite) TestGroupVersionResourceIncludeExclude(c *C) { exclude: []schema.GroupVersionResource{}, }, { - m: ResourceMatcher{ - ResourceRequirement{ + m: ResourceTypeMatcher{ + ResourceTypeRequirement{ Group: "mygroup", }, - ResourceRequirement{ + ResourceTypeRequirement{ Version: "myversion", }, }, @@ -341,18 +341,18 @@ func (s *FilterSuite) TestGroupVersionResourceIncludeExclude(c *C) { func (s *FilterSuite) TestJoin(c *C) { for _, tc := range []struct { - m []ResourceMatcher - out ResourceMatcher + m []ResourceTypeMatcher + out ResourceTypeMatcher }{ { - m: []ResourceMatcher{ResourceMatcher{}, ResourceMatcher{}}, - out: ResourceMatcher{}, + m: []ResourceTypeMatcher{ResourceTypeMatcher{}, ResourceTypeMatcher{}}, + out: ResourceTypeMatcher{}, }, { - m: []ResourceMatcher{ResourceMatcher{}, ResourceMatcher{}}, - out: ResourceMatcher{}, + m: []ResourceTypeMatcher{ResourceTypeMatcher{}, ResourceTypeMatcher{}}, + out: ResourceTypeMatcher{}, }, } { - c.Check(joinResourceMatchers(tc.m...), DeepEquals, tc.out) + c.Check(joinResourceTypeMatchers(tc.m...), DeepEquals, tc.out) } } diff --git a/pkg/filter/unstructured.go b/pkg/filter/unstructured.go index c5105cb808..05753b3a31 100644 --- a/pkg/filter/unstructured.go +++ b/pkg/filter/unstructured.go @@ -15,7 +15,7 @@ func (s Specs) keys() GroupVersionResourceList { return gvrs } -func (s Specs) Include(ms ...ResourceMatcher) Specs { +func (s Specs) Include(ms ...ResourceTypeMatcher) Specs { gvrs := s.keys().Include(ms...) ret := make(Specs, len(gvrs)) for _, gvr := range gvrs { @@ -24,7 +24,7 @@ func (s Specs) Include(ms ...ResourceMatcher) Specs { return ret } -func (s Specs) Exclude(ms ...ResourceMatcher) Specs { +func (s Specs) Exclude(ms ...ResourceTypeMatcher) Specs { gvrs := s.keys().Exclude(ms...) ret := make(Specs, len(gvrs)) for _, gvr := range gvrs { diff --git a/pkg/filter/unstructured_test.go b/pkg/filter/unstructured_test.go index b0a87c869d..d5c33ab56b 100644 --- a/pkg/filter/unstructured_test.go +++ b/pkg/filter/unstructured_test.go @@ -13,7 +13,7 @@ var _ = Suite(&UnstructuredSuite{}) func (s *UnstructuredSuite) TestIncludeExclude(c *C) { for _, tc := range []struct { s Specs - gvr ResourceMatcher + gvr ResourceTypeMatcher include Specs exclude Specs }{ @@ -25,7 +25,7 @@ func (s *UnstructuredSuite) TestIncludeExclude(c *C) { }, { s: Specs{}, - gvr: ResourceMatcher{}, + gvr: ResourceTypeMatcher{}, include: Specs{}, exclude: Specs{}, }, @@ -33,7 +33,7 @@ func (s *UnstructuredSuite) TestIncludeExclude(c *C) { s: Specs{ schema.GroupVersionResource{Group: "mygroup"}: nil, }, - gvr: ResourceMatcher{}, + gvr: ResourceTypeMatcher{}, include: Specs{ schema.GroupVersionResource{Group: "mygroup"}: nil, }, @@ -45,7 +45,7 @@ func (s *UnstructuredSuite) TestIncludeExclude(c *C) { s: Specs{ schema.GroupVersionResource{Group: "mygroup"}: nil, }, - gvr: ResourceMatcher{ResourceRequirement{Group: "mygroup"}}, + gvr: ResourceTypeMatcher{ResourceTypeRequirement{Group: "mygroup"}}, include: Specs{ schema.GroupVersionResource{Group: "mygroup"}: nil, }, @@ -55,7 +55,7 @@ func (s *UnstructuredSuite) TestIncludeExclude(c *C) { s: Specs{ schema.GroupVersionResource{Group: "mygroup"}: nil, }, - gvr: ResourceMatcher{ResourceRequirement{Group: "yourgroup"}}, + gvr: ResourceTypeMatcher{ResourceTypeRequirement{Group: "yourgroup"}}, include: Specs{}, exclude: Specs{ schema.GroupVersionResource{Group: "mygroup"}: nil,