Skip to content

Commit

Permalink
fix dependency issues with framework.Result moving it under kio
Browse files Browse the repository at this point in the history
  • Loading branch information
Carlos Ortiz García committed Nov 9, 2021
1 parent 8843df9 commit 8a6f489
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 33 deletions.
3 changes: 1 addition & 2 deletions kyaml/filtersutil/filtersutil.go
Expand Up @@ -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"
)
Expand All @@ -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) {
Expand Down
8 changes: 4 additions & 4 deletions kyaml/fn/framework/command/example_test.go
Expand Up @@ -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 {
Expand All @@ -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",
},
Expand Down
10 changes: 5 additions & 5 deletions kyaml/fn/framework/framework_test.go
Expand Up @@ -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"},
},
}
Expand Down
10 changes: 5 additions & 5 deletions kyaml/fn/runtime/starlark/starlark.go
Expand Up @@ -5,7 +5,6 @@ package starlark

import (
"bytes"
"encoding/json"
goerrors "errors"
"fmt"
"io"
Expand All @@ -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"
)
Expand Down Expand Up @@ -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
}
Expand All @@ -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)
}
Expand Down
3 changes: 1 addition & 2 deletions kyaml/kio/filters/filters.go
Expand Up @@ -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"
Expand Down Expand Up @@ -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
}
}
Expand Down
13 changes: 6 additions & 7 deletions kyaml/kio/kio.go
Expand Up @@ -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"
)
Expand Down Expand Up @@ -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
Expand All @@ -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)
}
Expand All @@ -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) {
Expand All @@ -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)
}
Expand Down
13 changes: 6 additions & 7 deletions kyaml/kio/kio_test.go
Expand Up @@ -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"

Expand Down Expand Up @@ -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,
}}
}),
},
Expand Down
2 changes: 1 addition & 1 deletion kyaml/fn/framework/result.go → 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"
Expand Down

0 comments on commit 8a6f489

Please sign in to comment.