Merge pull request #3964 from ash2k/ash2k/handle-errors2

Handle errors
This commit is contained in:
Kubernetes Prow Robot
2021-06-07 16:26:03 -07:00
committed by GitHub
25 changed files with 232 additions and 126 deletions

View File

@@ -560,7 +560,7 @@ func isLegalFileNameForCreation(n string) bool {
func (n *fsNode) RegExpGlob(pattern string) ([]string, error) {
var result []string
var expression = regexp.MustCompile(pattern)
n.WalkMe(func(path string, info os.FileInfo, err error) error {
err := n.WalkMe(func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
@@ -571,6 +571,9 @@ func (n *fsNode) RegExpGlob(pattern string) ([]string, error) {
}
return nil
})
if err != nil {
return nil, err
}
sort.Strings(result)
return result, nil
}
@@ -582,7 +585,7 @@ func (n *fsNode) RegExpGlob(pattern string) ([]string, error) {
// This is how /bin/ls behaves.
func (n *fsNode) Glob(pattern string) ([]string, error) {
var result []string
n.WalkMe(func(path string, info os.FileInfo, err error) error {
err := n.WalkMe(func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
@@ -597,6 +600,9 @@ func (n *fsNode) Glob(pattern string) ([]string, error) {
}
return nil
})
if err != nil {
return nil, err
}
sort.Strings(result)
return result, nil
}

View File

@@ -178,9 +178,12 @@ func loadCrdIntoConfig(
}
}
if property.Ref.GetURL() != nil {
loadCrdIntoConfig(
err = loadCrdIntoConfig(
theConfig, theGvk, theMap,
property.Ref.String(), append(path, propName))
if err != nil {
return
}
}
}
return nil

View File

@@ -7,6 +7,7 @@ import (
"reflect"
"testing"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
. "sigs.k8s.io/kustomize/api/internal/accumulator"
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
@@ -162,16 +163,13 @@ func TestLoadCRDs(t *testing.T) {
}
fSys := filesys.MakeFsInMemory()
fSys.WriteFile("/testpath/crd.json", []byte(crdContent))
err := fSys.WriteFile("/testpath/crd.json", []byte(crdContent))
require.NoError(t, err)
ldr, err := loader.NewLoader(loader.RestrictionRootOnly, "/testpath", fSys)
if err != nil {
t.Fatalf("unexpected error:%v", err)
}
require.NoError(t, err)
actualTc, err := LoadConfigFromCRDs(ldr, []string{"crd.json"})
if err != nil {
t.Fatalf("unexpected error:%v", err)
}
require.NoError(t, err)
if !reflect.DeepEqual(actualTc, expectedTc) {
t.Fatalf("expected\n %v\n but got\n %v\n", expectedTc, actualTc)
}

View File

@@ -10,6 +10,7 @@ import (
"strings"
"testing"
"github.com/stretchr/testify/require"
. "sigs.k8s.io/kustomize/api/internal/accumulator"
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
"sigs.k8s.io/kustomize/api/provider"
@@ -224,20 +225,26 @@ func TestResolveVarConflicts(t *testing.T) {
// create accumulators holding apparently conflicting vars that are not
// actually in conflict because they point to the same concrete value.
rm0 := resmap.New()
rm0.Append(rf.FromMap(fooAws))
err := rm0.Append(rf.FromMap(fooAws))
require.NoError(t, err)
ac0 := MakeEmptyAccumulator()
ac0.AppendAll(rm0)
ac0.MergeVars([]types.Var{varFoo})
err = ac0.AppendAll(rm0)
require.NoError(t, err)
err = ac0.MergeVars([]types.Var{varFoo})
require.NoError(t, err)
rm1 := resmap.New()
rm1.Append(rf.FromMap(barAws))
err = rm1.Append(rf.FromMap(barAws))
require.NoError(t, err)
ac1 := MakeEmptyAccumulator()
ac1.AppendAll(rm1)
ac1.MergeVars([]types.Var{varBar})
err = ac1.AppendAll(rm1)
require.NoError(t, err)
err = ac1.MergeVars([]types.Var{varBar})
require.NoError(t, err)
// validate that two vars of the same name which reference the same concrete
// value do not produce a conflict.
err := ac0.MergeAccumulator(ac1)
err = ac0.MergeAccumulator(ac1)
if err == nil {
t.Fatalf("see bug gh-1600")
}
@@ -246,10 +253,13 @@ func TestResolveVarConflicts(t *testing.T) {
// two above (because it contains a variable whose name is used in the other
// accumulators AND whose concrete values are different).
rm2 := resmap.New()
rm2.Append(rf.FromMap(barGcp))
err = rm2.Append(rf.FromMap(barGcp))
require.NoError(t, err)
ac2 := MakeEmptyAccumulator()
ac2.AppendAll(rm2)
ac2.MergeVars([]types.Var{varBar})
err = ac2.AppendAll(rm2)
require.NoError(t, err)
err = ac2.MergeVars([]types.Var{varBar})
require.NoError(t, err)
err = ac1.MergeAccumulator(ac2)
if err == nil {
t.Fatalf("dupe vars w/ different concrete values should conflict")

View File

@@ -40,7 +40,13 @@ func MakeConfigMap(
if err = rn.LoadMapIntoConfigMapData(m); err != nil {
return nil, err
}
copyLabelsAndAnnotations(rn, args.Options)
setImmutable(rn, args.Options)
err = copyLabelsAndAnnotations(rn, args.Options)
if err != nil {
return nil, err
}
err = setImmutable(rn, args.Options)
if err != nil {
return nil, err
}
return rn, nil
}

View File

@@ -89,7 +89,10 @@ type argsConfig struct {
func (p *ExecPlugin) processOptionalArgsFields() error {
var c argsConfig
yaml.Unmarshal(p.cfg, &c)
err := yaml.Unmarshal(p.cfg, &c)
if err != nil {
return err
}
if c.ArgsOneLiner != "" {
p.args, _ = shlex.Split(c.ArgsOneLiner)
}

View File

@@ -9,6 +9,7 @@ import (
"strings"
"testing"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
. "sigs.k8s.io/kustomize/api/internal/plugins/execplugin"
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
@@ -21,11 +22,12 @@ import (
func TestExecPluginConfig(t *testing.T) {
fSys := filesys.MakeFsInMemory()
fSys.WriteFile("sed-input.txt", []byte(`
err := fSys.WriteFile("sed-input.txt", []byte(`
s/$FOO/foo/g
s/$BAR/bar baz/g
\ \ \
`))
require.NoError(t, err)
ldr, err := fLdr.NewLoader(
fLdr.RestrictionRootOnly, filesys.Separator, fSys)
if err != nil {
@@ -62,9 +64,10 @@ s/$BAR/bar baz/g
if err != nil {
t.Fatalf("unexpected err: %v", err)
}
p.Config(
err = p.Config(
resmap.NewPluginHelpers(ldr, pvd.GetFieldValidator(), rf, pc),
yaml)
require.NoError(t, err)
expected := "someteam.example.com/v1/sedtransformer/SedTransformer"
if !strings.HasSuffix(p.Path(), expected) {

View File

@@ -192,7 +192,9 @@ func UpdateResMapValues(pluginName string, h *resmap.PluginHelpers, output []byt
for _, id := range rm.AllIds() {
newIdx, _ := newMap.GetIndexOfCurrentId(id)
if newIdx == -1 {
rm.Remove(id)
if err = rm.Remove(id); err != nil {
return err
}
}
}

View File

@@ -10,6 +10,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/provider"
@@ -86,8 +87,10 @@ func TestUpdateResourceOptions(t *testing.T) {
}
for i, c := range cases {
name := fmt.Sprintf("test%d", i)
in.Append(makeConfigMap(rf, name, c.behavior, c.hashValue))
expected.Append(makeConfigMapOptions(rf, name, c.behavior, !c.needsHash))
err := in.Append(makeConfigMap(rf, name, c.behavior, c.hashValue))
require.NoError(t, err)
err = expected.Append(makeConfigMapOptions(rf, name, c.behavior, !c.needsHash))
require.NoError(t, err)
}
actual, err := UpdateResourceOptions(in)
assert.NoError(t, err)
@@ -105,10 +108,9 @@ func TestUpdateResourceOptionsWithInvalidHashAnnotationValues(t *testing.T) {
for i, c := range cases {
name := fmt.Sprintf("test%d", i)
in := resmap.New()
in.Append(makeConfigMap(rf, name, "", &c))
_, err := UpdateResourceOptions(in)
if err == nil {
t.Errorf("expected error from value %q", c)
}
err := in.Append(makeConfigMap(rf, name, "", &c))
require.NoError(t, err)
_, err = UpdateResourceOptions(in)
require.Error(t, err)
}
}

View File

@@ -9,7 +9,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/types"
)
@@ -18,11 +18,11 @@ func TestDefaultAbsPluginHome_NoKustomizePluginHomeEnv(t *testing.T) {
fSys := filesys.MakeFsInMemory()
keep, isSet := os.LookupEnv(KustomizePluginHomeEnv)
if isSet {
_ = os.Unsetenv(KustomizePluginHomeEnv)
unsetenv(t, KustomizePluginHomeEnv)
}
_, err := DefaultAbsPluginHome(fSys)
if isSet {
os.Setenv(KustomizePluginHomeEnv, keep)
setenv(t, KustomizePluginHomeEnv, keep)
}
if err == nil {
t.Fatalf("expected err")
@@ -43,13 +43,13 @@ func TestDefaultAbsPluginHome_NoKustomizePluginHomeEnv(t *testing.T) {
func TestDefaultAbsPluginHome_EmptyKustomizePluginHomeEnv(t *testing.T) {
keep, isSet := os.LookupEnv(KustomizePluginHomeEnv)
os.Setenv(KustomizePluginHomeEnv, "")
setenv(t, KustomizePluginHomeEnv, "")
_, err := DefaultAbsPluginHome(filesys.MakeFsInMemory())
if !isSet {
_ = os.Unsetenv(KustomizePluginHomeEnv)
unsetenv(t, KustomizePluginHomeEnv)
} else {
_ = os.Setenv(KustomizePluginHomeEnv, keep)
setenv(t, KustomizePluginHomeEnv, keep)
}
if err == nil {
t.Fatalf("expected err")
@@ -65,16 +65,15 @@ func TestDefaultAbsPluginHome_WithKustomizePluginHomeEnv(t *testing.T) {
keep, isSet := os.LookupEnv(KustomizePluginHomeEnv)
if !isSet {
keep = "whatever"
os.Setenv(KustomizePluginHomeEnv, keep)
setenv(t, KustomizePluginHomeEnv, keep)
}
fSys.Mkdir(keep)
err := fSys.Mkdir(keep)
require.NoError(t, err)
h, err := DefaultAbsPluginHome(fSys)
if !isSet {
_ = os.Unsetenv(KustomizePluginHomeEnv)
}
if err != nil {
t.Fatalf("unexpected err: %v", err)
unsetenv(t, KustomizePluginHomeEnv)
}
require.NoError(t, err)
if h != keep {
t.Fatalf("unexpected config dir: %s", h)
}
@@ -85,13 +84,14 @@ func TestDefaultAbsPluginHomeWithXdg(t *testing.T) {
keep, isSet := os.LookupEnv(XdgConfigHomeEnv)
if !isSet {
keep = "whatever"
os.Setenv(XdgConfigHomeEnv, keep)
setenv(t, XdgConfigHomeEnv, keep)
}
configDir := filepath.Join(keep, ProgramName, RelPluginHome)
fSys.Mkdir(configDir)
err := fSys.Mkdir(configDir)
require.NoError(t, err)
h, err := DefaultAbsPluginHome(fSys)
if !isSet {
_ = os.Unsetenv(XdgConfigHomeEnv)
unsetenv(t, XdgConfigHomeEnv)
}
if err != nil {
t.Fatalf("unexpected err: %v", err)
@@ -105,11 +105,11 @@ func TestDefaultAbsPluginHomeNoConfig(t *testing.T) {
fSys := filesys.MakeFsInMemory()
keep, isSet := os.LookupEnv(XdgConfigHomeEnv)
if isSet {
_ = os.Unsetenv(XdgConfigHomeEnv)
unsetenv(t, XdgConfigHomeEnv)
}
_, err := DefaultAbsPluginHome(fSys)
if isSet {
os.Setenv(XdgConfigHomeEnv, keep)
setenv(t, XdgConfigHomeEnv, keep)
}
if err == nil {
t.Fatalf("expected err")
@@ -121,13 +121,13 @@ func TestDefaultAbsPluginHomeNoConfig(t *testing.T) {
func TestDefaultAbsPluginHomeEmptyXdgConfig(t *testing.T) {
keep, isSet := os.LookupEnv(XdgConfigHomeEnv)
os.Setenv(XdgConfigHomeEnv, "")
setenv(t, XdgConfigHomeEnv, "")
if isSet {
_ = os.Unsetenv(XdgConfigHomeEnv)
unsetenv(t, XdgConfigHomeEnv)
}
_, err := DefaultAbsPluginHome(filesys.MakeFsInMemory())
if isSet {
os.Setenv(XdgConfigHomeEnv, keep)
setenv(t, XdgConfigHomeEnv, keep)
}
if err == nil {
t.Fatalf("expected err")
@@ -142,14 +142,16 @@ func TestDefaultAbsPluginHomeNoXdgWithDotConfig(t *testing.T) {
fSys := filesys.MakeFsInMemory()
configDir := filepath.Join(
HomeDir(), XdgConfigHomeEnvDefault, ProgramName, RelPluginHome)
fSys.Mkdir(configDir)
err := fSys.Mkdir(configDir)
require.NoError(t, err)
keep, isSet := os.LookupEnv(XdgConfigHomeEnv)
if isSet {
_ = os.Unsetenv(XdgConfigHomeEnv)
unsetenv(t, XdgConfigHomeEnv)
}
s, _ := DefaultAbsPluginHome(fSys)
s, err := DefaultAbsPluginHome(fSys)
require.NoError(t, err)
if isSet {
os.Setenv(XdgConfigHomeEnv, keep)
setenv(t, XdgConfigHomeEnv, keep)
}
if s != configDir {
t.Fatalf("unexpected config dir: %s", s)
@@ -160,16 +162,26 @@ func TestDefaultAbsPluginHomeNoXdgJustHomeDir(t *testing.T) {
fSys := filesys.MakeFsInMemory()
configDir := filepath.Join(
HomeDir(), ProgramName, RelPluginHome)
fSys.Mkdir(configDir)
err := fSys.Mkdir(configDir)
require.NoError(t, err)
keep, isSet := os.LookupEnv(XdgConfigHomeEnv)
if isSet {
_ = os.Unsetenv(XdgConfigHomeEnv)
unsetenv(t, XdgConfigHomeEnv)
}
s, _ := DefaultAbsPluginHome(fSys)
s, err := DefaultAbsPluginHome(fSys)
require.NoError(t, err)
if isSet {
os.Setenv(XdgConfigHomeEnv, keep)
setenv(t, XdgConfigHomeEnv, keep)
}
if s != configDir {
t.Fatalf("unexpected config dir: %s", s)
}
}
func setenv(t *testing.T, key, value string) {
require.NoError(t, os.Setenv(key, value))
}
func unsetenv(t *testing.T, key string) {
require.NoError(t, os.Unsetenv(key))
}

View File

@@ -7,6 +7,7 @@ import (
"reflect"
"testing"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
ldr "sigs.k8s.io/kustomize/api/loader"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
@@ -83,7 +84,8 @@ func TestKeyValuesFromFileSources(t *testing.T) {
}
fSys := filesys.MakeFsInMemory()
fSys.WriteFile("/files/app-init.ini", []byte("FOO=bar"))
err := fSys.WriteFile("/files/app-init.ini", []byte("FOO=bar"))
require.NoError(t, err)
kvl := makeKvLoader(fSys)
for _, tc := range tests {
kvs, err := kvl.keyValuesFromFileSources(tc.sources)

View File

@@ -17,17 +17,18 @@ func NewCommand() *cobra.Command {
DisableFlagsInUseLine: true,
ValidArgs: []string{"bash", "zsh", "fish", "powershell"},
Args: cobra.ExactValidArgs(1),
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
switch args[0] {
case "bash":
cmd.Root().GenBashCompletion(os.Stdout)
return cmd.Root().GenBashCompletion(os.Stdout)
case "zsh":
cmd.Root().GenZshCompletion(os.Stdout)
return cmd.Root().GenZshCompletion(os.Stdout)
case "fish":
cmd.Root().GenFishCompletion(os.Stdout, true)
return cmd.Root().GenFishCompletion(os.Stdout, true)
case "powershell":
cmd.Root().GenPowerShellCompletion(os.Stdout)
return cmd.Root().GenPowerShellCompletion(os.Stdout)
}
return nil
},
}
}

View File

@@ -104,9 +104,9 @@ func (r *AnnotateRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
return err
}
// print error message and continue if there are multiple packages to annotate
fmt.Fprintf(w, "%s\n", err.Error())
_, _ = fmt.Fprintf(w, "%s\n", err.Error())
} else {
fmt.Fprint(w, "added annotations in the package\n")
_, _ = fmt.Fprint(w, "added annotations in the package\n")
}
return nil
}

View File

@@ -27,7 +27,7 @@ const (
// ConvertToBuiltInPlugin converts the input plugin file to
// kustomize builtin plugin and writes it to proper directory
func ConvertToBuiltInPlugin() error {
func ConvertToBuiltInPlugin() (retErr error) {
root, err := inputFileRoot()
if err != nil {
return err
@@ -47,7 +47,12 @@ func ConvertToBuiltInPlugin() error {
if err != nil {
return err
}
defer w.close()
defer func() {
closeErr := w.Close()
if retErr == nil {
retErr = closeErr
}
}()
// This particular phrasing is required.
w.write(
@@ -139,10 +144,10 @@ func makeOutputFileName(root string) string {
"..", "..", "..", "api", packageForGeneratedCode, root+".go")
}
func (w *writer) close() {
func (w *writer) Close() error {
// Do this for debugging.
// fmt.Println("Generated " + makeOutputFileName(w.root))
w.f.Close()
return w.f.Close()
}
func (w *writer) write(line string) {

View File

@@ -8,6 +8,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v4/commands/internal/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils"
@@ -21,7 +22,8 @@ func TestAddBaseHappyPath(t *testing.T) {
fSys := filesys.MakeFsInMemory()
bases := strings.Split(baseDirectoryPaths, ",")
for _, base := range bases {
fSys.Mkdir(base)
err := fSys.Mkdir(base)
require.NoError(t, err)
}
testutils_test.WriteTestKustomization(fSys)
@@ -41,7 +43,8 @@ func TestAddBaseAlreadyThere(t *testing.T) {
// Create fake directories
bases := strings.Split(baseDirectoryPaths, ",")
for _, base := range bases {
fSys.Mkdir(base)
err := fSys.Mkdir(base)
require.NoError(t, err)
}
testutils_test.WriteTestKustomization(fSys)

View File

@@ -7,6 +7,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils"
)
@@ -21,8 +22,10 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
func TestAddComponentHappyPath(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(componentFileName, []byte(componentFileContent))
fSys.WriteFile(componentFileName+"another", []byte(componentFileContent))
err := fSys.WriteFile(componentFileName, []byte(componentFileContent))
require.NoError(t, err)
err = fSys.WriteFile(componentFileName+"another", []byte(componentFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddComponent(fSys)
@@ -36,7 +39,8 @@ func TestAddComponentHappyPath(t *testing.T) {
func TestAddComponentAlreadyThere(t *testing.T) {
fSys := filesys.MakeFsInMemory()
fSys.WriteFile(componentFileName, []byte(componentFileContent))
err := fSys.WriteFile(componentFileName, []byte(componentFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddComponent(fSys)
@@ -49,15 +53,16 @@ func TestAddComponentAlreadyThere(t *testing.T) {
func TestAddKustomizationFileAsComponent(t *testing.T) {
fSys := filesys.MakeFsInMemory()
fSys.WriteFile(componentFileName, []byte(componentFileContent))
err := fSys.WriteFile(componentFileName, []byte(componentFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddComponent(fSys)
args := []string{componentFileName}
assert.NoError(t, cmd.RunE(cmd, args))
require.NoError(t, cmd.RunE(cmd, args))
content, err := testutils_test.ReadTestKustomization(fSys)
assert.NoError(t, err)
require.NoError(t, err)
assert.NotContains(t, string(content), componentFileName)
}
@@ -66,6 +71,5 @@ func TestAddComponentNoArgs(t *testing.T) {
cmd := newCmdAddComponent(fSys)
err := cmd.Execute()
assert.Error(t, err)
assert.Equal(t, "must specify a component file", err.Error())
assert.EqualError(t, err, "must specify a component file")
}

View File

@@ -7,6 +7,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
"sigs.k8s.io/kustomize/api/types"
@@ -163,8 +164,9 @@ func TestAddAnnotationForce(t *testing.T) {
// but trying to add it with --force should
v = valtest_test.MakeHappyMapValidator(t)
cmd = newCmdAddAnnotation(fSys, v.Validator)
cmd.Flag("force").Value.Set("true")
assert.NoError(t, cmd.RunE(cmd, args))
err = cmd.Flag("force").Value.Set("true")
require.NoError(t, err)
require.NoError(t, cmd.RunE(cmd, args))
v.VerifyCall()
}
@@ -266,7 +268,8 @@ func TestAddLabelForce(t *testing.T) {
// but trying to add it with --force should
v = valtest_test.MakeHappyMapValidator(t)
cmd = newCmdAddLabel(fSys, v.Validator)
cmd.Flag("force").Value.Set("true")
err = cmd.Flag("force").Value.Set("true")
require.NoError(t, err)
assert.NoError(t, cmd.RunE(cmd, args))
v.VerifyCall()
}

View File

@@ -8,6 +8,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils"
)
@@ -28,7 +29,8 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit,
func TestAddPatchWithFilePath(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(patchFileName, []byte(patchFileContent))
err := fSys.WriteFile(patchFileName, []byte(patchFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddPatch(fSys)
@@ -53,7 +55,8 @@ func TestAddPatchWithFilePath(t *testing.T) {
func TestAddPatchWithPatchContent(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(patchFileName, []byte(patchFileContent))
err := fSys.WriteFile(patchFileName, []byte(patchFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddPatch(fSys)
@@ -78,7 +81,8 @@ func TestAddPatchWithPatchContent(t *testing.T) {
func TestAddPatchAlreadyThere(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(patchFileName, []byte(patchFileContent))
err := fSys.WriteFile(patchFileName, []byte(patchFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddPatch(fSys)

View File

@@ -7,6 +7,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils"
)
@@ -21,8 +22,10 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
func TestAddResourceHappyPath(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(resourceFileName, []byte(resourceFileContent))
fSys.WriteFile(resourceFileName+"another", []byte(resourceFileContent))
err := fSys.WriteFile(resourceFileName, []byte(resourceFileContent))
require.NoError(t, err)
err = fSys.WriteFile(resourceFileName+"another", []byte(resourceFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddResource(fSys)
@@ -36,7 +39,8 @@ func TestAddResourceHappyPath(t *testing.T) {
func TestAddResourceAlreadyThere(t *testing.T) {
fSys := filesys.MakeFsInMemory()
fSys.WriteFile(resourceFileName, []byte(resourceFileContent))
err := fSys.WriteFile(resourceFileName, []byte(resourceFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddResource(fSys)
@@ -49,7 +53,8 @@ func TestAddResourceAlreadyThere(t *testing.T) {
func TestAddKustomizationFileAsResource(t *testing.T) {
fSys := filesys.MakeFsInMemory()
fSys.WriteFile(resourceFileName, []byte(resourceFileContent))
err := fSys.WriteFile(resourceFileName, []byte(resourceFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddResource(fSys)

View File

@@ -7,6 +7,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/kustomize/v4/commands/internal/kustfile"
testutils_test "sigs.k8s.io/kustomize/kustomize/v4/commands/internal/testutils"
@@ -22,8 +23,10 @@ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
func TestAddTransformerHappyPath(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(transformerFileName, []byte(transformerFileContent))
fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent))
err := fSys.WriteFile(transformerFileName, []byte(transformerFileContent))
require.NoError(t, err)
err = fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddTransformer(fSys)
@@ -37,7 +40,8 @@ func TestAddTransformerHappyPath(t *testing.T) {
func TestAddTransformerAlreadyThere(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(transformerFileName, []byte(transformerFileName))
err := fSys.WriteFile(transformerFileName, []byte(transformerFileName))
require.NoError(t, err)
testutils_test.WriteTestKustomization(fSys)
cmd := newCmdAddTransformer(fSys)
@@ -61,18 +65,18 @@ func TestAddTransformerNoArgs(t *testing.T) {
cmd := newCmdAddTransformer(fSys)
err := cmd.Execute()
assert.Error(t, err)
assert.Equal(t, "must specify a transformer file", err.Error())
assert.EqualError(t, err, "must specify a transformer file")
}
func TestAddTransformerMissingKustomizationYAML(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.WriteFile(transformerFileName, []byte(transformerFileContent))
fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent))
err := fSys.WriteFile(transformerFileName, []byte(transformerFileContent))
require.NoError(t, err)
err = fSys.WriteFile(transformerFileName+"another", []byte(transformerFileContent))
require.NoError(t, err)
cmd := newCmdAddTransformer(fSys)
args := []string{transformerFileName + "*"}
err := cmd.RunE(cmd, args)
assert.Error(t, err)
assert.Equal(t, "Missing kustomization file 'kustomization.yaml'.\n", err.Error())
err = cmd.RunE(cmd, args)
assert.EqualError(t, err, "Missing kustomization file 'kustomization.yaml'.\n")
}

View File

@@ -8,7 +8,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
)
@@ -88,13 +88,17 @@ func TestDataConfigValidation_Flags(t *testing.T) {
func TestExpandFileSource(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.Create("dir/fa1")
fSys.Create("dir/fa2")
fSys.Create("dir/readme")
_, err := fSys.Create("dir/fa1")
require.NoError(t, err)
_, err = fSys.Create("dir/fa2")
require.NoError(t, err)
_, err = fSys.Create("dir/readme")
require.NoError(t, err)
fa := flagsAndArgs{
FileSources: []string{"dir/fa*"},
}
fa.ExpandFileSource(fSys)
err = fa.ExpandFileSource(fSys)
require.NoError(t, err)
expected := []string{
"dir/fa1",
"dir/fa2",
@@ -106,14 +110,19 @@ func TestExpandFileSource(t *testing.T) {
func TestExpandFileSourceWithKey(t *testing.T) {
fSys := filesys.MakeEmptyDirInMemory()
fSys.Create("dir/faaaaaaaaaabbbbbbbbbccccccccccccccccc")
fSys.Create("dir/foobar")
fSys.Create("dir/simplebar")
fSys.Create("dir/readme")
_, err := fSys.Create("dir/faaaaaaaaaabbbbbbbbbccccccccccccccccc")
require.NoError(t, err)
_, err = fSys.Create("dir/foobar")
require.NoError(t, err)
_, err = fSys.Create("dir/simplebar")
require.NoError(t, err)
_, err = fSys.Create("dir/readme")
require.NoError(t, err)
fa := flagsAndArgs{
FileSources: []string{"foo-key=dir/fa*", "bar-key=dir/foobar", "dir/simplebar"},
}
fa.ExpandFileSource(fSys)
err = fa.ExpandFileSource(fSys)
require.NoError(t, err)
expected := []string{
"foo-key=dir/faaaaaaaaaabbbbbbbbbccccccccccccccccc",
"bar-key=dir/foobar",
@@ -126,13 +135,16 @@ func TestExpandFileSourceWithKey(t *testing.T) {
func TestExpandFileSourceWithKeyAndError(t *testing.T) {
fSys := filesys.MakeFsInMemory()
fSys.Create("dir/fa1")
fSys.Create("dir/fa2")
fSys.Create("dir/readme")
_, err := fSys.Create("dir/fa1")
require.NoError(t, err)
_, err = fSys.Create("dir/fa2")
require.NoError(t, err)
_, err = fSys.Create("dir/readme")
require.NoError(t, err)
fa := flagsAndArgs{
FileSources: []string{"foo-key=dir/fa*"},
}
err := fa.ExpandFileSource(fSys)
err = fa.ExpandFileSource(fSys)
if err == nil {
t.Fatalf("FileSources should not be correctly expanded: %v", fa.FileSources)
}

View File

@@ -9,7 +9,7 @@ import (
"testing"
"github.com/google/go-cmp/cmp"
"github.com/stretchr/testify/require"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/types"
@@ -125,7 +125,8 @@ configMapGenerator:
`
for _, n := range konfig.RecognizedKustomizationFileNames() {
fSys := filesys.MakeFsInMemory()
fSys.WriteFile(n, []byte(kcontent))
err := fSys.WriteFile(n, []byte(kcontent))
require.NoError(t, err)
k, err := NewKustomizationFile(fSys)
if err != nil {
t.Fatalf("Unexpected Error: %v", err)

View File

@@ -10,6 +10,7 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"gopkg.in/yaml.v3"
)
@@ -1671,7 +1672,8 @@ func TestSetName(t *testing.T) {
if err := rn.UnmarshalJSON([]byte(deploymentBiggerJson)); err != nil {
t.Fatalf("unexpected unmarshaljson err: %v", err)
}
rn.SetName("marge")
err := rn.SetName("marge")
require.NoError(t, err)
if expected, actual := "marge", rn.GetName(); expected != actual {
t.Fatalf("expected '%s', got '%s'", expected, actual)
}
@@ -1682,12 +1684,15 @@ func TestSetNamespace(t *testing.T) {
if err := rn.UnmarshalJSON([]byte(deploymentBiggerJson)); err != nil {
t.Fatalf("unexpected unmarshaljson err: %v", err)
}
rn.SetNamespace("flanders")
meta, _ := rn.GetMeta()
err := rn.SetNamespace("flanders")
require.NoError(t, err)
meta, err := rn.GetMeta()
require.NoError(t, err)
if expected, actual := "flanders", meta.Namespace; expected != actual {
t.Fatalf("expected '%s', got '%s'", expected, actual)
}
}
func TestSetLabels(t *testing.T) {
rn := NewRNode(nil)
if err := rn.UnmarshalJSON([]byte(deploymentBiggerJson)); err != nil {

View File

@@ -213,7 +213,10 @@ func String(node *yaml.Node, opts ...string) (string, error) {
b := &bytes.Buffer{}
e := NewEncoder(b)
err := e.Encode(node)
e.Close()
errClose := e.Close()
if err == nil {
err = errClose
}
val := b.String()
if optsSet.Has(Trim) {
val = strings.TrimSpace(val)

View File

@@ -37,11 +37,20 @@ func (p *plugin) Transform(m resmap.ResMap) error {
if r.GetName() == p.Name {
for i := 1; i <= p.Count; i++ {
c := r.DeepCopy()
c.SetName(fmt.Sprintf("%s-%d", p.Name, i))
m.Append(c)
err := c.SetName(fmt.Sprintf("%s-%d", p.Name, i))
if err != nil {
return err
}
err = m.Append(c)
if err != nil {
return err
}
}
} else {
m.Append(r)
err := m.Append(r)
if err != nil {
return err
}
}
}
return nil