mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-13 10:00:56 +00:00
Format the output of cfg commands
This commit is contained in:
@@ -103,10 +103,10 @@ func (r *AnnotateRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if there are multiple packages to annotate
|
// print error message and continue if there are multiple packages to annotate
|
||||||
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "added annotations in package %q\n", pkgPath)
|
fmt.Fprint(w, "added annotations in the package\n")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -501,9 +501,11 @@ func TestAnnotateSubPackages(t *testing.T) {
|
|||||||
name: "annotate-recurse-subpackages",
|
name: "annotate-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
args: []string{"--kv", "foo=bar", "-R"},
|
args: []string{"--kv", "foo=bar", "-R"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
added annotations in package "${baseDir}/mysql"
|
added annotations in the package
|
||||||
added annotations in package "${baseDir}/mysql/storage"
|
|
||||||
|
${baseDir}/mysql/storage/
|
||||||
|
added annotations in the package
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -511,14 +513,18 @@ added annotations in package "${baseDir}/mysql/storage"
|
|||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
args: []string{"--kv", "foo=bar"},
|
args: []string{"--kv", "foo=bar"},
|
||||||
expected: `added annotations in package "${baseDir}/mysql"`,
|
expected: `${baseDir}/mysql/
|
||||||
|
added annotations in the package
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "annotate-nested-pkg-no-recurse-subpackages",
|
name: "annotate-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"--kv", "foo=bar"},
|
args: []string{"--kv", "foo=bar"},
|
||||||
expected: `added annotations in package "${baseDir}/mysql/storage"`,
|
expected: `${baseDir}/mysql/storage/
|
||||||
|
added annotations in the package
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
@@ -550,7 +556,7 @@ added annotations in package "${baseDir}/mysql/storage"
|
|||||||
|
|
||||||
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
||||||
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
||||||
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) {
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ func (r *CatRunner) runE(c *cobra.Command, args []string) error {
|
|||||||
recurseSubPackages: r.RecurseSubPackages,
|
recurseSubPackages: r.RecurseSubPackages,
|
||||||
cmdRunner: r,
|
cmdRunner: r,
|
||||||
rootPkgPath: args[0],
|
rootPkgPath: args[0],
|
||||||
|
skipPkgPathPrint: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
return e.execute()
|
return e.execute()
|
||||||
@@ -133,7 +134,7 @@ func (r *CatRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Fprintf(w, "---\n")
|
fmt.Fprintf(w, "---")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -115,8 +115,7 @@ metadata:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
---
|
---`, b.String()) {
|
||||||
`, b.String()) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -172,8 +171,7 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3`), 0600)
|
||||||
`), 0600)
|
|
||||||
if !assert.NoError(t, err) {
|
if !assert.NoError(t, err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -227,8 +225,7 @@ metadata:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
---
|
---`, b.String()) {
|
||||||
`, b.String()) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -310,8 +307,7 @@ metadata:
|
|||||||
image: gcr.io/example/reconciler:v1
|
image: gcr.io/example/reconciler:v1
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
---
|
---`, b.String()) {
|
||||||
`, b.String()) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -368,8 +364,7 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3`), 0600)
|
||||||
`), 0600)
|
|
||||||
if !assert.NoError(t, err) {
|
if !assert.NoError(t, err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -426,8 +421,7 @@ metadata:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
---
|
---`, string(actual)) {
|
||||||
`, string(actual)) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -484,8 +478,7 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3`), 0600)
|
||||||
`), 0600)
|
|
||||||
if !assert.NoError(t, err) {
|
if !assert.NoError(t, err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -543,8 +536,7 @@ metadata:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 3
|
||||||
---
|
---`, string(actual)) {
|
||||||
`, string(actual)) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -560,8 +552,7 @@ func TestCatSubPackages(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "cat-recurse-subpackages",
|
name: "cat-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
expected: `
|
expected: `# Copyright 2019 The Kubernetes Authors.
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
@@ -592,16 +583,14 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- name: storage
|
- name: storage
|
||||||
image: storage:1.7.7
|
image: storage:1.7.7
|
||||||
---
|
---`,
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "cat-top-level-pkg-no-recurse-subpackages",
|
name: "cat-top-level-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
args: []string{"-R=false"},
|
args: []string{"-R=false"},
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
expected: `
|
expected: `# Copyright 2019 The Kubernetes Authors.
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
@@ -616,16 +605,14 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
image: mysql:1.7.9
|
image: mysql:1.7.9
|
||||||
---
|
---`,
|
||||||
`,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "cat-nested-pkg-no-recurse-subpackages",
|
name: "cat-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"-R=false"},
|
args: []string{"-R=false"},
|
||||||
expected: `
|
expected: `# Copyright 2019 The Kubernetes Authors.
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
@@ -672,7 +659,7 @@ spec:
|
|||||||
|
|
||||||
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
||||||
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
||||||
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) {
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -231,10 +231,10 @@ func (r *CreateSetterRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if RecurseSubPackages is true
|
// print error message and continue if RecurseSubPackages is true
|
||||||
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "created setter %q in package %q\n\n", r.CreateSetter.Name, pkgPath)
|
fmt.Fprintf(w, "created setter %q\n", r.CreateSetter.Name)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "replicas" in package "${baseDir}"`,
|
out: `created setter "replicas"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -83,7 +83,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "replicas" in package "${baseDir}"`,
|
out: `created setter "replicas"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -162,7 +162,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "replicas" in package "${baseDir}"`,
|
out: `created setter "replicas"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -204,7 +204,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter replicas in package ${baseDir}`,
|
out: `created setter replicas`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -259,7 +259,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "list" in package "${baseDir}"`,
|
out: `created setter "list"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -360,7 +360,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter replicas in package ${baseDir}`,
|
out: `created setter replicas`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -407,7 +407,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "replicas" in package "${baseDir}"`,
|
out: `created setter "replicas"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -445,7 +445,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "foo.bar" in package "${baseDir}"`,
|
out: `created setter "foo.bar"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -596,7 +596,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "replicas" in package "${baseDir}"`,
|
out: `created setter "replicas"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -722,7 +722,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created setter "replicas" in package "${baseDir}"`,
|
out: `created setter "replicas"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -814,7 +814,7 @@ spec:
|
|||||||
strings.Replace(out.String(), "\\", "/", -1),
|
strings.Replace(out.String(), "\\", "/", -1),
|
||||||
"//", "/", -1)
|
"//", "/", -1)
|
||||||
|
|
||||||
if !assert.Equal(t, expectedNormalized, strings.TrimSpace(actualNormalized)) {
|
if !assert.Contains(t, actualNormalized, expectedNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -853,10 +853,11 @@ func TestCreateSetterSubPackages(t *testing.T) {
|
|||||||
name: "create-setter-recurse-subpackages",
|
name: "create-setter-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
args: []string{"namespace", "myspace", "-R"},
|
args: []string{"namespace", "myspace", "-R"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
created setter "namespace" in package "${baseDir}/mysql"
|
created setter "namespace"
|
||||||
|
|
||||||
created setter "namespace" in package "${baseDir}/mysql/storage"
|
${baseDir}/mysql/storage/
|
||||||
|
created setter "namespace"
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -864,25 +865,33 @@ created setter "namespace" in package "${baseDir}/mysql/storage"
|
|||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
args: []string{"namespace", "myspace"},
|
args: []string{"namespace", "myspace"},
|
||||||
expected: `created setter "namespace" in package "${baseDir}/mysql"`,
|
expected: `${baseDir}/mysql/
|
||||||
|
created setter "namespace"
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "create-setter-nested-pkg-no-recurse-subpackages",
|
name: "create-setter-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"namespace", "myspace"},
|
args: []string{"namespace", "myspace"},
|
||||||
expected: `created setter "namespace" in package "${baseDir}/mysql/storage"`,
|
expected: `${baseDir}/mysql/storage/
|
||||||
|
created setter "namespace"
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "create-setter-already-exists",
|
name: "create-setter-already-exists",
|
||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
args: []string{"namespace", "myspace", "-R"},
|
args: []string{"namespace", "myspace", "-R"},
|
||||||
expected: `setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it in package "${baseDir}/mysql"
|
expected: `${baseDir}/mysql/
|
||||||
|
setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it
|
||||||
|
|
||||||
created setter "namespace" in package "${baseDir}/mysql/nosetters"
|
${baseDir}/mysql/nosetters/
|
||||||
|
created setter "namespace"
|
||||||
|
|
||||||
setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it in package "${baseDir}/mysql/storage"`,
|
${baseDir}/mysql/storage/
|
||||||
|
setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
@@ -914,7 +923,7 @@ setter with name "namespace" already exists, if you want to modify it, please de
|
|||||||
|
|
||||||
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
||||||
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
||||||
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) {
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -87,10 +87,10 @@ func (r *CreateSubstitutionRunner) executeCmd(w io.Writer, pkgPath string) error
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if RecurseSubPackages is true
|
// print error message and continue if RecurseSubPackages is true
|
||||||
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "created substitution %q in package %q\n\n", r.CreateSubstitution.Name, pkgPath)
|
fmt.Fprintf(w, "created substitution %q\n", r.CreateSubstitution.Name)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ openAPI:
|
|||||||
name: my-tag-setter
|
name: my-tag-setter
|
||||||
value: "1.7.9"
|
value: "1.7.9"
|
||||||
`,
|
`,
|
||||||
out: `created substitution "my-image-subst" in package "${baseDir}"`,
|
out: `created substitution "my-image-subst"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -167,7 +167,7 @@ spec:
|
|||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
`,
|
`,
|
||||||
out: `created substitution "my-image-subst" in package "${baseDir}"`,
|
out: `created substitution "my-image-subst"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -256,7 +256,7 @@ openAPI:
|
|||||||
- marker: ${my-tag-setter}
|
- marker: ${my-tag-setter}
|
||||||
ref: '#/definitions/io.k8s.cli.setters.my-tag-setter'
|
ref: '#/definitions/io.k8s.cli.setters.my-tag-setter'
|
||||||
`,
|
`,
|
||||||
out: `created substitution "my-nested-subst" in package "${baseDir}"`,
|
out: `created substitution "my-nested-subst"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -400,7 +400,7 @@ spec:
|
|||||||
strings.Replace(out.String(), "\\", "/", -1),
|
strings.Replace(out.String(), "\\", "/", -1),
|
||||||
"//", "/", -1)
|
"//", "/", -1)
|
||||||
|
|
||||||
if !assert.Equal(t, expectedNormalized, strings.TrimSpace(actualNormalized)) {
|
if !assert.Contains(t, actualNormalized, expectedNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -439,10 +439,11 @@ func TestCreateSubstSubPackages(t *testing.T) {
|
|||||||
name: "create-subst-recurse-subpackages",
|
name: "create-subst-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"},
|
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
created substitution "image-tag" in package "${baseDir}/mysql"
|
created substitution "image-tag"
|
||||||
|
|
||||||
created substitution "image-tag" in package "${baseDir}/mysql/storage"
|
${baseDir}/mysql/storage/
|
||||||
|
created substitution "image-tag"
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -450,25 +451,30 @@ created substitution "image-tag" in package "${baseDir}/mysql/storage"
|
|||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}"},
|
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}"},
|
||||||
expected: `created substitution "image-tag" in package "${baseDir}/mysql"`,
|
expected: `${baseDir}/mysql/
|
||||||
|
created substitution "image-tag"`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "create-subst-nested-pkg-no-recurse-subpackages",
|
name: "create-subst-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"image-tag", "--field-value", "storage:1.7.9", "--pattern", "${image}:${tag}"},
|
args: []string{"image-tag", "--field-value", "storage:1.7.9", "--pattern", "${image}:${tag}"},
|
||||||
expected: `created substitution "image-tag" in package "${baseDir}/mysql/storage"`,
|
expected: `${baseDir}/mysql/storage/
|
||||||
|
created substitution "image-tag"`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "create-subst-already-exists",
|
name: "create-subst-already-exists",
|
||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"},
|
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"},
|
||||||
expected: `substitution with name "image-tag" already exists in package "${baseDir}/mysql"
|
expected: `${baseDir}/mysql/
|
||||||
|
substitution with name "image-tag" already exists
|
||||||
|
|
||||||
created substitution "image-tag" in package "${baseDir}/mysql/nosetters"
|
${baseDir}/mysql/nosetters/
|
||||||
|
created substitution "image-tag"
|
||||||
|
|
||||||
created substitution "image-tag" in package "${baseDir}/mysql/storage"`,
|
${baseDir}/mysql/storage/
|
||||||
|
created substitution "image-tag"`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
|
|||||||
@@ -95,10 +95,10 @@ func (r *DeleteSetterRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if RecurseSubPackages is true
|
// print error message and continue if RecurseSubPackages is true
|
||||||
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "deleted setter %q in package %q\n\n", r.DeleteSetter.Name, pkgPath)
|
fmt.Fprintf(w, "deleted setter %q\n", r.DeleteSetter.Name)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ openAPI:
|
|||||||
value: "3"
|
value: "3"
|
||||||
setBy: me
|
setBy: me
|
||||||
`,
|
`,
|
||||||
out: `deleted setter "replicas-setter" in package "${baseDir}"`,
|
out: `deleted setter "replicas-setter"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -97,7 +97,7 @@ openAPI:
|
|||||||
name: image
|
name: image
|
||||||
value: nginx
|
value: nginx
|
||||||
`,
|
`,
|
||||||
out: `deleted setter "replicas-setter" in package "${baseDir}"`,
|
out: `deleted setter "replicas-setter"`,
|
||||||
expectedOpenAPI: `
|
expectedOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -161,7 +161,7 @@ spec:
|
|||||||
- "b"
|
- "b"
|
||||||
- "c"
|
- "c"
|
||||||
`,
|
`,
|
||||||
out: `deleted setter "list" in package "${baseDir}"`,
|
out: `deleted setter "list"`,
|
||||||
expectedResources: `
|
expectedResources: `
|
||||||
apiVersion: example.com/v1beta1
|
apiVersion: example.com/v1beta1
|
||||||
kind: Example1
|
kind: Example1
|
||||||
@@ -347,7 +347,7 @@ kind: Deployment
|
|||||||
expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1)
|
expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1)
|
||||||
expectedNormalized := strings.Replace(expectedOut, "\\", "/", -1)
|
expectedNormalized := strings.Replace(expectedOut, "\\", "/", -1)
|
||||||
|
|
||||||
if !assert.Equal(t, expectedNormalized, strings.TrimSpace(actualNorm)) {
|
if !assert.Contains(t, strings.TrimSpace(actualNorm), expectedNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,12 +386,14 @@ func TestDeleteSetterSubPackages(t *testing.T) {
|
|||||||
name: "delete-setter-recurse-subpackages",
|
name: "delete-setter-recurse-subpackages",
|
||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
args: []string{"namespace", "-R"},
|
args: []string{"namespace", "-R"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
deleted setter "namespace" in package "${baseDir}/mysql"
|
deleted setter "namespace"
|
||||||
|
|
||||||
setter "namespace" does not exist in package "${baseDir}/mysql/nosetters"
|
${baseDir}/mysql/nosetters/
|
||||||
|
setter "namespace" does not exist
|
||||||
|
|
||||||
deleted setter "namespace" in package "${baseDir}/mysql/storage"
|
${baseDir}/mysql/storage/
|
||||||
|
deleted setter "namespace"
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -399,14 +401,18 @@ deleted setter "namespace" in package "${baseDir}/mysql/storage"
|
|||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
args: []string{"namespace"},
|
args: []string{"namespace"},
|
||||||
expected: `deleted setter "namespace" in package "${baseDir}/mysql"`,
|
expected: `${baseDir}/mysql/
|
||||||
|
deleted setter "namespace"
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "delete-setter-nested-pkg-no-recurse-subpackages",
|
name: "delete-setter-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"namespace"},
|
args: []string{"namespace"},
|
||||||
expected: `deleted setter "namespace" in package "${baseDir}/mysql/storage"`,
|
expected: `${baseDir}/mysql/storage/
|
||||||
|
deleted setter "namespace"
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
@@ -438,7 +444,7 @@ deleted setter "namespace" in package "${baseDir}/mysql/storage"
|
|||||||
|
|
||||||
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
||||||
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
||||||
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) {
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"sigs.k8s.io/kustomize/cmd/config/ext"
|
"sigs.k8s.io/kustomize/cmd/config/ext"
|
||||||
"sigs.k8s.io/kustomize/kyaml/fieldmeta"
|
"sigs.k8s.io/kustomize/kyaml/fieldmeta"
|
||||||
"sigs.k8s.io/kustomize/kyaml/openapi"
|
|
||||||
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
|
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -53,10 +52,6 @@ func (r *DeleteSubstitutionRunner) preRunE(c *cobra.Command, args []string) erro
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := openapi.AddSchemaFromFile(r.OpenAPIFile); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,10 +91,10 @@ func (r *DeleteSubstitutionRunner) executeCmd(w io.Writer, pkgPath string) error
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if RecurseSubPackages is true
|
// print error message and continue if RecurseSubPackages is true
|
||||||
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "deleted substitution %q in package %q\n\n", r.DeleteSubstitution.Name, pkgPath)
|
fmt.Fprintf(w, "deleted substitution %q\n", r.DeleteSubstitution.Name)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"sigs.k8s.io/kustomize/cmd/config/internal/commands"
|
"sigs.k8s.io/kustomize/cmd/config/internal/commands"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/copyutil"
|
||||||
"sigs.k8s.io/kustomize/kyaml/openapi"
|
"sigs.k8s.io/kustomize/kyaml/openapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -79,7 +80,7 @@ spec:
|
|||||||
- name: sidecar
|
- name: sidecar
|
||||||
image: nginx:1.7.9 # {"$ref":"#/definitions/io.k8s.cli.substitutions.my.image"}
|
image: nginx:1.7.9 # {"$ref":"#/definitions/io.k8s.cli.substitutions.my.image"}
|
||||||
`,
|
`,
|
||||||
out: `deleted substitution "my.image" in package "${baseDir}"`,
|
out: `deleted substitution "my.image"`,
|
||||||
expectedResources: `
|
expectedResources: `
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -170,7 +171,7 @@ spec:
|
|||||||
- name: sidecar
|
- name: sidecar
|
||||||
image: nginx:1.7.9 # {"$openapi":"my-image-sub"}
|
image: nginx:1.7.9 # {"$openapi":"my-image-sub"}
|
||||||
`,
|
`,
|
||||||
out: `deleted substitution "my-image-sub" in package "${baseDir}"`,
|
out: `deleted substitution "my-image-sub"`,
|
||||||
expectedResources: `
|
expectedResources: `
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -472,7 +473,7 @@ spec:
|
|||||||
expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1)
|
expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1)
|
||||||
expectedNorm := strings.Replace(expectedOut, "\\", "/", -1)
|
expectedNorm := strings.Replace(expectedOut, "\\", "/", -1)
|
||||||
|
|
||||||
if !assert.Equal(t, expectedNorm, strings.TrimSpace(actualNorm)) {
|
if !assert.Contains(t, strings.TrimSpace(actualNorm), expectedNorm) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -495,7 +496,74 @@ spec:
|
|||||||
strings.TrimSpace(string(actualResources))) {
|
strings.TrimSpace(string(actualResources))) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDeleteSubstitutionSubPackages(t *testing.T) {
|
||||||
|
var tests = []struct {
|
||||||
|
name string
|
||||||
|
dataset string
|
||||||
|
packagePath string
|
||||||
|
args []string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "delete-substitution-recurse-subpackages",
|
||||||
|
dataset: "dataset-with-setters",
|
||||||
|
args: []string{"image-tag", "-R"},
|
||||||
|
expected: `${baseDir}/mysql/
|
||||||
|
deleted substitution "image-tag"
|
||||||
|
|
||||||
|
${baseDir}/mysql/nosetters/
|
||||||
|
substitution "image-tag" does not exist
|
||||||
|
|
||||||
|
${baseDir}/mysql/storage/
|
||||||
|
substitution "image-tag" does not exist
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "delete-setter-top-level-pkg-no-recurse-subpackages",
|
||||||
|
dataset: "dataset-with-setters",
|
||||||
|
packagePath: "mysql",
|
||||||
|
args: []string{"image-tag"},
|
||||||
|
expected: `${baseDir}/mysql/
|
||||||
|
deleted substitution "image-tag"
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for i := range tests {
|
||||||
|
test := tests[i]
|
||||||
|
t.Run(test.name, func(t *testing.T) {
|
||||||
|
// reset the openAPI afterward
|
||||||
|
openapi.ResetOpenAPI()
|
||||||
|
defer openapi.ResetOpenAPI()
|
||||||
|
sourceDir := filepath.Join("test", "testdata", test.dataset)
|
||||||
|
baseDir, err := ioutil.TempDir("", "")
|
||||||
|
if !assert.NoError(t, err) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
copyutil.CopyDir(sourceDir, baseDir)
|
||||||
|
//defer os.RemoveAll(baseDir)
|
||||||
|
runner := commands.NewDeleteSubstitutionRunner("")
|
||||||
|
actual := &bytes.Buffer{}
|
||||||
|
runner.Command.SetOut(actual)
|
||||||
|
runner.Command.SetArgs(append([]string{filepath.Join(baseDir, test.packagePath)}, test.args...))
|
||||||
|
err = runner.Command.Execute()
|
||||||
|
if !assert.NoError(t, err) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
// normalize path format for windows
|
||||||
|
actualNormalized := strings.Replace(
|
||||||
|
strings.Replace(actual.String(), "\\", "/", -1),
|
||||||
|
"//", "/", -1)
|
||||||
|
|
||||||
|
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
||||||
|
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
||||||
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ func (r *ListSettersRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
OpenAPIFileName: openAPIFileName,
|
OpenAPIFileName: openAPIFileName,
|
||||||
}
|
}
|
||||||
openAPIPath := filepath.Join(pkgPath, openAPIFileName)
|
openAPIPath := filepath.Join(pkgPath, openAPIFileName)
|
||||||
fmt.Fprintf(w, "\n%s/\n", pkgPath)
|
|
||||||
if err := r.ListSetters(w, openAPIPath, pkgPath); err != nil {
|
if err := r.ListSetters(w, openAPIPath, pkgPath); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,10 +178,10 @@ func (r *SetRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if RecurseSubPackages is true
|
// print error message and continue if RecurseSubPackages is true
|
||||||
fmt.Fprintf(w, "%s in package %q\n", err.Error(), r.Set.ResourcesPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "set %d fields in package %q\n", count, r.Set.ResourcesPath)
|
fmt.Fprintf(w, "set %d field(s)\n", count)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ func TestSetCommand(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "set replicas",
|
name: "set replicas",
|
||||||
args: []string{"replicas", "4", "--description", "hi there", "--set-by", "pw"},
|
args: []string{"replicas", "4", "--description", "hi there", "--set-by", "pw"},
|
||||||
out: "set 1 fields\n",
|
out: "set 1 field(s)\n",
|
||||||
inputOpenAPI: `
|
inputOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -127,7 +127,7 @@ spec:
|
|||||||
{
|
{
|
||||||
name: "set replicas no description",
|
name: "set replicas no description",
|
||||||
args: []string{"replicas", "4"},
|
args: []string{"replicas", "4"},
|
||||||
out: "set 1 fields\n",
|
out: "set 1 field(s)\n",
|
||||||
inputOpenAPI: `
|
inputOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -175,7 +175,7 @@ spec:
|
|||||||
{
|
{
|
||||||
name: "set image with value",
|
name: "set image with value",
|
||||||
args: []string{"tag", "1.8.1"},
|
args: []string{"tag", "1.8.1"},
|
||||||
out: "set 1 fields\n",
|
out: "set 1 field(s)\n",
|
||||||
inputOpenAPI: `
|
inputOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -510,7 +510,7 @@ list in body should have at most 2 items`,
|
|||||||
{
|
{
|
||||||
name: "set replicas with value set by flag",
|
name: "set replicas with value set by flag",
|
||||||
args: []string{"replicas", "--values", "4", "--description", "hi there"},
|
args: []string{"replicas", "--values", "4", "--description", "hi there"},
|
||||||
out: "set 1 fields\n",
|
out: "set 1 field(s)\n",
|
||||||
inputOpenAPI: `
|
inputOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -606,7 +606,7 @@ spec:
|
|||||||
{
|
{
|
||||||
name: "openAPI list values set by flag success",
|
name: "openAPI list values set by flag success",
|
||||||
args: []string{"list", "--values", "10", "--values", "11"},
|
args: []string{"list", "--values", "10", "--values", "11"},
|
||||||
out: "set 1 fields\n",
|
out: "set 1 field(s)\n",
|
||||||
inputOpenAPI: `
|
inputOpenAPI: `
|
||||||
kind: Kptfile
|
kind: Kptfile
|
||||||
openAPI:
|
openAPI:
|
||||||
@@ -710,7 +710,7 @@ list in body should have at most 2 items`,
|
|||||||
{
|
{
|
||||||
name: "nested substitution",
|
name: "nested substitution",
|
||||||
args: []string{"my-image-setter", "ubuntu"},
|
args: []string{"my-image-setter", "ubuntu"},
|
||||||
out: "set 2 fields\n",
|
out: "set 2 field(s)\n",
|
||||||
inputOpenAPI: `
|
inputOpenAPI: `
|
||||||
apiVersion: v1alpha1
|
apiVersion: v1alpha1
|
||||||
kind: Example
|
kind: Example
|
||||||
@@ -1093,10 +1093,14 @@ func TestSetSubPackages(t *testing.T) {
|
|||||||
name: "set-recurse-subpackages",
|
name: "set-recurse-subpackages",
|
||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
args: []string{"namespace", "otherspace", "-R"},
|
args: []string{"namespace", "otherspace", "-R"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
set 1 fields in package "${baseDir}/mysql"
|
set 1 field(s)
|
||||||
setter "namespace" is not found in package "${baseDir}/mysql/nosetters"
|
|
||||||
set 1 fields in package "${baseDir}/mysql/storage"
|
${baseDir}/mysql/nosetters/
|
||||||
|
setter "namespace" is not found
|
||||||
|
|
||||||
|
${baseDir}/mysql/storage/
|
||||||
|
set 1 field(s)
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1104,8 +1108,8 @@ set 1 fields in package "${baseDir}/mysql/storage"
|
|||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
args: []string{"namespace", "otherspace"},
|
args: []string{"namespace", "otherspace"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
set 1 fields in package "${baseDir}/mysql"
|
set 1 field(s)
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1113,8 +1117,8 @@ set 1 fields in package "${baseDir}/mysql"
|
|||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"namespace", "otherspace"},
|
args: []string{"namespace", "otherspace"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/storage/
|
||||||
set 1 fields in package "${baseDir}/mysql/storage"
|
set 1 field(s)
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,7 +76,6 @@ func (r *CountRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
|
|
||||||
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName}
|
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName}
|
||||||
|
|
||||||
fmt.Fprintf(w, "%q:\n", pkgPath)
|
|
||||||
err = kio.Pipeline{
|
err = kio.Pipeline{
|
||||||
Inputs: []kio.Reader{input},
|
Inputs: []kio.Reader{input},
|
||||||
Outputs: r.out(w),
|
Outputs: r.out(w),
|
||||||
@@ -88,7 +87,7 @@ func (r *CountRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if there are multiple packages to annotate
|
// print error message and continue if there are multiple packages to annotate
|
||||||
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -86,10 +86,10 @@ func TestCountSubPackages(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "count-recurse-subpackages",
|
name: "count-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
"${baseDir}/mysql":
|
|
||||||
Deployment: 1
|
Deployment: 1
|
||||||
"${baseDir}/mysql/storage":
|
|
||||||
|
${baseDir}/mysql/storage/
|
||||||
Deployment: 1
|
Deployment: 1
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
@@ -98,16 +98,18 @@ Deployment: 1
|
|||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
args: []string{"-R=false"},
|
args: []string{"-R=false"},
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
expected: `"${baseDir}/mysql":
|
expected: `${baseDir}/mysql/
|
||||||
Deployment: 1`,
|
Deployment: 1
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "count-nested-pkg-no-recurse-subpackages",
|
name: "count-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"-R=false"},
|
args: []string{"-R=false"},
|
||||||
expected: `"${baseDir}/mysql/storage":
|
expected: `${baseDir}/mysql/storage/
|
||||||
Deployment: 1`,
|
Deployment: 1
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
@@ -139,7 +141,7 @@ Deployment: 1`,
|
|||||||
|
|
||||||
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
||||||
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
||||||
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) {
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -114,10 +114,10 @@ func (r *FmtRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if RecurseSubPackages is true
|
// print error message and continue if RecurseSubPackages is true
|
||||||
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(w, "formatted resource files in package %q\n", pkgPath)
|
fmt.Fprint(w, "formatted resource files in the package\n")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,23 +179,31 @@ func TestFmtSubPackages(t *testing.T) {
|
|||||||
name: "fmt-recurse-subpackages",
|
name: "fmt-recurse-subpackages",
|
||||||
dataset: "dataset-with-setters",
|
dataset: "dataset-with-setters",
|
||||||
args: []string{"-R"},
|
args: []string{"-R"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
formatted resource files in package "${baseDir}/mysql"
|
formatted resource files in the package
|
||||||
formatted resource files in package "${baseDir}/mysql/nosetters"
|
|
||||||
formatted resource files in package "${baseDir}/mysql/storage"
|
${baseDir}/mysql/nosetters/
|
||||||
|
formatted resource files in the package
|
||||||
|
|
||||||
|
${baseDir}/mysql/storage/
|
||||||
|
formatted resource files in the package
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "fmt-top-level-pkg-no-recurse-subpackages",
|
name: "fmt-top-level-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
expected: `formatted resource files in package "${baseDir}/mysql"`,
|
expected: `${baseDir}/mysql/
|
||||||
|
formatted resource files in the package
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "fmt-nested-pkg-no-recurse-subpackages",
|
name: "fmt-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
expected: `formatted resource files in package "${baseDir}/mysql/storage"`,
|
expected: `${baseDir}/mysql/storage/
|
||||||
|
formatted resource files in the package
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
|
|||||||
@@ -137,7 +137,6 @@ func (r *GrepRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
|
|
||||||
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName}
|
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName}
|
||||||
|
|
||||||
fmt.Fprintf(w, "%q:\n", pkgPath)
|
|
||||||
err = kio.Pipeline{
|
err = kio.Pipeline{
|
||||||
Inputs: []kio.Reader{input},
|
Inputs: []kio.Reader{input},
|
||||||
Filters: []kio.Filter{r.GrepFilter},
|
Filters: []kio.Filter{r.GrepFilter},
|
||||||
@@ -153,7 +152,7 @@ func (r *GrepRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
// print error message and continue if there are multiple packages to annotate
|
// print error message and continue if there are multiple packages to annotate
|
||||||
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
|
fmt.Fprintf(w, "%s\n", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -283,8 +283,7 @@ func TestGrepSubPackages(t *testing.T) {
|
|||||||
name: "grep-recurse-subpackages",
|
name: "grep-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
args: []string{"kind=Deployment"},
|
args: []string{"kind=Deployment"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
"${baseDir}/mysql":
|
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
# Copyright 2019 The Kubernetes Authors.
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
@@ -303,7 +302,8 @@ spec:
|
|||||||
containers:
|
containers:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
image: mysql:1.7.9
|
image: mysql:1.7.9
|
||||||
"${baseDir}/mysql/storage":
|
|
||||||
|
${baseDir}/mysql/storage/
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
# Copyright 2019 The Kubernetes Authors.
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
@@ -329,8 +329,7 @@ spec:
|
|||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
args: []string{"kind=Deployment", "-R=false"},
|
args: []string{"kind=Deployment", "-R=false"},
|
||||||
packagePath: "mysql",
|
packagePath: "mysql",
|
||||||
expected: `
|
expected: `${baseDir}/mysql/
|
||||||
"${baseDir}/mysql":
|
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
# Copyright 2019 The Kubernetes Authors.
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
@@ -348,15 +347,15 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: mysql
|
- name: mysql
|
||||||
image: mysql:1.7.9`,
|
image: mysql:1.7.9
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "grep-nested-pkg-no-recurse-subpackages",
|
name: "grep-nested-pkg-no-recurse-subpackages",
|
||||||
dataset: "dataset-without-setters",
|
dataset: "dataset-without-setters",
|
||||||
packagePath: "mysql/storage",
|
packagePath: "mysql/storage",
|
||||||
args: []string{"kind=Deployment", "-R=false"},
|
args: []string{"kind=Deployment", "-R=false"},
|
||||||
expected: `
|
expected: `${baseDir}/mysql/storage/
|
||||||
"${baseDir}/mysql/storage":
|
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
# Copyright 2019 The Kubernetes Authors.
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
@@ -374,7 +373,8 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: storage
|
- name: storage
|
||||||
image: storage:1.7.7`,
|
image: storage:1.7.7
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i := range tests {
|
for i := range tests {
|
||||||
@@ -403,7 +403,7 @@ spec:
|
|||||||
|
|
||||||
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
|
||||||
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
|
||||||
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) {
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ type executeCmdOnPkgs struct {
|
|||||||
needOpenAPI bool
|
needOpenAPI bool
|
||||||
cmdRunner cmdRunner
|
cmdRunner cmdRunner
|
||||||
writer io.Writer
|
writer io.Writer
|
||||||
|
skipPkgPathPrint bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// executeCmdOnPkgs takes the function definition for a command to be executed on single package, applies that definition
|
// executeCmdOnPkgs takes the function definition for a command to be executed on single package, applies that definition
|
||||||
@@ -57,7 +58,8 @@ func (e executeCmdOnPkgs) execute() error {
|
|||||||
pkgsPaths = []string{e.rootPkgPath}
|
pkgsPaths = []string{e.rootPkgPath}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, pkgPath := range pkgsPaths {
|
for i := range pkgsPaths {
|
||||||
|
pkgPath := pkgsPaths[i]
|
||||||
// Add schema present in openAPI file for current package
|
// Add schema present in openAPI file for current package
|
||||||
if e.needOpenAPI {
|
if e.needOpenAPI {
|
||||||
if err := openapi.AddSchemaFromFile(filepath.Join(pkgPath, openAPIFileName)); err != nil {
|
if err := openapi.AddSchemaFromFile(filepath.Join(pkgPath, openAPIFileName)); err != nil {
|
||||||
@@ -65,11 +67,19 @@ func (e executeCmdOnPkgs) execute() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !e.skipPkgPathPrint {
|
||||||
|
fmt.Fprintf(e.writer, "%s/\n", pkgPath)
|
||||||
|
}
|
||||||
|
|
||||||
err := e.cmdRunner.executeCmd(e.writer, pkgPath)
|
err := e.cmdRunner.executeCmd(e.writer, pkgPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if i != len(pkgsPaths)-1 {
|
||||||
|
fmt.Fprint(e.writer, "\n")
|
||||||
|
}
|
||||||
|
|
||||||
// Delete schema present in openAPI file for current package
|
// Delete schema present in openAPI file for current package
|
||||||
if e.needOpenAPI {
|
if e.needOpenAPI {
|
||||||
if err := openapi.DeleteSchemaInFile(filepath.Join(pkgPath, openAPIFileName)); err != nil {
|
if err := openapi.DeleteSchemaInFile(filepath.Join(pkgPath, openAPIFileName)); err != nil {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package commands
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
@@ -35,23 +34,27 @@ func TestExecuteCmdOnPkgs(t *testing.T) {
|
|||||||
recurse: true,
|
recurse: true,
|
||||||
needOpenAPI: false,
|
needOpenAPI: false,
|
||||||
pkgPath: "subpkg1/subdir1",
|
pkgPath: "subpkg1/subdir1",
|
||||||
expectedOut: `${baseDir}/subpkg1/subdir1`,
|
expectedOut: `${baseDir}/subpkg1/subdir1/
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "executeCmd_returns_error",
|
name: "executeCmd_returns_error",
|
||||||
recurse: true,
|
recurse: true,
|
||||||
needOpenAPI: false,
|
needOpenAPI: false,
|
||||||
pkgPath: "subpkg4",
|
pkgPath: "subpkg4",
|
||||||
errMsg: `this command returns an error if package has error.txt file`,
|
expectedOut: `${baseDir}/subpkg4/
|
||||||
|
`,
|
||||||
|
errMsg: `this command returns an error if package has error.txt file`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "executeCmd_prints_pkgpaths",
|
name: "executeCmd_prints_pkgpaths",
|
||||||
recurse: true,
|
recurse: true,
|
||||||
needOpenAPI: false,
|
needOpenAPI: false,
|
||||||
pkgPath: "subpkg2",
|
pkgPath: "subpkg2",
|
||||||
expectedOut: `
|
expectedOut: `${baseDir}/subpkg2/
|
||||||
${baseDir}/subpkg2
|
|
||||||
${baseDir}/subpkg2/subpkg3`,
|
${baseDir}/subpkg2/subpkg3/
|
||||||
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,11 +99,11 @@ ${baseDir}/subpkg2/subpkg3`,
|
|||||||
strings.Replace(actual.String(), "\\", "/", -1),
|
strings.Replace(actual.String(), "\\", "/", -1),
|
||||||
"//", "/", -1)
|
"//", "/", -1)
|
||||||
|
|
||||||
expected := strings.Replace(test.expectedOut, "${baseDir}", dir, -1)
|
expected := strings.Replace(test.expectedOut, "${baseDir}", dir+"/", -1)
|
||||||
expectedNormalized := strings.Replace(
|
expectedNormalized := strings.Replace(
|
||||||
strings.Replace(expected, "\\", "/", -1),
|
strings.Replace(expected, "\\", "/", -1),
|
||||||
"//", "/", -1)
|
"//", "/", -1)
|
||||||
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) {
|
if !assert.Equal(t, expectedNormalized, actualNormalized) {
|
||||||
t.FailNow()
|
t.FailNow()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -174,6 +177,5 @@ func (r *TestRunner) executeCmd(w io.Writer, pkgPath string) error {
|
|||||||
return errors.Errorf("this command returns an error if package has error.txt file")
|
return errors.Errorf("this command returns an error if package has error.txt file")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Fprintf(w, "%s\n", pkgPath)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func (c SetterCreator) Create() error {
|
|||||||
}.Execute()
|
}.Execute()
|
||||||
if a.Count == 0 {
|
if a.Count == 0 {
|
||||||
fmt.Printf("setter %q doesn't match any field in resource configs, "+
|
fmt.Printf("setter %q doesn't match any field in resource configs, "+
|
||||||
"but creating setter definition in package %q\n", c.Name, c.ResourcesPath)
|
"but creating setter definition\n", c.Name)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ func (c SubstitutionCreator) Create() error {
|
|||||||
|
|
||||||
if a.Count == 0 {
|
if a.Count == 0 {
|
||||||
fmt.Printf("substitution %s doesn't match any field value in resource configs, "+
|
fmt.Printf("substitution %s doesn't match any field value in resource configs, "+
|
||||||
"but creating substitution definition in package %q\n", c.Name, c.ResourcesPath)
|
"but creating substitution definition\n", c.Name)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user