Skip to content

Commit 9c74804

Browse files
committed
Migrate selection from map[string]bool to set.StringSet
1 parent 5c0072b commit 9c74804

File tree

4 files changed

+17
-32
lines changed

4 files changed

+17
-32
lines changed

pkg/sac/effectiveaccessscope/conversion.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,7 @@ func convertRulesToSelectors(scopeRules *storage.SimpleAccessScope_Rules) (*sele
113113
output.clustersByName = set.NewStringSet(includedClusterNames...)
114114

115115
includedClusterIDs := scopeRules.GetIncludedClusterIds()
116-
output.clustersByID = make(map[string]bool, len(includedClusterIDs))
117-
for _, clusterID := range includedClusterIDs {
118-
output.clustersByID[clusterID] = true
119-
}
116+
output.clustersByID = set.NewStringSet(includedClusterIDs...)
120117

121118
// Convert each selector to labels.Selector.
122119
namespaceSelectors, namespaceSelectorErr := convertEachSetBasedLabelSelectorToK8sLabelSelector(scopeRules.GetNamespaceLabelSelectors())
@@ -126,8 +123,8 @@ func convertRulesToSelectors(scopeRules *storage.SimpleAccessScope_Rules) (*sele
126123
output.namespacesByLabel = namespaceSelectors
127124

128125
includedNamespaces := scopeRules.GetIncludedNamespaces()
129-
output.namespacesByClusterID = make(map[string]map[string]bool)
130-
output.namespacesByClusterName = make(map[string]set.StringSet, len(includedNamespaces))
126+
output.namespacesByClusterID = make(map[string]set.StringSet)
127+
output.namespacesByClusterName = make(map[string]set.StringSet)
131128
for _, namespace := range includedNamespaces {
132129
clusterID := namespace.GetClusterId()
133130
clusterName := namespace.GetClusterName()

pkg/sac/effectiveaccessscope/conversion_test.go

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -267,15 +267,12 @@ func TestConvertRulesToSelectors(t *testing.T) {
267267
NamespaceLabelSelectors: nil,
268268
},
269269
expected: &selectors{
270-
clustersByID: map[string]bool{
271-
fixtureconsts.Cluster1: true,
272-
fixtureconsts.Cluster2: true,
273-
},
270+
clustersByID: set.NewStringSet(fixtureconsts.Cluster1, fixtureconsts.Cluster2),
274271
clustersByName: set.NewStringSet(clusterName1, clusterName2),
275272
clustersByLabel: make([]labels.Selector, 0),
276-
namespacesByClusterID: map[string]map[string]bool{
277-
fixtureconsts.Cluster1: {namespaceName2: true},
278-
fixtureconsts.Cluster2: {namespaceName1: true},
273+
namespacesByClusterID: map[string]set.StringSet{
274+
fixtureconsts.Cluster1: set.NewStringSet(namespaceName2),
275+
fixtureconsts.Cluster2: set.NewStringSet(namespaceName1),
279276
},
280277
namespacesByClusterName: map[string]set.StringSet{
281278
clusterName1: set.NewStringSet(namespaceName1),
@@ -294,20 +291,18 @@ func TestConvertRulesToSelectors(t *testing.T) {
294291

295292
func emptySelector() *selectors {
296293
return &selectors{
297-
clustersByID: make(map[string]bool),
294+
clustersByID: set.NewStringSet(),
298295
clustersByName: set.NewStringSet(),
299296
clustersByLabel: make([]labels.Selector, 0),
300-
namespacesByClusterID: make(map[string]map[string]bool),
297+
namespacesByClusterID: make(map[string]set.StringSet),
301298
namespacesByClusterName: make(map[string]set.StringSet),
302299
namespacesByLabel: make([]labels.Selector, 0),
303300
}
304301
}
305302

306303
func selectOnlyClustersByID(clusterIDs []string) *selectors {
307304
selector := emptySelector()
308-
for _, clusterID := range clusterIDs {
309-
selector.clustersByID[clusterID] = true
310-
}
305+
selector.clustersByID.AddAll(clusterIDs...)
311306
return selector
312307
}
313308

@@ -323,10 +318,7 @@ func selectNamespacesByCluster(
323318
) *selectors {
324319
selector := emptySelector()
325320
for clusterID, clusterNamespaces := range namespacesByClusterID {
326-
selector.namespacesByClusterID[clusterID] = make(map[string]bool)
327-
for _, ns := range clusterNamespaces {
328-
selector.namespacesByClusterID[clusterID][ns] = true
329-
}
321+
selector.namespacesByClusterID[clusterID] = set.NewStringSet(clusterNamespaces...)
330322
}
331323
for clusterName, clusterNamespaces := range namespacesByClusterName {
332324
selector.namespacesByClusterName[clusterName] = set.NewStringSet(clusterNamespaces...)

pkg/sac/effectiveaccessscope/effective_access_scope.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ func (n *namespacesScopeSubTree) copy() *namespacesScopeSubTree {
6464
}
6565

6666
type selectors struct {
67-
clustersByID map[string]bool
67+
clustersByID set.StringSet
6868
clustersByName set.StringSet
6969
clustersByLabel []labels.Selector
7070

71-
namespacesByClusterID map[string]map[string]bool
71+
namespacesByClusterID map[string]set.StringSet
7272
namespacesByClusterName map[string]set.StringSet
7373
namespacesByLabel []labels.Selector
7474
}
@@ -79,7 +79,7 @@ func (s *selectors) matchCluster(cluster Cluster) scopeState {
7979
}
8080

8181
clusterID := cluster.GetId()
82-
if s.clustersByID != nil && s.clustersByID[clusterID] {
82+
if s.clustersByID != nil && s.clustersByID.Contains(clusterID) {
8383
return Included
8484
}
8585

pkg/sac/effectiveaccessscope/effective_access_scope_test.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,9 +1385,7 @@ func TestSelectorsMatchCluster(t *testing.T) {
13851385
},
13861386
"cluster matched by ID is included": {
13871387
ruleSelector: &selectors{
1388-
clustersByID: map[string]bool{
1389-
clusterEarth.GetId(): true,
1390-
},
1388+
clustersByID: set.NewStringSet(clusterEarth.GetId()),
13911389
},
13921390
cluster: clusterEarth,
13931391
expected: Included,
@@ -1449,10 +1447,8 @@ func TestSelectorsMatchNamespace(t *testing.T) {
14491447
},
14501448
"namespace matched by cluster ID is included": {
14511449
ruleSelectors: &selectors{
1452-
namespacesByClusterID: map[string]map[string]bool{
1453-
nsSkunkWorks.GetClusterId(): {
1454-
nsSkunkWorks.GetName(): true,
1455-
},
1450+
namespacesByClusterID: map[string]set.StringSet{
1451+
nsSkunkWorks.GetClusterId(): set.NewStringSet(nsSkunkWorks.GetName()),
14561452
},
14571453
},
14581454
namespace: nsSkunkWorks,

0 commit comments

Comments
 (0)