Skip to content

Commit 2085128

Browse files
run code-gen
1 parent 3da8c78 commit 2085128

File tree

5 files changed

+34
-9
lines changed

5 files changed

+34
-9
lines changed

bin/code-generator

8.71 MB
Binary file not shown.

examples/pkg/clusterclient/clientset.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/pkg/clusterclient/typed/example/v1/examplev1.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/generators/clientgen/gen.go

+19-1
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ func (g *Generator) generateSubInterfaces(ctx *genall.GenerationContext) error {
429429

430430
namespaceScoped := info.Markers.Get(nonNamespacedMarker.Name) == nil
431431
noVerbs := info.Markers.Get(noVerbsMarker.Name) != nil
432-
hasStatus := info.Markers.Get(noStatusMarker.Name) == nil
432+
hasStatus := hasStatusSubresource(info)
433433
readOnly := info.Markers.Get(readOnlyMarker.Name) != nil
434434
sVerbs := info.Markers.Get(skipVerbsMarker.Name)
435435
if sVerbs != nil {
@@ -621,3 +621,21 @@ func writeMethods(out io.Writer, byType map[string][]byte) error {
621621
}
622622
return nil
623623
}
624+
625+
// hasStatusSubresource verifies if updateStatus verb is to be scaffolded.
626+
// if `noStatus` marker is present is returns false. Else it checks if
627+
// the type has Status field.
628+
func hasStatusSubresource(info *markers.TypeInfo) bool {
629+
if info.Markers.Get(noStatusMarker.Name) != nil {
630+
return false
631+
}
632+
633+
hasStatusField := false
634+
for _, f := range info.Fields {
635+
if f.Name == "Status" {
636+
hasStatusField = true
637+
break
638+
}
639+
}
640+
return hasStatusField
641+
}

pkg/internal/parser.go

+13-6
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ func (a *api) WriteContent() error {
326326
if *extension.Verb == "apply" {
327327
_, gvString := codegenutil.ParsePathGroupVersion(pkg)
328328
*a.importList = append(*a.importList, util.ImportFormat(fmt.Sprintf("%sapplyconfig", strings.ToLower(name)), fmt.Sprintf("%s/%s", a.ApplyConfigurationPackage, gvString)))
329-
a.InputType = fmt.Sprintf("%sapplyconfig.%sApplyConfiguration", strings.ToLower(name), name)
329+
a.InputType = fmt.Sprintf("*%sapplyconfig.%sApplyConfiguration", strings.ToLower(name), name)
330330
}
331331
} else {
332332
a.InputType = fmt.Sprintf("*%sapi%s.%s", a.PkgName, a.Version, name)
@@ -346,23 +346,23 @@ func (a *api) WriteContent() error {
346346

347347
if *extension.Verb == "create" {
348348
a.Method = *extension.Method
349-
adjTemplate := adjustTemplate(createTemplate)
349+
adjTemplate := adjustTemplate(createTemplate, "create")
350350
if err := templateExecute(adjTemplate, *a); err != nil {
351351
return err
352352
}
353353
}
354354

355355
if *extension.Verb == "update" {
356356
a.Method = *extension.Method
357-
adjTemplate := adjustTemplate(updateTemplate)
357+
adjTemplate := adjustTemplate(updateTemplate, "update")
358358
if err := templateExecute(adjTemplate, *a); err != nil {
359359
return err
360360
}
361361
}
362362

363363
if *extension.Verb == "apply" {
364364
a.Method = *extension.Method
365-
adjTemplate := adjustTemplate(applyTemplate)
365+
adjTemplate := adjustTemplate(applyTemplate, "apply")
366366
if err := templateExecute(adjTemplate, *a); err != nil {
367367
return err
368368
}
@@ -414,7 +414,14 @@ func (p *packages) appendGenericImports(importList []string) []string {
414414
util.ImportFormat(fmt.Sprintf("%s%s", p.Name, p.Version), fmt.Sprintf("%s/typed/%s/%s", p.ClientPath, p.Name, p.Version)))
415415
}
416416

417-
func adjustTemplate(template string) string {
417+
func adjustTemplate(template, verb string) string {
418418
index := strings.Index(template, "ctx context.Context,") + len("ctx context.Context,")
419-
return string(template[:index]) + " name string," + string(template[index:])
419+
newTemplate := string(template[:index]) + " name string," + string(template[index:])
420+
return adjReturnValueInTemplate(newTemplate, verb)
421+
}
422+
423+
func adjReturnValueInTemplate(template, verb string) string {
424+
s := fmt.Sprintf("w.delegate.{{value .Method \"%s\"}}(ctx,", upperFirst(verb))
425+
index := strings.Index(template, s) + len(s)
426+
return string(template[:index]) + " name, " + string(template[index:])
420427
}

0 commit comments

Comments
 (0)