Merge pull request #50139 from mfojtik/fix-clientgen

Automatic merge from submit-queue

codegen: skip generation of informers and listers on resources with missing verbs

This patch will prevent generation of listers and informers for resources that does not implement the required verbs (list, get, watch). Currently informers and listers are generated for those resources which cause a compilation failure.
pull/6/head
Kubernetes Submit Queue 2017-08-14 03:31:46 -07:00 committed by GitHub
commit ecd28d97c8
2 changed files with 12 additions and 5 deletions

View File

@ -172,7 +172,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
var typesToGenerate []*types.Type
for _, t := range p.Types {
tags := util.MustParseClientGenTags(t.SecondClosestCommentLines)
if !tags.GenerateClient || tags.NoVerbs {
if !tags.GenerateClient || tags.NoVerbs || !tags.HasVerb("list") || !tags.HasVerb("watch") {
continue
}
@ -304,7 +304,8 @@ func groupPackage(basePackage string, groupVersions clientgentypes.GroupVersions
return generators
},
FilterFunc: func(c *generator.Context, t *types.Type) bool {
return util.MustParseClientGenTags(t.SecondClosestCommentLines).GenerateClient
tags := util.MustParseClientGenTags(t.SecondClosestCommentLines)
return tags.GenerateClient && tags.HasVerb("list") && tags.HasVerb("watch")
},
}
}
@ -344,7 +345,8 @@ func versionPackage(basePackage string, gv clientgentypes.GroupVersion, boilerpl
return generators
},
FilterFunc: func(c *generator.Context, t *types.Type) bool {
return util.MustParseClientGenTags(t.SecondClosestCommentLines).GenerateClient
tags := util.MustParseClientGenTags(t.SecondClosestCommentLines)
return tags.GenerateClient && tags.HasVerb("list") && tags.HasVerb("watch")
},
}
}

View File

@ -117,11 +117,15 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
var typesToGenerate []*types.Type
for _, t := range p.Types {
if !util.MustParseClientGenTags(t.SecondClosestCommentLines).GenerateClient {
tags := util.MustParseClientGenTags(t.SecondClosestCommentLines)
if !tags.GenerateClient || !tags.HasVerb("list") || !tags.HasVerb("get") {
continue
}
typesToGenerate = append(typesToGenerate, t)
}
if len(typesToGenerate) == 0 {
continue
}
orderer := namer.Orderer{Namer: namer.NewPrivateNamer(0)}
typesToGenerate = orderer.OrderTypes(typesToGenerate)
@ -155,7 +159,8 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
return generators
},
FilterFunc: func(c *generator.Context, t *types.Type) bool {
return util.MustParseClientGenTags(t.SecondClosestCommentLines).GenerateClient
tags := util.MustParseClientGenTags(t.SecondClosestCommentLines)
return tags.GenerateClient && tags.HasVerb("list") && tags.HasVerb("get")
},
})
}