From 8a6f4899c837382185639f7df0517463fb509ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Ortiz=20Garc=C3=ADa?= Date: Mon, 8 Nov 2021 19:02:04 -0800 Subject: [PATCH] fix dependency issues with framework.Result moving it under kio --- kyaml/filtersutil/filtersutil.go | 3 +-- kyaml/fn/framework/command/example_test.go | 8 ++++---- kyaml/fn/framework/framework_test.go | 10 +++++----- kyaml/fn/runtime/starlark/starlark.go | 10 +++++----- kyaml/kio/filters/filters.go | 3 +-- kyaml/kio/kio.go | 13 ++++++------- kyaml/kio/kio_test.go | 13 ++++++------- kyaml/{fn/framework => kio}/result.go | 2 +- 8 files changed, 29 insertions(+), 33 deletions(-) rename kyaml/{fn/framework => kio}/result.go (99%) diff --git a/kyaml/filtersutil/filtersutil.go b/kyaml/filtersutil/filtersutil.go index 3a3b039dc58..e7257a109a7 100644 --- a/kyaml/filtersutil/filtersutil.go +++ b/kyaml/filtersutil/filtersutil.go @@ -8,7 +8,6 @@ import ( goerrors "errors" "sigs.k8s.io/kustomize/kyaml/errors" - "sigs.k8s.io/kustomize/kyaml/fn/framework" "sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/yaml" ) @@ -34,7 +33,7 @@ func ApplyToJSON(filter kio.Filter, objs ...marshalerUnmarshaler) error { // apply the filter, skip error type "Results" nodes, err := filter.Filter(nodes) - if err != nil && !goerrors.Is(err, &framework.Results{}) { + if err != nil && !goerrors.Is(err, &kio.Results{}) { return err } if len(nodes) != len(objs) { diff --git a/kyaml/fn/framework/command/example_test.go b/kyaml/fn/framework/command/example_test.go index 435b2559fe1..0a9e28e3d4e 100644 --- a/kyaml/fn/framework/command/example_test.go +++ b/kyaml/fn/framework/command/example_test.go @@ -296,7 +296,7 @@ functionConfig: func ExampleBuild_validate() { fn := func(rl *framework.ResourceList) error { // validation results - var validationResults framework.Results + var validationResults kio.Results // validate that each Deployment resource has spec.replicas set for i := range rl.Items { @@ -319,14 +319,14 @@ func ExampleBuild_validate() { if r != nil { continue } - validationResults = append(validationResults, &framework.Result{ - Severity: framework.Error, + validationResults = append(validationResults, &kio.Result{ + Severity: kio.Error, Message: "field is required", ResourceRef: yaml.ResourceIdentifier{ TypeMeta: meta.TypeMeta, NameMeta: meta.ObjectMeta.NameMeta, }, - Field: framework.Field{ + Field: kio.Field{ Path: "spec.replicas", ProposedValue: "1", }, diff --git a/kyaml/fn/framework/framework_test.go b/kyaml/fn/framework/framework_test.go index 39dc678f0bd..ba34aefd03a 100644 --- a/kyaml/fn/framework/framework_test.go +++ b/kyaml/fn/framework/framework_test.go @@ -16,27 +16,27 @@ import ( func TestExecute_Result(t *testing.T) { p := framework.SimpleProcessor{Filter: kio.FilterFunc(func(in []*yaml.RNode) ([]*yaml.RNode, error) { - return in, framework.Results{ + return in, kio.Results{ { Message: "bad value for replicas", - Severity: framework.Error, + Severity: kio.Error, ResourceRef: yaml.ResourceIdentifier{ TypeMeta: yaml.TypeMeta{APIVersion: "v1", Kind: "Deployment"}, NameMeta: yaml.NameMeta{Name: "tester", Namespace: "default"}, }, - Field: framework.Field{ + Field: kio.Field{ Path: ".spec.Replicas", CurrentValue: "0", ProposedValue: "3", }, - File: framework.File{ + File: kio.File{ Path: "/path/to/deployment.yaml", Index: 0, }, }, { Message: "some error", - Severity: framework.Error, + Severity: kio.Error, Tags: map[string]string{"foo": "bar"}, }, } diff --git a/kyaml/fn/runtime/starlark/starlark.go b/kyaml/fn/runtime/starlark/starlark.go index 18bdf6f903e..afd274bf1c2 100644 --- a/kyaml/fn/runtime/starlark/starlark.go +++ b/kyaml/fn/runtime/starlark/starlark.go @@ -5,7 +5,6 @@ package starlark import ( "bytes" - "encoding/json" goerrors "errors" "fmt" "io" @@ -14,9 +13,9 @@ import ( "go.starlark.net/starlark" "sigs.k8s.io/kustomize/kyaml/errors" - "sigs.k8s.io/kustomize/kyaml/fn/framework" "sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil" "sigs.k8s.io/kustomize/kyaml/internal/forked/github.com/qri-io/starlib/util" + "sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio/filters" "sigs.k8s.io/kustomize/kyaml/yaml" ) @@ -165,13 +164,14 @@ func (sf *Filter) writeResourceList(value starlark.Value, writer io.Writer) erro return errors.Wrap(err) } - var allResults framework.Results + var allResults kio.Results err = items.VisitElements(func(node *yaml.RNode) error { // starlark will serialize the resources sorting the fields alphabetically, // format them to have a better ordering _, err := filters.FormatFilter{}.Filter([]*yaml.RNode{node}) + // Results are collected for reporting in the final ResourceList if err != nil { - var results framework.Results + var results kio.Results if !goerrors.As(err, &results) { return err } @@ -183,7 +183,7 @@ func (sf *Filter) writeResourceList(value starlark.Value, writer io.Writer) erro return errors.Wrap(err) } - bResults, err := json.Marshal(allResults) + bResults, err := yaml.Marshal(allResults) if err != nil { return errors.Wrap(err) } diff --git a/kyaml/kio/filters/filters.go b/kyaml/kio/filters/filters.go index 4c79eef9fdf..9f4dc60b955 100644 --- a/kyaml/kio/filters/filters.go +++ b/kyaml/kio/filters/filters.go @@ -9,7 +9,6 @@ import ( "sort" "strings" - "sigs.k8s.io/kustomize/kyaml/fn/framework" "sigs.k8s.io/kustomize/kyaml/kio" "sigs.k8s.io/kustomize/kyaml/kio/kioutil" "sigs.k8s.io/kustomize/kyaml/yaml" @@ -92,7 +91,7 @@ func (f MatchModifyFilter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) { var err error for _, filter := range f.MatchFilters { matches, err = MatchFilter{Filters: filter}.Filter(matches) - if err != nil && !goerrors.Is(err, &framework.Results{}) { + if err != nil && !goerrors.Is(err, &kio.Results{}) { return nil, err } } diff --git a/kyaml/kio/kio.go b/kyaml/kio/kio.go index 483f4c24996..54b190180eb 100644 --- a/kyaml/kio/kio.go +++ b/kyaml/kio/kio.go @@ -6,12 +6,10 @@ package kio import ( - "encoding/json" goerrors "errors" "fmt" "sigs.k8s.io/kustomize/kyaml/errors" - "sigs.k8s.io/kustomize/kyaml/fn/framework" "sigs.k8s.io/kustomize/kyaml/kio/kioutil" "sigs.k8s.io/kustomize/kyaml/yaml" ) @@ -119,7 +117,7 @@ func (p Pipeline) ExecuteWithCallback(callback PipelineExecuteCallbackFunc) erro rnodes = append(rnodes, nodes...) } - var allResults framework.Results + var allResults Results // apply operations var err error @@ -139,7 +137,7 @@ func (p Pipeline) ExecuteWithCallback(callback PipelineExecuteCallbackFunc) erro rnodes, err = op.Filter(rnodes) if err != nil { - var results framework.Results + var results Results if !goerrors.As(err, &results) { return errors.Wrap(err) } @@ -165,10 +163,11 @@ func (p Pipeline) ExecuteWithCallback(callback PipelineExecuteCallbackFunc) erro for _, o := range p.Outputs { switch o.(type) { case *ByteReadWriter, *ByteWriter: - bResults, err := json.Marshal(allResults) + bResults, err := yaml.Marshal(allResults) if err != nil { return errors.Wrap(err) } + println("debug", string(bResults)) rNodeResults := yaml.MustParse(string(bResults)) switch w := o.(type) { @@ -189,11 +188,11 @@ func (p Pipeline) ExecuteWithCallback(callback PipelineExecuteCallbackFunc) erro // FilterAll runs the yaml.Filter against all inputs func FilterAll(filter yaml.Filter) Filter { return FilterFunc(func(nodes []*yaml.RNode) ([]*yaml.RNode, error) { - var results framework.Results + var results Results for i := range nodes { _, err := filter.Filter(nodes[i]) if err != nil { - var filterResults framework.Results + var filterResults Results if !goerrors.As(err, &filterResults) { return nil, errors.Wrap(err) } diff --git a/kyaml/kio/kio_test.go b/kyaml/kio/kio_test.go index 445278db22a..05491b10193 100644 --- a/kyaml/kio/kio_test.go +++ b/kyaml/kio/kio_test.go @@ -11,7 +11,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - "sigs.k8s.io/kustomize/kyaml/fn/framework" "sigs.k8s.io/kustomize/kyaml/kio/kioutil" "sigs.k8s.io/kustomize/kyaml/yaml" @@ -600,24 +599,24 @@ items: Inputs: []Reader{&rw}, Filters: []Filter{ FilterFunc(func(in []*yaml.RNode) ([]*yaml.RNode, error) { - return in, framework.Results{{ + return in, Results{{ Message: "result 1", - Severity: framework.Warning, + Severity: Warning, }} }), FilterFunc(func(in []*yaml.RNode) ([]*yaml.RNode, error) { - return in, framework.Results{ + return in, Results{ { Message: "result 2", - Severity: framework.Error, + Severity: Error, }, {Message: "result 3"}, } }), FilterFunc(func(in []*yaml.RNode) ([]*yaml.RNode, error) { - return in, framework.Results{{ + return in, Results{{ Message: "result 4", - Severity: framework.Info, + Severity: Info, }} }), }, diff --git a/kyaml/fn/framework/result.go b/kyaml/kio/result.go similarity index 99% rename from kyaml/fn/framework/result.go rename to kyaml/kio/result.go index 90c66064126..5556fb03edb 100644 --- a/kyaml/fn/framework/result.go +++ b/kyaml/kio/result.go @@ -1,7 +1,7 @@ // Copyright 2019 The Kubernetes Authors. // SPDX-License-Identifier: Apache-2.0 -package framework +package kio import ( "fmt"