mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-10 01:46:55 +00:00
* fix: manually add generated_resources property Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * fix: update engine response Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * fix: nil check before deferences Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * fix: outdated errors Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * fix: linter Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> --------- Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> Co-authored-by: shuting <shuting@nirmata.com>
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-git/go-billy/v5"
|
|
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/resource"
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
)
|
|
|
|
func getAndCompareResource(actualResources []*unstructured.Unstructured, fs billy.Filesystem, path string) (bool, error) {
|
|
expectedResources, err := resource.GetResourceFromPath(fs, path)
|
|
if err != nil {
|
|
return false, fmt.Errorf("error: failed to load resource (%s)", err)
|
|
}
|
|
|
|
expectedResourcesMap := map[string]unstructured.Unstructured{}
|
|
for _, expectedResource := range expectedResources {
|
|
if expectedResource == nil {
|
|
continue
|
|
}
|
|
r := *expectedResource
|
|
resource.FixupGenerateLabels(r)
|
|
expectedResourcesMap[expectedResource.GetNamespace()+"/"+expectedResource.GetName()] = r
|
|
}
|
|
|
|
for _, actualResource := range actualResources {
|
|
if actualResource == nil {
|
|
continue
|
|
}
|
|
r := *actualResource
|
|
resource.FixupGenerateLabels(r)
|
|
equals, err := resource.Compare(r, expectedResourcesMap[r.GetNamespace()+"/"+r.GetName()], true)
|
|
if err != nil {
|
|
return false, fmt.Errorf("error: failed to compare resources (%s)", err)
|
|
}
|
|
if !equals {
|
|
return false, nil
|
|
}
|
|
}
|
|
return true, nil
|
|
}
|