mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Handle errors
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user