Merge pull request #2940 from phanimarupaka/FixSettersSubPkgsFriction

Fix setters subpkgs friction
This commit is contained in:
Kubernetes Prow Robot
2020-09-03 08:59:41 -07:00
committed by GitHub
9 changed files with 43 additions and 19 deletions

View File

@@ -214,7 +214,6 @@ func (r *CreateSetterRunner) set(c *cobra.Command, args []string) error {
if err := openapi.AddSchemaFromFile(r.CreateSetter.OpenAPIPath); err != nil { if err := openapi.AddSchemaFromFile(r.CreateSetter.OpenAPIPath); err != nil {
return err return err
} }
err := r.CreateSetter.Create() err := r.CreateSetter.Create()
if err != nil { if err != nil {
// return err if there is only package // return err if there is only package
@@ -222,10 +221,10 @@ func (r *CreateSetterRunner) set(c *cobra.Command, args []string) error {
return err return err
} else { } else {
// print error message and continue if there are multiple packages to set // print error message and continue if there are multiple packages to set
fmt.Fprintf(c.OutOrStdout(), "%s in package %q\n", err.Error(), r.CreateSetter.ResourcesPath) fmt.Fprintf(c.OutOrStdout(), "%s in package %q\n\n", err.Error(), r.CreateSetter.ResourcesPath)
} }
} else { } else {
fmt.Fprintf(c.OutOrStdout(), "created setter %q in package %q\n", r.CreateSetter.Name, r.CreateSetter.ResourcesPath) fmt.Fprintf(c.OutOrStdout(), "created setter %q in package %q\n\n", r.CreateSetter.Name, r.CreateSetter.ResourcesPath)
} }
// Delete schema present in openAPI file for current package // Delete schema present in openAPI file for current package

View File

@@ -855,6 +855,7 @@ func TestCreateSetterSubPackages(t *testing.T) {
args: []string{"namespace", "myspace", "-R"}, args: []string{"namespace", "myspace", "-R"},
expected: ` expected: `
created setter "namespace" in package "${baseDir}/mysql" created setter "namespace" in package "${baseDir}/mysql"
created setter "namespace" in package "${baseDir}/mysql/storage" created setter "namespace" in package "${baseDir}/mysql/storage"
`, `,
}, },
@@ -878,7 +879,9 @@ created setter "namespace" in package "${baseDir}/mysql/storage"
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: `setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it in package "${baseDir}/mysql"
created setter "namespace" in package "${baseDir}/mysql/nosetters" created setter "namespace" in package "${baseDir}/mysql/nosetters"
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"`, 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"`,
}, },
} }

View File

@@ -89,10 +89,10 @@ func (r *CreateSubstitutionRunner) runE(c *cobra.Command, args []string) error {
return err return err
} else { } else {
// print error message and continue if there are multiple packages to set // print error message and continue if there are multiple packages to set
fmt.Fprintf(c.OutOrStdout(), "%s in package %q\n", err.Error(), r.CreateSubstitution.ResourcesPath) fmt.Fprintf(c.OutOrStdout(), "%s in package %q\n\n", err.Error(), r.CreateSubstitution.ResourcesPath)
} }
} else { } else {
fmt.Fprintf(c.OutOrStdout(), "created substitution %q in package %q\n", r.CreateSubstitution.Name, r.CreateSubstitution.ResourcesPath) fmt.Fprintf(c.OutOrStdout(), "created substitution %q in package %q\n\n", r.CreateSubstitution.Name, r.CreateSubstitution.ResourcesPath)
} }
// Delete schema present in openAPI file for current package // Delete schema present in openAPI file for current package

View File

@@ -441,6 +441,7 @@ func TestCreateSubstSubPackages(t *testing.T) {
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: `
created substitution "image-tag" in package "${baseDir}/mysql" created substitution "image-tag" in package "${baseDir}/mysql"
created substitution "image-tag" in package "${baseDir}/mysql/storage" created substitution "image-tag" in package "${baseDir}/mysql/storage"
`, `,
}, },
@@ -464,7 +465,9 @@ created substitution "image-tag" in package "${baseDir}/mysql/storage"
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: `substitution with name "image-tag" already exists in package "${baseDir}/mysql"
created substitution "image-tag" in package "${baseDir}/mysql/nosetters" created substitution "image-tag" in package "${baseDir}/mysql/nosetters"
created substitution "image-tag" in package "${baseDir}/mysql/storage"`, created substitution "image-tag" in package "${baseDir}/mysql/storage"`,
}, },
} }

View File

@@ -37,6 +37,8 @@ func NewListSettersRunner(parent string) *ListSettersRunner {
"output as github markdown") "output as github markdown")
c.Flags().BoolVar(&r.IncludeSubst, "include-subst", false, c.Flags().BoolVar(&r.IncludeSubst, "include-subst", false,
"include substitutions in the output") "include substitutions in the output")
c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", true,
"list setters recursively in all the nested subpackages")
fixDocs(parent, c) fixDocs(parent, c)
r.Command = c r.Command = c
return r return r
@@ -52,6 +54,7 @@ type ListSettersRunner struct {
List setters2.List List setters2.List
Markdown bool Markdown bool
IncludeSubst bool IncludeSubst bool
RecurseSubPackages bool
} }
func (r *ListSettersRunner) preRunE(c *cobra.Command, args []string) error { func (r *ListSettersRunner) preRunE(c *cobra.Command, args []string) error {
@@ -71,7 +74,7 @@ func (r *ListSettersRunner) runE(c *cobra.Command, args []string) error {
return err return err
} }
resourcePaths, err := pathutil.DirsWithFile(args[0], openAPIFileName, true) resourcePaths, err := pathutil.DirsWithFile(args[0], openAPIFileName, r.RecurseSubPackages)
if err != nil { if err != nil {
return err return err
} }
@@ -86,7 +89,7 @@ func (r *ListSettersRunner) runE(c *cobra.Command, args []string) error {
OpenAPIFileName: openAPIFileName, OpenAPIFileName: openAPIFileName,
} }
openAPIPath := filepath.Join(resourcePath, openAPIFileName) openAPIPath := filepath.Join(resourcePath, openAPIFileName)
fmt.Fprintf(c.OutOrStdout(), "%s\n", resourcePath) fmt.Fprintf(c.OutOrStdout(), "\n%s/\n", resourcePath)
if err := r.ListSetters(c, openAPIPath, resourcePath); err != nil { if err := r.ListSetters(c, openAPIPath, resourcePath); err != nil {
return err return err
} }

View File

@@ -474,7 +474,8 @@ func TestListSettersSubPackages(t *testing.T) {
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
args: []string{"--include-subst"}, args: []string{"--include-subst"},
expected: ` expected: `
test/testdata/dataset-with-setters/mysql
test/testdata/dataset-with-setters/mysql/
NAME VALUE SET BY DESCRIPTION COUNT REQUIRED NAME VALUE SET BY DESCRIPTION COUNT REQUIRED
image mysql 1 No image mysql 1 No
namespace myspace 1 No namespace myspace 1 No
@@ -482,11 +483,26 @@ test/testdata/dataset-with-setters/mysql
--------------- ----------------- -------------- --------------- ----------------- --------------
SUBSTITUTION PATTERN REFERENCES SUBSTITUTION PATTERN REFERENCES
image-tag ${image}:${tag} [image,tag] image-tag ${image}:${tag} [image,tag]
test/testdata/dataset-with-setters/mysql/nosetters
test/testdata/dataset-with-setters/mysql/nosetters/
NAME VALUE SET BY DESCRIPTION COUNT REQUIRED NAME VALUE SET BY DESCRIPTION COUNT REQUIRED
test/testdata/dataset-with-setters/mysql/storage
test/testdata/dataset-with-setters/mysql/storage/
NAME VALUE SET BY DESCRIPTION COUNT REQUIRED NAME VALUE SET BY DESCRIPTION COUNT REQUIRED
namespace myspace 1 No namespace myspace 1 No
`,
},
{
name: "list-replicas",
dataset: "dataset-with-setters/mysql",
args: []string{"--recurse-subpackages=false"},
expected: `
test/testdata/dataset-with-setters/mysql/
NAME VALUE SET BY DESCRIPTION COUNT REQUIRED
image mysql 1 No
namespace myspace 1 No
tag 1.7.9 1 No
`, `,
}, },
} }

View File

@@ -34,7 +34,7 @@ openAPI:
`, `,
}, },
expectedStdOut: ` expectedStdOut: `
. ./
NAME VALUE SET BY DESCRIPTION COUNT REQUIRED NAME VALUE SET BY DESCRIPTION COUNT REQUIRED
replicas 3 1 No replicas 3 1 No
`, `,

View File

@@ -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\n", c.Name) "but creating setter definition in package %q\n", c.Name, c.ResourcesPath)
} }
if err != nil { if err != nil {
return err return err

View File

@@ -138,7 +138,7 @@ func (c SubstitutionCreator) Create() error {
} }
// Update the resources with the substitution reference // Update the resources with the substitution reference
inout := &kio.LocalPackageReadWriter{PackagePath: c.ResourcesPath} inout := &kio.LocalPackageReadWriter{PackagePath: c.ResourcesPath, PackageFileName: c.OpenAPIFileName}
err = kio.Pipeline{ err = kio.Pipeline{
Inputs: []kio.Reader{inout}, Inputs: []kio.Reader{inout},
Filters: []kio.Filter{kio.FilterAll(a)}, Filters: []kio.Filter{kio.FilterAll(a)},
@@ -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\n", c.Name) "but creating substitution definition in package %q\n", c.Name, c.ResourcesPath)
} }
return err return err
} }