From f3e735153ffde9d7effcb814e9273e2d673dc3e4 Mon Sep 17 00:00:00 2001 From: jregan Date: Tue, 26 Nov 2019 18:13:15 -0800 Subject: [PATCH] More tests, better errors. --- api/filesys/fileinfo.go | 2 +- api/filesys/filesystem.go | 6 ++- api/filesys/fsinmemory.go | 2 +- api/filesys/util.go | 9 ++++ api/filesys/util_test.go | 44 ++++++++++++++++++- .../accumulator/loadconfigfromcrds.go | 3 +- api/internal/target/kusttarget_test.go | 2 +- api/internal/target/plugindir_test.go | 2 +- api/konfig/plugins.go | 2 +- api/loader/fileloader.go | 8 ++-- api/loader/fileloader_test.go | 2 +- api/loader/loadrestrictions.go | 2 +- api/loader/loadrestrictions_test.go | 18 +++++--- api/resmap/factory_test.go | 12 ++--- kustomize/go.mod | 3 +- kustomize/go.sum | 39 ++++++++-------- kustomize/internal/commands/build/build.go | 4 +- .../internal/commands/build/build_test.go | 3 +- kustomize/internal/commands/create/create.go | 2 +- .../PatchJson6902Transformer_test.go | 2 +- .../PatchStrategicMergeTransformer_test.go | 2 +- .../patchtransformer/PatchTransformer_test.go | 2 +- 22 files changed, 112 insertions(+), 59 deletions(-) diff --git a/api/filesys/fileinfo.go b/api/filesys/fileinfo.go index aaa63d991..991580997 100644 --- a/api/filesys/fileinfo.go +++ b/api/filesys/fileinfo.go @@ -27,7 +27,7 @@ func (fi fileInfo) Mode() os.FileMode { return 0777 } // ModTime returns a bogus time func (fi fileInfo) ModTime() time.Time { return time.Time{} } -// IsADir returns if it is a directory +// IsDir returns true if it is a directory func (fi fileInfo) IsDir() bool { return fi.dir } // Sys should return underlying data source, but it now returns nil diff --git a/api/filesys/filesystem.go b/api/filesys/filesystem.go index fbed9f64e..066247dc9 100644 --- a/api/filesys/filesystem.go +++ b/api/filesys/filesystem.go @@ -11,7 +11,8 @@ import ( const ( Separator = string(filepath.Separator) doubleSep = Separator + Separator - DotDir = "." + SelfDir = "." + ParentDir = ".." ) // FileSystem groups basic os filesystem methods. @@ -41,7 +42,8 @@ type FileSystem interface { Glob(pattern string) ([]string, error) // ReadFile returns the contents of the file at the given path. ReadFile(path string) ([]byte, error) - // WriteFile writes the data to a file at the given path. + // WriteFile writes the data to a file at the given path, + // overwriting anything that's already there. WriteFile(path string, data []byte) error // Walk walks the file system with the given WalkFunc. Walk(path string, walkFn filepath.WalkFunc) error diff --git a/api/filesys/fsinmemory.go b/api/filesys/fsinmemory.go index deaa5620d..7710a0e4a 100644 --- a/api/filesys/fsinmemory.go +++ b/api/filesys/fsinmemory.go @@ -120,7 +120,7 @@ func (fs *fsInMemory) ReadFile(name string) ([]byte, error) { if ff, found := fs.m[name]; found { return ff.content, nil } - return nil, fmt.Errorf("cannot read file %q", name) + return nil, fmt.Errorf("'%s' doesn't exist", name) } // WriteFile always succeeds and does nothing. diff --git a/api/filesys/util.go b/api/filesys/util.go index 80a196694..e7d844081 100644 --- a/api/filesys/util.go +++ b/api/filesys/util.go @@ -19,3 +19,12 @@ func StripTrailingSeps(s string) string { } return s[:k] } + +// StripLeadingSeps trims leading filepath separators from input. +func StripLeadingSeps(s string) string { + k := 0 + for k < len(s) && s[k] == filepath.Separator { + k++ + } + return s[k:] +} diff --git a/api/filesys/util_test.go b/api/filesys/util_test.go index 28fbdf8b8..488189e92 100644 --- a/api/filesys/util_test.go +++ b/api/filesys/util_test.go @@ -84,9 +84,9 @@ func TestFilePathSplit(t *testing.T) { file: "", }, { - full: DotDir, + full: SelfDir, dir: "", - file: DotDir, + file: SelfDir, }, { full: "rabbit.jpg", @@ -163,3 +163,43 @@ func TestStripTrailingSeps(t *testing.T) { } } } + +func TestStripLeadingSeps(t *testing.T) { + cases := []struct { + full string + rem string + }{ + { + full: "foo", + rem: "foo", + }, + { + full: "", + rem: "", + }, + { + full: "/foo", + rem: "foo", + }, + { + full: "///foo///bar///", + rem: "foo///bar///", + }, + { + full: "/////", + rem: "", + }, + { + full: "/", + rem: "", + }, + } + for _, p := range cases { + dir := StripLeadingSeps(p.full) + if dir != p.rem { + t.Fatalf( + "in '%s', got dir='%s' (expected '%s')", + p.full, dir, p.rem) + } + } +} diff --git a/api/internal/accumulator/loadconfigfromcrds.go b/api/internal/accumulator/loadconfigfromcrds.go index 00e1c66db..2eac72325 100644 --- a/api/internal/accumulator/loadconfigfromcrds.go +++ b/api/internal/accumulator/loadconfigfromcrds.go @@ -10,6 +10,7 @@ import ( "github.com/go-openapi/spec" "github.com/pkg/errors" "k8s.io/kube-openapi/pkg/common" + "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/ifc" "sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig" "sigs.k8s.io/kustomize/api/resid" @@ -78,7 +79,7 @@ func makeConfigFromApiMap(m nameToApiMap) (*builtinconfig.TransformerConfig, err // openAPI definition once // "x-kubernetes-group-version-kind" is available in CRD func makeGvkFromTypeName(n string) resid.Gvk { - names := strings.Split(n, ".") + names := strings.Split(n, filesys.SelfDir) kind := names[len(names)-1] return resid.Gvk{Kind: kind} } diff --git a/api/internal/target/kusttarget_test.go b/api/internal/target/kusttarget_test.go index af6047a88..2b32c5f5c 100644 --- a/api/internal/target/kusttarget_test.go +++ b/api/internal/target/kusttarget_test.go @@ -203,7 +203,7 @@ func TestResourceNotFound(t *testing.T) { if err == nil { t.Fatalf("Didn't get the expected error for an unknown resource") } - if !strings.Contains(err.Error(), `cannot read file`) { + if !strings.Contains(err.Error(), "'/whatever/deployment.yaml' doesn't exist") { t.Fatalf("unexpected error: %q", err) } } diff --git a/api/internal/target/plugindir_test.go b/api/internal/target/plugindir_test.go index 16f500f51..0ed73862f 100644 --- a/api/internal/target/plugindir_test.go +++ b/api/internal/target/plugindir_test.go @@ -81,7 +81,7 @@ metadata: t.Fatalf("Err: %v", err) } - th := kusttest_test.NewKustTestHarness(t, ".") + th := kusttest_test.NewKustTestHarness(t, filesys.SelfDir) th.AssertActualEqualsExpected(m, ` apiVersion: v1 kind: WorkDir diff --git a/api/konfig/plugins.go b/api/konfig/plugins.go index 47c8e583c..1fd571f87 100644 --- a/api/konfig/plugins.go +++ b/api/konfig/plugins.go @@ -139,7 +139,7 @@ func CurrentWorkingDir() string { if len(pwd) > 0 { return pwd } - return "." + return filesys.SelfDir } func pwdEnv() string { diff --git a/api/loader/fileloader.go b/api/loader/fileloader.go index 2248fb501..bca41401d 100644 --- a/api/loader/fileloader.go +++ b/api/loader/fileloader.go @@ -93,20 +93,18 @@ type fileLoader struct { cleaner func() error } -const CWD = "." - -// NewFileLoaderAtCwd returns a loader that loads from ".". +// NewFileLoaderAtCwd returns a loader that loads from PWD. // A convenience for kustomize edit commands. func NewFileLoaderAtCwd(fSys filesys.FileSystem) *fileLoader { return newLoaderOrDie( - RestrictionRootOnly, fSys, CWD) + RestrictionRootOnly, fSys, filesys.SelfDir) } // NewFileLoaderAtRoot returns a loader that loads from "/". // A convenience for tests. func NewFileLoaderAtRoot(fSys filesys.FileSystem) *fileLoader { return newLoaderOrDie( - RestrictionRootOnly, fSys, string(filepath.Separator)) + RestrictionRootOnly, fSys, filesys.Separator) } // Root returns the absolute path that is prepended to any diff --git a/api/loader/fileloader_test.go b/api/loader/fileloader_test.go index b77e7b0d6..fa0875102 100644 --- a/api/loader/fileloader_test.go +++ b/api/loader/fileloader_test.go @@ -131,7 +131,7 @@ func TestLoaderBadRelative(t *testing.T) { } // It's not okay to stay at the same place. - l2, err = l1.New(".") + l2, err = l1.New(filesys.SelfDir) if err == nil { t.Fatalf("expected err, but got root %s", l2.Root()) } diff --git a/api/loader/loadrestrictions.go b/api/loader/loadrestrictions.go index d1f5da8f7..99b5562fb 100644 --- a/api/loader/loadrestrictions.go +++ b/api/loader/loadrestrictions.go @@ -19,7 +19,7 @@ func RestrictionRootOnly( return "", err } if f == "" { - return "", fmt.Errorf("'%s' must be a file", path) + return "", fmt.Errorf("'%s' must resolve to a file", path) } if !d.HasPrefix(root) { return "", fmt.Errorf( diff --git a/api/loader/loadrestrictions_test.go b/api/loader/loadrestrictions_test.go index e1ef8d119..35210fe83 100644 --- a/api/loader/loadrestrictions_test.go +++ b/api/loader/loadrestrictions_test.go @@ -4,6 +4,7 @@ package loader import ( + "path/filepath" "strings" "testing" @@ -25,9 +26,11 @@ func TestRestrictionNone(t *testing.T) { func TestRestrictionRootOnly(t *testing.T) { fSys := filesys.MakeFsInMemory() - root := filesys.ConfirmedDir("/tmp/foo") + root := filesys.ConfirmedDir( + filesys.Separator + filepath.Join("tmp", "foo")) + path := filepath.Join(string(root), "whatever", "beans") - path := "/tmp/foo/whatever/beans" + fSys.Create(path) p, err := RestrictionRootOnly(fSys, root, path) if err != nil { t.Fatal(err) @@ -37,18 +40,21 @@ func TestRestrictionRootOnly(t *testing.T) { } // Legal. - path = "/tmp/foo/whatever/../../foo/whatever" + path = filepath.Join( + string(root), "whatever", "..", "..", "foo", "whatever", "beans") p, err = RestrictionRootOnly(fSys, root, path) if err != nil { t.Fatal(err) } - path = "/tmp/foo/whatever" + path = filepath.Join( + string(root), "whatever", "beans") if p != path { t.Fatalf("expected '%s', got '%s'", path, p) } - // Illegal. - path = "/tmp/illegal" + // Illegal; file exists but is out of bounds. + path = filepath.Join(filesys.Separator+"tmp", "illegal") + fSys.Create(path) _, err = RestrictionRootOnly(fSys, root, path) if err == nil { t.Fatal("should have an error") diff --git a/api/resmap/factory_test.go b/api/resmap/factory_test.go index ea0f367a5..3a2b8ca0e 100644 --- a/api/resmap/factory_test.go +++ b/api/resmap/factory_test.go @@ -8,13 +8,12 @@ import ( "reflect" "testing" - "sigs.k8s.io/kustomize/api/resid" - "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/ifc" "sigs.k8s.io/kustomize/api/internal/loadertest" "sigs.k8s.io/kustomize/api/kv" "sigs.k8s.io/kustomize/api/loader" + "sigs.k8s.io/kustomize/api/resid" . "sigs.k8s.io/kustomize/api/resmap" resmaptest_test "sigs.k8s.io/kustomize/api/testutils/resmaptest" valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest" @@ -209,8 +208,11 @@ BAR=baz // files/literal/env etc. } for _, tc := range testCases { - if fErr := l.AddFile(tc.filepath, []byte(tc.content)); fErr != nil { - t.Fatalf("Error adding fake file: %v\n", fErr) + if tc.filepath != "" { + if fErr := l.AddFile( + tc.filepath, []byte(tc.content)); fErr != nil { + t.Fatalf("error adding file '%s': %v\n", tc.filepath, fErr) + } } r, err := rmF.NewResMapFromConfigMapArgs(kvLdr, nil, tc.input) if err != nil { @@ -238,7 +240,7 @@ func TestNewResMapFromSecretArgs(t *testing.T) { }, } fSys := filesys.MakeFsInMemory() - fSys.Mkdir(".") + fSys.Mkdir(filesys.SelfDir) actual, err := rmF.NewResMapFromSecretArgs( kv.NewLoader( diff --git a/kustomize/go.mod b/kustomize/go.mod index 8b3686996..e9f3cbfe6 100644 --- a/kustomize/go.mod +++ b/kustomize/go.mod @@ -8,12 +8,11 @@ require ( github.com/spf13/pflag v1.0.5 sigs.k8s.io/kustomize/api v0.2.0 sigs.k8s.io/kustomize/cmd/config v0.0.0 - sigs.k8s.io/kustomize/kyaml v0.0.0 - sigs.k8s.io/kustomize/pseudo/k8s v0.1.0 sigs.k8s.io/yaml v1.1.0 ) replace ( + sigs.k8s.io/kustomize/api v0.2.0 => ../api sigs.k8s.io/kustomize/cmd/config v0.0.0 => ../cmd/config sigs.k8s.io/kustomize/kyaml v0.0.0 => ../kyaml sigs.k8s.io/kustomize/pseudo/k8s v0.0.0 => ../pseudo/k8s diff --git a/kustomize/go.sum b/kustomize/go.sum index 5c530cddb..dd9124360 100644 --- a/kustomize/go.sum +++ b/kustomize/go.sum @@ -27,6 +27,7 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bombsimon/wsl v1.2.5/go.mod h1:43lEF/i0kpXbLCeDXL9LMT8c92HyBywXb0AsgMHYngM= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= @@ -47,8 +48,6 @@ github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZ github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful v2.9.6+incompatible h1:tfrHha8zJ01ywiOEC1miGY8st1/igzWB8OmvPgoYX7w= -github.com/emicklei/go-restful v2.9.6+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M= github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -94,6 +93,7 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gofrs/flock v0.0.0-20190320160742-5135e617513b/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= @@ -113,10 +113,10 @@ github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvL github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o= github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= -github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.19.1/go.mod h1:2CEc4Fxx3vxDv7g8DyXkHCBF73AOzAymcJAprs2vCps= +github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= +github.com/golangci/golangci-lint v1.21.0/go.mod h1:phxpHK52q7SE+5KpPnti4oZTdFCEsn/tKN+nFvCKXfk= github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= -github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= +github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= @@ -132,8 +132,6 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= -github.com/googleapis/gnostic v0.3.0 h1:CcQijm0XKekKjP/YCz28LXVSpgguuB+nCxaSjCe09y0= -github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/gophercloud/gophercloud v0.6.0/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM= github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= @@ -181,8 +179,8 @@ github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/matoous/godox v0.0.0-20190910121045-032ad8106c86/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -233,7 +231,7 @@ github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYe github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/securego/gosec v0.0.0-20190912120752-140048b2a218/go.mod h1:q6oYAujd2qyeU4cJqIri4LBIgdHXGvxWHZ1E29HNFRE= +github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do= github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= @@ -264,12 +262,13 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= -github.com/ultraware/whitespace v0.0.3/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= +github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= +github.com/uudashr/gocognit v0.0.0-20190926065955-1655d0de0517/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s= github.com/valyala/quicktemplate v1.2.0/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4= @@ -287,7 +286,7 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -305,8 +304,7 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190909003024-a7b16738d86b h1:XfVGCX+0T4WOStkaOsJRllbsiImhB2jgVBGc9L0lPGc= -golang.org/x/net v0.0.0-20190909003024-a7b16738d86b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -325,8 +323,8 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5 h1:SW/0nsKCUaozCUtZTakri5laocGx/5bkDSSLrFUsa5s= -golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 h1:rOhMmluY6kLMhdnrivzec6lLgaVbMHMn2ISQXJeJ5EM= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= @@ -349,8 +347,8 @@ golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190719005602-e377ae9d6386/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911230505-6bfd74cf029c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190912215617-3720d1ec3678/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190930201159-7c411dea38b0/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -390,8 +388,7 @@ k8s.io/utils v0.0.0-20191030222137-2b95a09bc58d/go.mod h1:sZAwmy6armz5eXlNoLmJcl mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw= -sigs.k8s.io/kustomize/api v0.2.0 h1:e++6JpysnnlUbHmFrv6jvfF5rFlgQ103bS1DO7r5bWA= -sigs.k8s.io/kustomize/api v0.2.0/go.mod h1:zVtMg179jW1gr74jo9fc2Ac9dLYLTZZThc3DDb9lDW4= +sigs.k8s.io/kustomize/pluginator/v2 v2.0.0/go.mod h1:zrXhTv8BAKt0egmZX/8AtMOSFUSWM9YuoHvvqz8/eHE= sigs.k8s.io/kustomize/pseudo/k8s v0.1.0 h1:otg4dLFc03c3gzl+2CV8GPGcd1kk8wjXwD+UhhcCn5I= sigs.k8s.io/kustomize/pseudo/k8s v0.1.0/go.mod h1:bl/gVJgYYhJZCZdYU2BfnaKYAlqFkgbJEkpl302jEss= sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= diff --git a/kustomize/internal/commands/build/build.go b/kustomize/internal/commands/build/build.go index 970ffa3e9..21af80347 100644 --- a/kustomize/internal/commands/build/build.go +++ b/kustomize/internal/commands/build/build.go @@ -80,8 +80,6 @@ func NewCmdBuild(out io.Writer) *cobra.Command { return cmd } -const CWD = "." - // Validate validates build command. func (o *Options) Validate(args []string) (err error) { if len(args) > 1 { @@ -90,7 +88,7 @@ func (o *Options) Validate(args []string) (err error) { konfig.DefaultKustomizationFileName()) } if len(args) == 0 { - o.kustomizationPath = CWD + o.kustomizationPath = filesys.SelfDir } else { o.kustomizationPath = args[0] } diff --git a/kustomize/internal/commands/build/build_test.go b/kustomize/internal/commands/build/build_test.go index 49b70c08d..ad67d7770 100644 --- a/kustomize/internal/commands/build/build_test.go +++ b/kustomize/internal/commands/build/build_test.go @@ -6,6 +6,7 @@ package build import ( "testing" + "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/konfig" ) @@ -22,7 +23,7 @@ func TestBuildValidate(t *testing.T) { path string erMsg string }{ - {"noargs", []string{}, ".", ""}, + {"noargs", []string{}, filesys.SelfDir, ""}, {"file", []string{"beans"}, "beans", ""}, {"path", []string{"a/b/c"}, "a/b/c", ""}, {"path", []string{"too", "many"}, diff --git a/kustomize/internal/commands/create/create.go b/kustomize/internal/commands/create/create.go index 3d952608e..4d3d3bb64 100644 --- a/kustomize/internal/commands/create/create.go +++ b/kustomize/internal/commands/create/create.go @@ -31,7 +31,7 @@ type createFlags struct { // NewCmdCreate returns an instance of 'create' subcommand. func NewCmdCreate(fSys filesys.FileSystem, uf ifc.KunstructuredFactory) *cobra.Command { - opts := createFlags{path: "."} + opts := createFlags{path: filesys.SelfDir} c := &cobra.Command{ Use: "create", Short: "Create a new kustomization in the current directory", diff --git a/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer_test.go b/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer_test.go index c656fa260..7b4110e9f 100644 --- a/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer_test.go +++ b/plugin/builtin/patchjson6902transformer/PatchJson6902Transformer_test.go @@ -51,7 +51,7 @@ path: jsonpatch.json if err == nil { t.Fatalf("expected error") } - if !strings.Contains(err.Error(), "cannot read file \"/app/jsonpatch.json\"") { + if !strings.Contains(err.Error(), "'/app/jsonpatch.json' doesn't exist") { t.Fatalf("unexpected err: %v", err) } } diff --git a/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer_test.go b/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer_test.go index b5357e3f0..585595f35 100644 --- a/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer_test.go +++ b/plugin/builtin/patchstrategicmergetransformer/PatchStrategicMergeTransformer_test.go @@ -77,7 +77,7 @@ paths: t.Fatalf("expected error") } if !strings.Contains(err.Error(), - "cannot read file \"/app/patch.yaml\"") && + "'/app/patch.yaml' doesn't exist") && !strings.Contains(err.Error(), "cannot unmarshal string") { t.Fatalf("unexpected err: %v", err) diff --git a/plugin/builtin/patchtransformer/PatchTransformer_test.go b/plugin/builtin/patchtransformer/PatchTransformer_test.go index 0128f9f49..b641cb74a 100644 --- a/plugin/builtin/patchtransformer/PatchTransformer_test.go +++ b/plugin/builtin/patchtransformer/PatchTransformer_test.go @@ -83,7 +83,7 @@ path: patch.yaml t.Fatalf("expected error") } if !strings.Contains(err.Error(), - "cannot read file \"/app/patch.yaml\"") { + "'/app/patch.yaml' doesn't exist") { t.Fatalf("unexpected err: %v", err) } }