From b401e2ea3f4bc5fcbcc141819bb3c016f35a80f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geyslan=20Greg=C3=B3rio?= Date: Fri, 1 Sep 2023 15:50:12 -0300 Subject: [PATCH] fix(flags): use scope flag parser for policy Make PrepareFilterMapsFromPolicies() use parseScopeFlag() instead of parsing the scope flag manually. --- pkg/cmd/flags/policy.go | 19 ++++--------------- pkg/cmd/flags/policy_test.go | 12 ++++++------ 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/pkg/cmd/flags/policy.go b/pkg/cmd/flags/policy.go index 7e0eeece021c..d3efc509e162 100644 --- a/pkg/cmd/flags/policy.go +++ b/pkg/cmd/flags/policy.go @@ -47,23 +47,12 @@ func PrepareFilterMapsFromPolicies(policies []v1beta1.PolicyFile) (PolicyScopeMa break } - var scopeName, operatorAndValues string - - switch s { - case "follow", "!container", "container": - scopeName = s - operatorAndValues = "" - default: - operatorIdx := strings.IndexAny(s, "=!<>") - scopeName = s[:operatorIdx] - operatorAndValues = s[operatorIdx:] + parsed, err := parseScopeFlag(s) + if err != nil { + return nil, nil, errfmt.WrapError(err) } - scopeFlags = append(scopeFlags, scopeFlag{ - full: s, - scopeName: scopeName, - operatorAndValues: operatorAndValues, - }) + scopeFlags = append(scopeFlags, parsed) } policyScopeMap[pIdx] = policyScopes{ diff --git a/pkg/cmd/flags/policy_test.go b/pkg/cmd/flags/policy_test.go index 8bdfec9f818e..6cc0c0a34823 100644 --- a/pkg/cmd/flags/policy_test.go +++ b/pkg/cmd/flags/policy_test.go @@ -361,9 +361,9 @@ func TestPrepareFilterMapsFromPolicies(t *testing.T) { policyName: "!container-scope", scopeFlags: []scopeFlag{ { - full: "!container", - scopeName: "!container", - operatorAndValues: "", + full: "!container", + scopeName: "container", + operator: "!", }, }, }, @@ -617,9 +617,9 @@ func TestPrepareFilterMapsFromPolicies(t *testing.T) { operatorAndValues: "", }, { - full: "!container", - scopeName: "!container", - operatorAndValues: "", + full: "!container", + scopeName: "container", + operator: "!", }, { full: "uid=1000",