From a6c196044cd372fbca93744d08d352237d58dddf Mon Sep 17 00:00:00 2001 From: Robert Brennan Date: Thu, 4 Mar 2021 22:01:09 +0000 Subject: [PATCH] resource provider helper --- pkg/kube/resources.go | 47 ++++++++++++++++---------------------- pkg/kube/resources_test.go | 12 ++-------- 2 files changed, 22 insertions(+), 37 deletions(-) diff --git a/pkg/kube/resources.go b/pkg/kube/resources.go index 59dcb402..0f18b960 100644 --- a/pkg/kube/resources.go +++ b/pkg/kube/resources.go @@ -41,6 +41,19 @@ type ResourceProvider struct { OtherKinds map[string][]GenericResource } +func newResourceProvider(version, sourceType, sourceName string) ResourceProvider { + return ResourceProvider{ + ServerVersion: version, + SourceType: sourceType, + SourceName: sourceName, + CreationTime: time.Now(), + Nodes: make([]corev1.Node, 0), + Namespaces: make([]corev1.Namespace, 0), + Controllers: make([]GenericResource, 0), + OtherKinds: make(map[string][]GenericResource), + } +} + type k8sResource struct { Kind string `yaml:"kind"` } @@ -75,14 +88,7 @@ func CreateResourceProviderFromResource(ctx context.Context, workload string) (* logrus.Errorf("Error fetching Cluster API version: %v", err) return nil, err } - resources := ResourceProvider{ - ServerVersion: serverVersion.Major + "." + serverVersion.Minor, - SourceType: "Resource", - SourceName: workload, - CreationTime: time.Now(), - Nodes: []corev1.Node{}, - Namespaces: []corev1.Namespace{}, - } + resources := newResourceProvider(serverVersion.Major+"."+serverVersion.Minor, "Resource", workload) parts := strings.Split(workload, "/") if len(parts) != 4 { @@ -121,14 +127,7 @@ func CreateResourceProviderFromResource(ctx context.Context, workload string) (* // CreateResourceProviderFromPath returns a new ResourceProvider using the YAML files in a directory func CreateResourceProviderFromPath(directory string) (*ResourceProvider, error) { - resources := ResourceProvider{ - ServerVersion: "unknown", - SourceType: "Path", - SourceName: directory, - Nodes: []corev1.Node{}, - Namespaces: []corev1.Namespace{}, - Controllers: []GenericResource{}, - } + resources := newResourceProvider("unknown", "Path", directory) if directory == "-" { fi, err := os.Stdin.Stat() @@ -251,17 +250,11 @@ func CreateResourceProviderFromAPI(ctx context.Context, kube kubernetes.Interfac logrus.Errorf("Error loading controllers from pods: %v", err) return nil, err } - - api := ResourceProvider{ - ServerVersion: serverVersion.Major + "." + serverVersion.Minor, - SourceType: "Cluster", - SourceName: clusterName, - CreationTime: time.Now(), - Nodes: nodes.Items, - Namespaces: namespaces.Items, - Controllers: controllers, - OtherKinds: otherObjects, - } + api := newResourceProvider(serverVersion.Major+"."+serverVersion.Minor, "Cluster", clusterName) + api.Nodes = nodes.Items + api.Namespaces = namespaces.Items + api.Controllers = controllers + api.OtherKinds = otherObjects return &api, nil } diff --git a/pkg/kube/resources_test.go b/pkg/kube/resources_test.go index 26e22184..07e64403 100644 --- a/pkg/kube/resources_test.go +++ b/pkg/kube/resources_test.go @@ -10,7 +10,6 @@ import ( conf "github.com/fairwindsops/polaris/pkg/config" "github.com/fairwindsops/polaris/test" "github.com/stretchr/testify/assert" - corev1 "k8s.io/api/core/v1" ) func TestGetResourcesFromPath(t *testing.T) { @@ -66,15 +65,8 @@ func TestAddResourcesFromReader(t *testing.T) { contents, err := ioutil.ReadFile("./test_files/test_2/multi.yaml") assert.NoError(t, err) reader := bytes.NewBuffer(contents) - resources := &ResourceProvider{ - ServerVersion: "unknown", - SourceType: "Path", - SourceName: "-", - Nodes: []corev1.Node{}, - Namespaces: []corev1.Namespace{}, - Controllers: []GenericResource{}, - } - err = addResourcesFromReader(reader, resources) + resources := newResourceProvider("unknown", "Path", "-") + err = addResourcesFromReader(reader, &resources) assert.NoError(t, err) assert.Equal(t, 0, len(resources.Nodes), "Should not have any nodes")