1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-13 19:28:55 +00:00

feat: detect duplicate resources in cli fix test (#8420)

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
Charles-Edouard Brétéché 2023-09-15 11:17:50 +02:00 committed by GitHub
parent fa36f76cf9
commit 3247f0c9cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -7,6 +7,7 @@ import (
testapi "github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/apis/test"
datautils "github.com/kyverno/kyverno/pkg/utils/data"
"golang.org/x/exp/slices"
"k8s.io/apimachinery/pkg/util/sets"
)
func FixTest(test testapi.Test, compress bool) (testapi.Test, []string, error) {
@ -33,6 +34,11 @@ func FixTest(test testapi.Test, compress bool) (testapi.Test, []string, error) {
result.Resources = resources
result.Resource = ""
}
unique := sets.New(result.Resources...)
if len(result.Resources) != len(unique) {
messages = append(messages, "test results contains duplicate resources")
result.Resources = unique.UnsortedList()
}
if result.Namespace != "" {
messages = append(messages, "test result uses deprecated `namespace` field, replacing `policy` with a `<namespace>/<name>` pattern")
result.Policy = fmt.Sprintf("%s/%s", result.Namespace, result.Policy)
@ -55,6 +61,11 @@ func FixTest(test testapi.Test, compress bool) (testapi.Test, []string, error) {
}
results = nil
for k, v := range compressed {
unique := sets.New(v...)
if len(v) != len(unique) {
messages = append(messages, "test results contains duplicate resources")
v = unique.UnsortedList()
}
results = append(results, testapi.TestResult{
TestResultBase: k,
Resources: v,