mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-15 06:43:54 +00:00
Remove hard coded references in generated code
This commit is contained in:
parent
1606be6974
commit
6adc411758
@ -74,6 +74,8 @@ func (g *internalGenerator) GenerateType(c *generator.Context, _ *types.Type, w
|
|||||||
"schemaYAML": string(schemaYAML),
|
"schemaYAML": string(schemaYAML),
|
||||||
"smdParser": smdParser,
|
"smdParser": smdParser,
|
||||||
"smdNewParser": smdNewParser,
|
"smdNewParser": smdNewParser,
|
||||||
|
"fmtSprintf": fmtSprintf,
|
||||||
|
"syncOnce": syncOnce,
|
||||||
"yamlObject": yamlObject,
|
"yamlObject": yamlObject,
|
||||||
"yamlUnmarshal": yamlUnmarshal,
|
"yamlUnmarshal": yamlUnmarshal,
|
||||||
})
|
})
|
||||||
@ -87,13 +89,13 @@ func Parser() *{{.smdParser|raw}} {
|
|||||||
var err error
|
var err error
|
||||||
parser, err = {{.smdNewParser|raw}}(schemaYAML)
|
parser, err = {{.smdNewParser|raw}}(schemaYAML)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("Failed to parse schema: %v", err))
|
panic({{.fmtSprintf|raw}}("Failed to parse schema: %v", err))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return parser
|
return parser
|
||||||
}
|
}
|
||||||
|
|
||||||
var parserOnce sync.Once
|
var parserOnce {{.syncOnce|raw}}
|
||||||
var parser *{{.smdParser|raw}}
|
var parser *{{.smdParser|raw}}
|
||||||
var schemaYAML = {{.yamlObject|raw}}(` + "`{{.schemaYAML}}`" + `)
|
var schemaYAML = {{.yamlObject|raw}}(` + "`{{.schemaYAML}}`" + `)
|
||||||
`
|
`
|
||||||
|
@ -19,6 +19,8 @@ package generators
|
|||||||
import "k8s.io/gengo/v2/types"
|
import "k8s.io/gengo/v2/types"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
fmtSprintf = types.Ref("fmt", "Sprintf")
|
||||||
|
syncOnce = types.Ref("sync", "Once")
|
||||||
applyConfiguration = types.Ref("k8s.io/apimachinery/pkg/runtime", "ApplyConfiguration")
|
applyConfiguration = types.Ref("k8s.io/apimachinery/pkg/runtime", "ApplyConfiguration")
|
||||||
groupVersionKind = types.Ref("k8s.io/apimachinery/pkg/runtime/schema", "GroupVersionKind")
|
groupVersionKind = types.Ref("k8s.io/apimachinery/pkg/runtime/schema", "GroupVersionKind")
|
||||||
typeMeta = types.Ref("k8s.io/apimachinery/pkg/apis/meta/v1", "TypeMeta")
|
typeMeta = types.Ref("k8s.io/apimachinery/pkg/apis/meta/v1", "TypeMeta")
|
||||||
|
@ -123,6 +123,8 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
"ApplyPatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "ApplyPatchType"}),
|
"ApplyPatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "ApplyPatchType"}),
|
||||||
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}),
|
"watchInterface": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"}),
|
||||||
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
|
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
|
||||||
|
"fmtErrorf": c.Universe.Type(types.Name{Package: "fmt", Name: "Errorf"}),
|
||||||
|
"contextContext": c.Universe.Type(types.Name{Package: "context", Name: "Context"}),
|
||||||
|
|
||||||
"NewRootListActionWithOptions": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootListActionWithOptions"}),
|
"NewRootListActionWithOptions": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootListActionWithOptions"}),
|
||||||
"NewListActionWithOptions": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewListActionWithOptions"}),
|
"NewListActionWithOptions": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewListActionWithOptions"}),
|
||||||
@ -332,7 +334,7 @@ var $.type|allLowercasePlural$Kind = $.SchemeGroupVersion|raw$.WithKind("$.type|
|
|||||||
|
|
||||||
var listTemplate = `
|
var listTemplate = `
|
||||||
// List takes label and field selectors, and returns the list of $.type|publicPlural$ that match those selectors.
|
// List takes label and field selectors, and returns the list of $.type|publicPlural$ that match those selectors.
|
||||||
func (c *Fake$.type|publicPlural$) List(ctx context.Context, opts $.ListOptions|raw$) (result *$.type|raw$List, err error) {
|
func (c *Fake$.type|publicPlural$) List(ctx $.contextContext|raw$, opts $.ListOptions|raw$) (result *$.type|raw$List, err error) {
|
||||||
emptyResult := &$.type|raw$List{}
|
emptyResult := &$.type|raw$List{}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewListActionWithOptions|raw$($.type|allLowercasePlural$Resource, $.type|allLowercasePlural$Kind, c.ns, opts), emptyResult)
|
$if .namespaced$Invokes($.NewListActionWithOptions|raw$($.type|allLowercasePlural$Resource, $.type|allLowercasePlural$Kind, c.ns, opts), emptyResult)
|
||||||
@ -346,7 +348,7 @@ func (c *Fake$.type|publicPlural$) List(ctx context.Context, opts $.ListOptions|
|
|||||||
|
|
||||||
var listUsingOptionsTemplate = `
|
var listUsingOptionsTemplate = `
|
||||||
// List takes label and field selectors, and returns the list of $.type|publicPlural$ that match those selectors.
|
// List takes label and field selectors, and returns the list of $.type|publicPlural$ that match those selectors.
|
||||||
func (c *Fake$.type|publicPlural$) List(ctx context.Context, opts $.ListOptions|raw$) (result *$.type|raw$List, err error) {
|
func (c *Fake$.type|publicPlural$) List(ctx $.contextContext|raw$, opts $.ListOptions|raw$) (result *$.type|raw$List, err error) {
|
||||||
emptyResult := &$.type|raw$List{}
|
emptyResult := &$.type|raw$List{}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewListActionWithOptions|raw$($.type|allLowercasePlural$Resource, $.type|allLowercasePlural$Kind, c.ns, opts), emptyResult)
|
$if .namespaced$Invokes($.NewListActionWithOptions|raw$($.type|allLowercasePlural$Resource, $.type|allLowercasePlural$Kind, c.ns, opts), emptyResult)
|
||||||
@ -371,7 +373,7 @@ func (c *Fake$.type|publicPlural$) List(ctx context.Context, opts $.ListOptions|
|
|||||||
|
|
||||||
var getTemplate = `
|
var getTemplate = `
|
||||||
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|private$ object, and an error if there is any.
|
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|private$ object, and an error if there is any.
|
||||||
func (c *Fake$.type|publicPlural$) Get(ctx context.Context, name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Get(ctx $.contextContext|raw$, name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewGetActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, name, options), emptyResult)
|
$if .namespaced$Invokes($.NewGetActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, name, options), emptyResult)
|
||||||
@ -385,7 +387,7 @@ func (c *Fake$.type|publicPlural$) Get(ctx context.Context, name string, options
|
|||||||
|
|
||||||
var getSubresourceTemplate = `
|
var getSubresourceTemplate = `
|
||||||
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|private$ object, and an error if there is any.
|
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|private$ object, and an error if there is any.
|
||||||
func (c *Fake$.type|publicPlural$) Get(ctx context.Context, $.type|private$Name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Get(ctx $.contextContext|raw$, $.type|private$Name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewGetSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, "$.subresourcePath$", $.type|private$Name, options), emptyResult)
|
$if .namespaced$Invokes($.NewGetSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, "$.subresourcePath$", $.type|private$Name, options), emptyResult)
|
||||||
@ -399,7 +401,7 @@ func (c *Fake$.type|publicPlural$) Get(ctx context.Context, $.type|private$Name
|
|||||||
|
|
||||||
var deleteTemplate = `
|
var deleteTemplate = `
|
||||||
// Delete takes name of the $.type|private$ and deletes it. Returns an error if one occurs.
|
// Delete takes name of the $.type|private$ and deletes it. Returns an error if one occurs.
|
||||||
func (c *Fake$.type|publicPlural$) Delete(ctx context.Context, name string, opts $.DeleteOptions|raw$) error {
|
func (c *Fake$.type|publicPlural$) Delete(ctx $.contextContext|raw$, name string, opts $.DeleteOptions|raw$) error {
|
||||||
_, err := c.Fake.
|
_, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewDeleteActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, name, opts), &$.type|raw${})
|
$if .namespaced$Invokes($.NewDeleteActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, name, opts), &$.type|raw${})
|
||||||
$else$Invokes($.NewRootDeleteActionWithOptions|raw$($.type|allLowercasePlural$Resource, name, opts), &$.type|raw${})$end$
|
$else$Invokes($.NewRootDeleteActionWithOptions|raw$($.type|allLowercasePlural$Resource, name, opts), &$.type|raw${})$end$
|
||||||
@ -409,7 +411,7 @@ func (c *Fake$.type|publicPlural$) Delete(ctx context.Context, name string, opts
|
|||||||
|
|
||||||
var deleteCollectionTemplate = `
|
var deleteCollectionTemplate = `
|
||||||
// DeleteCollection deletes a collection of objects.
|
// DeleteCollection deletes a collection of objects.
|
||||||
func (c *Fake$.type|publicPlural$) DeleteCollection(ctx context.Context, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error {
|
func (c *Fake$.type|publicPlural$) DeleteCollection(ctx $.contextContext|raw$, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error {
|
||||||
$if .namespaced$action := $.NewDeleteCollectionActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, opts, listOpts)
|
$if .namespaced$action := $.NewDeleteCollectionActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, opts, listOpts)
|
||||||
$else$action := $.NewRootDeleteCollectionActionWithOptions|raw$($.type|allLowercasePlural$Resource, opts, listOpts)
|
$else$action := $.NewRootDeleteCollectionActionWithOptions|raw$($.type|allLowercasePlural$Resource, opts, listOpts)
|
||||||
$end$
|
$end$
|
||||||
@ -419,7 +421,7 @@ func (c *Fake$.type|publicPlural$) DeleteCollection(ctx context.Context, opts $.
|
|||||||
`
|
`
|
||||||
var createTemplate = `
|
var createTemplate = `
|
||||||
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *Fake$.type|publicPlural$) Create(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Create(ctx $.contextContext|raw$, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewCreateActionWithOptions|raw$($.inputType|allLowercasePlural$Resource, c.ns, $.inputType|private$, opts), emptyResult)
|
$if .namespaced$Invokes($.NewCreateActionWithOptions|raw$($.inputType|allLowercasePlural$Resource, c.ns, $.inputType|private$, opts), emptyResult)
|
||||||
@ -433,7 +435,7 @@ func (c *Fake$.type|publicPlural$) Create(ctx context.Context, $.inputType|priva
|
|||||||
|
|
||||||
var createSubresourceTemplate = `
|
var createSubresourceTemplate = `
|
||||||
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *Fake$.type|publicPlural$) Create(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Create(ctx $.contextContext|raw$, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewCreateSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, $.type|private$Name, "$.subresourcePath$", c.ns, $.inputType|private$, opts), emptyResult)
|
$if .namespaced$Invokes($.NewCreateSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, $.type|private$Name, "$.subresourcePath$", c.ns, $.inputType|private$, opts), emptyResult)
|
||||||
@ -447,7 +449,7 @@ func (c *Fake$.type|publicPlural$) Create(ctx context.Context, $.type|private$Na
|
|||||||
|
|
||||||
var updateTemplate = `
|
var updateTemplate = `
|
||||||
// Update takes the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Update takes the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *Fake$.type|publicPlural$) Update(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Update(ctx $.contextContext|raw$, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewUpdateActionWithOptions|raw$($.inputType|allLowercasePlural$Resource, c.ns, $.inputType|private$, opts), emptyResult)
|
$if .namespaced$Invokes($.NewUpdateActionWithOptions|raw$($.inputType|allLowercasePlural$Resource, c.ns, $.inputType|private$, opts), emptyResult)
|
||||||
@ -461,7 +463,7 @@ func (c *Fake$.type|publicPlural$) Update(ctx context.Context, $.inputType|priva
|
|||||||
|
|
||||||
var updateSubresourceTemplate = `
|
var updateSubresourceTemplate = `
|
||||||
// Update takes the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Update takes the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *Fake$.type|publicPlural$) Update(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Update(ctx $.contextContext|raw$, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewUpdateSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, "$.subresourcePath$", c.ns, $.inputType|private$, opts), &$.inputType|raw${})
|
$if .namespaced$Invokes($.NewUpdateSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, "$.subresourcePath$", c.ns, $.inputType|private$, opts), &$.inputType|raw${})
|
||||||
@ -476,7 +478,7 @@ func (c *Fake$.type|publicPlural$) Update(ctx context.Context, $.type|private$Na
|
|||||||
var updateStatusTemplate = `
|
var updateStatusTemplate = `
|
||||||
// UpdateStatus was generated because the type contains a Status member.
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
func (c *Fake$.type|publicPlural$) UpdateStatus(ctx context.Context, $.type|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (result *$.type|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) UpdateStatus(ctx $.contextContext|raw$, $.type|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (result *$.type|raw$, err error) {
|
||||||
emptyResult := &$.type|raw${}
|
emptyResult := &$.type|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewUpdateSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, "status", c.ns, $.type|private$, opts), emptyResult)
|
$if .namespaced$Invokes($.NewUpdateSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, "status", c.ns, $.type|private$, opts), emptyResult)
|
||||||
@ -490,7 +492,7 @@ func (c *Fake$.type|publicPlural$) UpdateStatus(ctx context.Context, $.type|priv
|
|||||||
|
|
||||||
var watchTemplate = `
|
var watchTemplate = `
|
||||||
// Watch returns a $.watchInterface|raw$ that watches the requested $.type|privatePlural$.
|
// Watch returns a $.watchInterface|raw$ that watches the requested $.type|privatePlural$.
|
||||||
func (c *Fake$.type|publicPlural$) Watch(ctx context.Context, opts $.ListOptions|raw$) ($.watchInterface|raw$, error) {
|
func (c *Fake$.type|publicPlural$) Watch(ctx $.contextContext|raw$, opts $.ListOptions|raw$) ($.watchInterface|raw$, error) {
|
||||||
return c.Fake.
|
return c.Fake.
|
||||||
$if .namespaced$InvokesWatch($.NewWatchActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, opts))
|
$if .namespaced$InvokesWatch($.NewWatchActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, opts))
|
||||||
$else$InvokesWatch($.NewRootWatchActionWithOptions|raw$($.type|allLowercasePlural$Resource, opts))$end$
|
$else$InvokesWatch($.NewRootWatchActionWithOptions|raw$($.type|allLowercasePlural$Resource, opts))$end$
|
||||||
@ -499,7 +501,7 @@ func (c *Fake$.type|publicPlural$) Watch(ctx context.Context, opts $.ListOptions
|
|||||||
|
|
||||||
var patchTemplate = `
|
var patchTemplate = `
|
||||||
// Patch applies the patch and returns the patched $.resultType|private$.
|
// Patch applies the patch and returns the patched $.resultType|private$.
|
||||||
func (c *Fake$.type|publicPlural$) Patch(ctx context.Context, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Patch(ctx $.contextContext|raw$, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error) {
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewPatchSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, name, pt, data, opts, subresources... ), emptyResult)
|
$if .namespaced$Invokes($.NewPatchSubresourceActionWithOptions|raw$($.type|allLowercasePlural$Resource, c.ns, name, pt, data, opts, subresources... ), emptyResult)
|
||||||
@ -513,9 +515,9 @@ func (c *Fake$.type|publicPlural$) Patch(ctx context.Context, name string, pt $.
|
|||||||
|
|
||||||
var applyTemplate = `
|
var applyTemplate = `
|
||||||
// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$.
|
// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$.
|
||||||
func (c *Fake$.type|publicPlural$) Apply(ctx context.Context, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Apply(ctx $.contextContext|raw$, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
if $.inputType|private$ == nil {
|
if $.inputType|private$ == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$ provided to Apply must not be nil")
|
||||||
}
|
}
|
||||||
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -523,7 +525,7 @@ func (c *Fake$.type|publicPlural$) Apply(ctx context.Context, $.inputType|privat
|
|||||||
}
|
}
|
||||||
name := $.inputType|private$.Name
|
name := $.inputType|private$.Name
|
||||||
if name == nil {
|
if name == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$.Name must be provided to Apply")
|
||||||
}
|
}
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
@ -539,9 +541,9 @@ func (c *Fake$.type|publicPlural$) Apply(ctx context.Context, $.inputType|privat
|
|||||||
var applyStatusTemplate = `
|
var applyStatusTemplate = `
|
||||||
// ApplyStatus was generated because the type contains a Status member.
|
// ApplyStatus was generated because the type contains a Status member.
|
||||||
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
||||||
func (c *Fake$.type|publicPlural$) ApplyStatus(ctx context.Context, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) ApplyStatus(ctx $.contextContext|raw$, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
if $.inputType|private$ == nil {
|
if $.inputType|private$ == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$ provided to Apply must not be nil")
|
||||||
}
|
}
|
||||||
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -549,7 +551,7 @@ func (c *Fake$.type|publicPlural$) ApplyStatus(ctx context.Context, $.inputType|
|
|||||||
}
|
}
|
||||||
name := $.inputType|private$.Name
|
name := $.inputType|private$.Name
|
||||||
if name == nil {
|
if name == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$.Name must be provided to Apply")
|
||||||
}
|
}
|
||||||
emptyResult := &$.resultType|raw${}
|
emptyResult := &$.resultType|raw${}
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
@ -565,9 +567,9 @@ func (c *Fake$.type|publicPlural$) ApplyStatus(ctx context.Context, $.inputType|
|
|||||||
var applySubresourceTemplate = `
|
var applySubresourceTemplate = `
|
||||||
// Apply takes top resource name and the apply declarative configuration for $.subresourcePath$,
|
// Apply takes top resource name and the apply declarative configuration for $.subresourcePath$,
|
||||||
// applies it and returns the applied $.resultType|private$, and an error, if there is any.
|
// applies it and returns the applied $.resultType|private$, and an error, if there is any.
|
||||||
func (c *Fake$.type|publicPlural$) Apply(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Apply(ctx $.contextContext|raw$, $.type|private$Name string, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
if $.inputType|private$ == nil {
|
if $.inputType|private$ == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$ provided to Apply must not be nil")
|
||||||
}
|
}
|
||||||
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -73,12 +73,14 @@ func (g *genClientset) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||||||
allGroups := clientgentypes.ToGroupVersionInfo(g.groups, g.groupGoNames)
|
allGroups := clientgentypes.ToGroupVersionInfo(g.groups, g.groupGoNames)
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"allGroups": allGroups,
|
"allGroups": allGroups,
|
||||||
|
"fmtErrorf": c.Universe.Type(types.Name{Package: "fmt", Name: "Errorf"}),
|
||||||
"Config": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}),
|
"Config": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}),
|
||||||
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "DefaultKubernetesUserAgent"}),
|
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "DefaultKubernetesUserAgent"}),
|
||||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
||||||
"RESTHTTPClientFor": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "HTTPClientFor"}),
|
"RESTHTTPClientFor": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "HTTPClientFor"}),
|
||||||
"DiscoveryInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/discovery", Name: "DiscoveryInterface"}),
|
"DiscoveryInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/discovery", Name: "DiscoveryInterface"}),
|
||||||
"DiscoveryClient": c.Universe.Type(types.Name{Package: "k8s.io/client-go/discovery", Name: "DiscoveryClient"}),
|
"DiscoveryClient": c.Universe.Type(types.Name{Package: "k8s.io/client-go/discovery", Name: "DiscoveryClient"}),
|
||||||
|
"httpClient": c.Universe.Type(types.Name{Package: "net/http", Name: "Client"}),
|
||||||
"NewDiscoveryClientForConfigAndClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClientForConfigAndClient"}),
|
"NewDiscoveryClientForConfigAndClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClientForConfigAndClient"}),
|
||||||
"NewDiscoveryClientForConfigOrDie": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClientForConfigOrDie"}),
|
"NewDiscoveryClientForConfigOrDie": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClientForConfigOrDie"}),
|
||||||
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClient"}),
|
"NewDiscoveryClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/discovery", Name: "NewDiscoveryClient"}),
|
||||||
@ -160,11 +162,11 @@ var newClientsetForConfigAndClientTemplate = `
|
|||||||
// Note the http client provided takes precedence over the configured transport values.
|
// Note the http client provided takes precedence over the configured transport values.
|
||||||
// If config's RateLimiter is not set and QPS and Burst are acceptable,
|
// If config's RateLimiter is not set and QPS and Burst are acceptable,
|
||||||
// NewForConfigAndClient will generate a rate-limiter in configShallowCopy.
|
// NewForConfigAndClient will generate a rate-limiter in configShallowCopy.
|
||||||
func NewForConfigAndClient(c *$.Config|raw$, httpClient *http.Client) (*Clientset, error) {
|
func NewForConfigAndClient(c *$.Config|raw$, httpClient *$.httpClient|raw$) (*Clientset, error) {
|
||||||
configShallowCopy := *c
|
configShallowCopy := *c
|
||||||
if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
|
if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {
|
||||||
if configShallowCopy.Burst <= 0 {
|
if configShallowCopy.Burst <= 0 {
|
||||||
return nil, fmt.Errorf("burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0")
|
return nil, $.fmtErrorf|raw$("burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0")
|
||||||
}
|
}
|
||||||
configShallowCopy.RateLimiter = $.flowcontrolNewTokenBucketRateLimiter|raw$(configShallowCopy.QPS, configShallowCopy.Burst)
|
configShallowCopy.RateLimiter = $.flowcontrolNewTokenBucketRateLimiter|raw$(configShallowCopy.QPS, configShallowCopy.Burst)
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,6 @@ func (g *genGroup) Namers(c *generator.Context) namer.NameSystems {
|
|||||||
|
|
||||||
func (g *genGroup) Imports(c *generator.Context) (imports []string) {
|
func (g *genGroup) Imports(c *generator.Context) (imports []string) {
|
||||||
imports = append(imports, g.imports.ImportLines()...)
|
imports = append(imports, g.imports.ImportLines()...)
|
||||||
imports = append(imports, path.Join(g.clientsetPackage, "scheme"))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,23 +81,27 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
|||||||
if groupName == "" {
|
if groupName == "" {
|
||||||
apiPath = `"/api"`
|
apiPath = `"/api"`
|
||||||
}
|
}
|
||||||
|
schemePackage := path.Join(g.clientsetPackage, "scheme")
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"version": g.version,
|
"version": g.version,
|
||||||
"groupName": groupName,
|
"groupName": groupName,
|
||||||
"GroupGoName": g.groupGoName,
|
"GroupGoName": g.groupGoName,
|
||||||
"Version": namer.IC(g.version),
|
"Version": namer.IC(g.version),
|
||||||
"types": g.types,
|
"types": g.types,
|
||||||
"apiPath": apiPath,
|
"apiPath": apiPath,
|
||||||
"schemaGroupVersion": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersion"}),
|
"httpClient": c.Universe.Type(types.Name{Package: "net/http", Name: "Client"}),
|
||||||
"runtimeAPIVersionInternal": c.Universe.Variable(types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "APIVersionInternal"}),
|
"schemaGroupVersion": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersion"}),
|
||||||
"restConfig": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}),
|
"runtimeAPIVersionInternal": c.Universe.Variable(types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "APIVersionInternal"}),
|
||||||
"restDefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "DefaultKubernetesUserAgent"}),
|
"restConfig": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Config"}),
|
||||||
"restRESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
"restDefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "DefaultKubernetesUserAgent"}),
|
||||||
"RESTHTTPClientFor": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "HTTPClientFor"}),
|
"restRESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
||||||
"restRESTClientFor": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClientFor"}),
|
"RESTHTTPClientFor": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "HTTPClientFor"}),
|
||||||
"restRESTClientForConfigAndClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClientForConfigAndClient"}),
|
"restRESTClientFor": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClientFor"}),
|
||||||
"SchemeGroupVersion": c.Universe.Variable(types.Name{Package: g.inputPackage, Name: "SchemeGroupVersion"}),
|
"restRESTClientForConfigAndClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClientForConfigAndClient"}),
|
||||||
|
"SchemeGroupVersion": c.Universe.Variable(types.Name{Package: g.inputPackage, Name: "SchemeGroupVersion"}),
|
||||||
|
"SchemePrioritizedVersionsForGroup": c.Universe.Variable(types.Name{Package: schemePackage, Name: "Scheme.PrioritizedVersionsForGroup"}),
|
||||||
|
"Codecs": c.Universe.Variable(types.Name{Package: schemePackage, Name: "Codecs"}),
|
||||||
|
"CodecsWithoutConversion": c.Universe.Variable(types.Name{Package: schemePackage, Name: "Codecs.WithoutConversion"}),
|
||||||
}
|
}
|
||||||
sw.Do(groupInterfaceTemplate, m)
|
sw.Do(groupInterfaceTemplate, m)
|
||||||
sw.Do(groupClientTemplate, m)
|
sw.Do(groupClientTemplate, m)
|
||||||
@ -179,7 +182,7 @@ func NewForConfig(c *$.restConfig|raw$) (*$.GroupGoName$$.Version$Client, error)
|
|||||||
var newClientForConfigAndClientTemplate = `
|
var newClientForConfigAndClientTemplate = `
|
||||||
// NewForConfigAndClient creates a new $.GroupGoName$$.Version$Client for the given config and http client.
|
// NewForConfigAndClient creates a new $.GroupGoName$$.Version$Client for the given config and http client.
|
||||||
// Note the http client provided takes precedence over the configured transport values.
|
// Note the http client provided takes precedence over the configured transport values.
|
||||||
func NewForConfigAndClient(c *$.restConfig|raw$, h *http.Client) (*$.GroupGoName$$.Version$Client, error) {
|
func NewForConfigAndClient(c *$.restConfig|raw$, h *$.httpClient|raw$) (*$.GroupGoName$$.Version$Client, error) {
|
||||||
config := *c
|
config := *c
|
||||||
if err := setConfigDefaults(&config); err != nil {
|
if err := setConfigDefaults(&config); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -228,11 +231,11 @@ func setConfigDefaults(config *$.restConfig|raw$) error {
|
|||||||
if config.UserAgent == "" {
|
if config.UserAgent == "" {
|
||||||
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
|
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
|
||||||
}
|
}
|
||||||
if config.GroupVersion == nil || config.GroupVersion.Group != scheme.Scheme.PrioritizedVersionsForGroup("$.groupName$")[0].Group {
|
if config.GroupVersion == nil || config.GroupVersion.Group != $.SchemePrioritizedVersionsForGroup|raw$("$.groupName$")[0].Group {
|
||||||
gv := scheme.Scheme.PrioritizedVersionsForGroup("$.groupName$")[0]
|
gv := $.SchemePrioritizedVersionsForGroup|raw$("$.groupName$")[0]
|
||||||
config.GroupVersion = &gv
|
config.GroupVersion = &gv
|
||||||
}
|
}
|
||||||
config.NegotiatedSerializer = scheme.Codecs
|
config.NegotiatedSerializer = $.Codecs|raw$
|
||||||
|
|
||||||
if config.QPS == 0 {
|
if config.QPS == 0 {
|
||||||
config.QPS = 5
|
config.QPS = 5
|
||||||
@ -250,7 +253,7 @@ func setConfigDefaults(config *$.restConfig|raw$) error {
|
|||||||
gv := $.SchemeGroupVersion|raw$
|
gv := $.SchemeGroupVersion|raw$
|
||||||
config.GroupVersion = &gv
|
config.GroupVersion = &gv
|
||||||
config.APIPath = $.apiPath$
|
config.APIPath = $.apiPath$
|
||||||
config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
|
config.NegotiatedSerializer = $.CodecsWithoutConversion|raw$()
|
||||||
|
|
||||||
if config.UserAgent == "" {
|
if config.UserAgent == "" {
|
||||||
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
|
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
|
|
||||||
"golang.org/x/text/cases"
|
"golang.org/x/text/cases"
|
||||||
"golang.org/x/text/language"
|
"golang.org/x/text/language"
|
||||||
|
|
||||||
"k8s.io/gengo/v2/generator"
|
"k8s.io/gengo/v2/generator"
|
||||||
"k8s.io/gengo/v2/namer"
|
"k8s.io/gengo/v2/namer"
|
||||||
"k8s.io/gengo/v2/types"
|
"k8s.io/gengo/v2/types"
|
||||||
@ -140,6 +141,7 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
|
|||||||
"ApplyOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ApplyOptions"}),
|
"ApplyOptions": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ApplyOptions"}),
|
||||||
"PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}),
|
"PatchType": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/types", Name: "PatchType"}),
|
||||||
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
|
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
|
||||||
|
"context": c.Universe.Type(types.Name{Package: "context", Name: "Context"}),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
if e.HasVerb("apply") {
|
if e.HasVerb("apply") {
|
||||||
@ -172,6 +174,8 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
|
|||||||
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
|
||||||
"schemeParameterCodec": c.Universe.Variable(types.Name{Package: path.Join(g.clientsetPackage, "scheme"), Name: "ParameterCodec"}),
|
"schemeParameterCodec": c.Universe.Variable(types.Name{Package: path.Join(g.clientsetPackage, "scheme"), Name: "ParameterCodec"}),
|
||||||
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
|
"jsonMarshal": c.Universe.Type(types.Name{Package: "encoding/json", Name: "Marshal"}),
|
||||||
|
"fmtErrorf": c.Universe.Type(types.Name{Package: "fmt", Name: "Errorf"}),
|
||||||
|
"context": c.Universe.Type(types.Name{Package: "context", Name: "Context"}),
|
||||||
"resourceVersionMatchNotOlderThan": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ResourceVersionMatchNotOlderThan"}),
|
"resourceVersionMatchNotOlderThan": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ResourceVersionMatchNotOlderThan"}),
|
||||||
"CheckListFromCacheDataConsistencyIfRequested": c.Universe.Function(types.Name{Package: "k8s.io/client-go/util/consistencydetector", Name: "CheckListFromCacheDataConsistencyIfRequested"}),
|
"CheckListFromCacheDataConsistencyIfRequested": c.Universe.Function(types.Name{Package: "k8s.io/client-go/util/consistencydetector", Name: "CheckListFromCacheDataConsistencyIfRequested"}),
|
||||||
"CheckWatchListFromCacheDataConsistencyIfRequested": c.Universe.Function(types.Name{Package: "k8s.io/client-go/util/consistencydetector", Name: "CheckWatchListFromCacheDataConsistencyIfRequested"}),
|
"CheckWatchListFromCacheDataConsistencyIfRequested": c.Universe.Function(types.Name{Package: "k8s.io/client-go/util/consistencydetector", Name: "CheckWatchListFromCacheDataConsistencyIfRequested"}),
|
||||||
@ -352,34 +356,34 @@ func generateInterface(defaultVerbTemplates map[string]string, tags util.Tags) s
|
|||||||
|
|
||||||
func buildSubresourceDefaultVerbTemplates(generateApply bool) map[string]string {
|
func buildSubresourceDefaultVerbTemplates(generateApply bool) map[string]string {
|
||||||
m := map[string]string{
|
m := map[string]string{
|
||||||
"create": `Create(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
|
"create": `Create(ctx $.context|raw$, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
|
||||||
"list": `List(ctx context.Context, $.type|private$Name string, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
|
"list": `List(ctx $.context|raw$, $.type|private$Name string, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
|
||||||
"update": `Update(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
|
"update": `Update(ctx $.context|raw$, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
|
||||||
"get": `Get(ctx context.Context, $.type|private$Name string, options $.GetOptions|raw$) (*$.resultType|raw$, error)`,
|
"get": `Get(ctx $.context|raw$, $.type|private$Name string, options $.GetOptions|raw$) (*$.resultType|raw$, error)`,
|
||||||
}
|
}
|
||||||
if generateApply {
|
if generateApply {
|
||||||
m["apply"] = `Apply(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (*$.resultType|raw$, error)`
|
m["apply"] = `Apply(ctx $.context|raw$, $.type|private$Name string, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (*$.resultType|raw$, error)`
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildDefaultVerbTemplates(generateApply bool) map[string]string {
|
func buildDefaultVerbTemplates(generateApply bool) map[string]string {
|
||||||
m := map[string]string{
|
m := map[string]string{
|
||||||
"create": `Create(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
|
"create": `Create(ctx $.context|raw$, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (*$.resultType|raw$, error)`,
|
||||||
"update": `Update(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
|
"update": `Update(ctx $.context|raw$, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (*$.resultType|raw$, error)`,
|
||||||
"updateStatus": `// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
"updateStatus": `// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
UpdateStatus(ctx context.Context, $.inputType|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (*$.type|raw$, error)`,
|
UpdateStatus(ctx $.context|raw$, $.inputType|private$ *$.type|raw$, opts $.UpdateOptions|raw$) (*$.type|raw$, error)`,
|
||||||
"delete": `Delete(ctx context.Context, name string, opts $.DeleteOptions|raw$) error`,
|
"delete": `Delete(ctx $.context|raw$, name string, opts $.DeleteOptions|raw$) error`,
|
||||||
"deleteCollection": `DeleteCollection(ctx context.Context, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error`,
|
"deleteCollection": `DeleteCollection(ctx $.context|raw$, opts $.DeleteOptions|raw$, listOpts $.ListOptions|raw$) error`,
|
||||||
"get": `Get(ctx context.Context, name string, opts $.GetOptions|raw$) (*$.resultType|raw$, error)`,
|
"get": `Get(ctx $.context|raw$, name string, opts $.GetOptions|raw$) (*$.resultType|raw$, error)`,
|
||||||
"list": `List(ctx context.Context, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
|
"list": `List(ctx $.context|raw$, opts $.ListOptions|raw$) (*$.resultType|raw$List, error)`,
|
||||||
"watch": `Watch(ctx context.Context, opts $.ListOptions|raw$) ($.watchInterface|raw$, error)`,
|
"watch": `Watch(ctx $.context|raw$, opts $.ListOptions|raw$) ($.watchInterface|raw$, error)`,
|
||||||
"patch": `Patch(ctx context.Context, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error)`,
|
"patch": `Patch(ctx $.context|raw$, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error)`,
|
||||||
}
|
}
|
||||||
if generateApply {
|
if generateApply {
|
||||||
m["apply"] = `Apply(ctx context.Context, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)`
|
m["apply"] = `Apply(ctx $.context|raw$, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)`
|
||||||
m["applyStatus"] = `// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
m["applyStatus"] = `// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
||||||
ApplyStatus(ctx context.Context, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)`
|
ApplyStatus(ctx $.context|raw$, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error)`
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
@ -580,7 +584,7 @@ var newStruct = []string{
|
|||||||
|
|
||||||
var listTemplate = `
|
var listTemplate = `
|
||||||
// List takes label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
|
// List takes label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
|
||||||
func (c *$.type|privatePlural$) List(ctx context.Context, opts $.ListOptions|raw$) (*$.resultType|raw$List, error) {
|
func (c *$.type|privatePlural$) List(ctx $.context|raw$, opts $.ListOptions|raw$) (*$.resultType|raw$List, error) {
|
||||||
if watchListOptions, hasWatchListOptionsPrepared, watchListOptionsErr := $.PrepareWatchListOptionsFromListOptions|raw$(opts); watchListOptionsErr != nil {
|
if watchListOptions, hasWatchListOptionsPrepared, watchListOptionsErr := $.PrepareWatchListOptionsFromListOptions|raw$(opts); watchListOptionsErr != nil {
|
||||||
klog.Warningf("Failed preparing watchlist options for $.type|resource$, falling back to the standard LIST semantics, err = %v", watchListOptionsErr )
|
klog.Warningf("Failed preparing watchlist options for $.type|resource$, falling back to the standard LIST semantics, err = %v", watchListOptionsErr )
|
||||||
} else if hasWatchListOptionsPrepared {
|
} else if hasWatchListOptionsPrepared {
|
||||||
@ -601,7 +605,7 @@ func (c *$.type|privatePlural$) List(ctx context.Context, opts $.ListOptions|raw
|
|||||||
|
|
||||||
var privateListTemplate = `
|
var privateListTemplate = `
|
||||||
// list takes label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
|
// list takes label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
|
||||||
func (c *$.type|privatePlural$) list(ctx context.Context, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
|
func (c *$.type|privatePlural$) list(ctx $.context|raw$, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
|
||||||
var timeout time.Duration
|
var timeout time.Duration
|
||||||
if opts.TimeoutSeconds != nil{
|
if opts.TimeoutSeconds != nil{
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
@ -620,7 +624,7 @@ func (c *$.type|privatePlural$) list(ctx context.Context, opts $.ListOptions|raw
|
|||||||
|
|
||||||
var listSubresourceTemplate = `
|
var listSubresourceTemplate = `
|
||||||
// List takes $.type|raw$ name, label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
|
// List takes $.type|raw$ name, label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
|
||||||
func (c *$.type|privatePlural$) List(ctx context.Context, $.type|private$Name string, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
|
func (c *$.type|privatePlural$) List(ctx $.context|raw$, $.type|private$Name string, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
|
||||||
var timeout time.Duration
|
var timeout time.Duration
|
||||||
if opts.TimeoutSeconds != nil{
|
if opts.TimeoutSeconds != nil{
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
@ -641,7 +645,7 @@ func (c *$.type|privatePlural$) List(ctx context.Context, $.type|private$Name st
|
|||||||
|
|
||||||
var getTemplate = `
|
var getTemplate = `
|
||||||
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|private$ object, and an error if there is any.
|
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|private$ object, and an error if there is any.
|
||||||
func (c *$.type|privatePlural$) Get(ctx context.Context, name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Get(ctx $.context|raw$, name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Get().
|
err = c.GetClient().Get().
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
@ -656,7 +660,7 @@ func (c *$.type|privatePlural$) Get(ctx context.Context, name string, options $.
|
|||||||
|
|
||||||
var getSubresourceTemplate = `
|
var getSubresourceTemplate = `
|
||||||
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|raw$ object, and an error if there is any.
|
// Get takes name of the $.type|private$, and returns the corresponding $.resultType|raw$ object, and an error if there is any.
|
||||||
func (c *$.type|privatePlural$) Get(ctx context.Context, $.type|private$Name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Get(ctx $.context|raw$, $.type|private$Name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Get().
|
err = c.GetClient().Get().
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
@ -672,7 +676,7 @@ func (c *$.type|privatePlural$) Get(ctx context.Context, $.type|private$Name str
|
|||||||
|
|
||||||
var deleteTemplate = `
|
var deleteTemplate = `
|
||||||
// Delete takes name of the $.type|private$ and deletes it. Returns an error if one occurs.
|
// Delete takes name of the $.type|private$ and deletes it. Returns an error if one occurs.
|
||||||
func (c *$.type|privatePlural$) Delete(ctx context.Context, name string, opts $.DeleteOptions|raw$) error {
|
func (c *$.type|privatePlural$) Delete(ctx $.context|raw$, name string, opts $.DeleteOptions|raw$) error {
|
||||||
return c.GetClient().Delete().
|
return c.GetClient().Delete().
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
Resource("$.type|resource$").
|
Resource("$.type|resource$").
|
||||||
@ -685,7 +689,7 @@ func (c *$.type|privatePlural$) Delete(ctx context.Context, name string, opts $.
|
|||||||
|
|
||||||
var createSubresourceTemplate = `
|
var createSubresourceTemplate = `
|
||||||
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *$.type|privatePlural$) Create(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Create(ctx $.context|raw$, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Post().
|
err = c.GetClient().Post().
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
@ -702,7 +706,7 @@ func (c *$.type|privatePlural$) Create(ctx context.Context, $.type|private$Name
|
|||||||
|
|
||||||
var createTemplate = `
|
var createTemplate = `
|
||||||
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Create takes the representation of a $.inputType|private$ and creates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *$.type|privatePlural$) Create(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Create(ctx $.context|raw$, $.inputType|private$ *$.inputType|raw$, opts $.CreateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Post().
|
err = c.GetClient().Post().
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
@ -717,7 +721,7 @@ func (c *$.type|privatePlural$) Create(ctx context.Context, $.inputType|private$
|
|||||||
|
|
||||||
var updateSubresourceTemplate = `
|
var updateSubresourceTemplate = `
|
||||||
// Update takes the top resource name and the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Update takes the top resource name and the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *$.type|privatePlural$) Update(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Update(ctx $.context|raw$, $.type|private$Name string, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Put().
|
err = c.GetClient().Put().
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
@ -734,7 +738,7 @@ func (c *$.type|privatePlural$) Update(ctx context.Context, $.type|private$Name
|
|||||||
|
|
||||||
var updateTemplate = `
|
var updateTemplate = `
|
||||||
// Update takes the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
// Update takes the representation of a $.inputType|private$ and updates it. Returns the server's representation of the $.resultType|private$, and an error, if there is any.
|
||||||
func (c *$.type|privatePlural$) Update(ctx context.Context, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Update(ctx $.context|raw$, $.inputType|private$ *$.inputType|raw$, opts $.UpdateOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Put().
|
err = c.GetClient().Put().
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
@ -750,7 +754,7 @@ func (c *$.type|privatePlural$) Update(ctx context.Context, $.inputType|private$
|
|||||||
|
|
||||||
var watchTemplate = `
|
var watchTemplate = `
|
||||||
// Watch returns a $.watchInterface|raw$ that watches the requested $.type|privatePlural$.
|
// Watch returns a $.watchInterface|raw$ that watches the requested $.type|privatePlural$.
|
||||||
func (c *$.type|privatePlural$) Watch(ctx context.Context, opts $.ListOptions|raw$) ($.watchInterface|raw$, error) {
|
func (c *$.type|privatePlural$) Watch(ctx $.context|raw$, opts $.ListOptions|raw$) ($.watchInterface|raw$, error) {
|
||||||
var timeout time.Duration
|
var timeout time.Duration
|
||||||
if opts.TimeoutSeconds != nil{
|
if opts.TimeoutSeconds != nil{
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
@ -766,7 +770,7 @@ func (c *$.type|privatePlural$) Watch(ctx context.Context, opts $.ListOptions|ra
|
|||||||
|
|
||||||
var watchListTemplate = `
|
var watchListTemplate = `
|
||||||
// watchList establishes a watch stream with the server and returns the list of $.resultType|publicPlural$
|
// watchList establishes a watch stream with the server and returns the list of $.resultType|publicPlural$
|
||||||
func (c *$.type|privatePlural$) watchList(ctx context.Context, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
|
func (c *$.type|privatePlural$) watchList(ctx $.context|raw$, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
|
||||||
var timeout time.Duration
|
var timeout time.Duration
|
||||||
if opts.TimeoutSeconds != nil{
|
if opts.TimeoutSeconds != nil{
|
||||||
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
|
||||||
@ -785,7 +789,7 @@ func (c *$.type|privatePlural$) watchList(ctx context.Context, opts $.ListOption
|
|||||||
|
|
||||||
var patchTemplate = `
|
var patchTemplate = `
|
||||||
// Patch applies the patch and returns the patched $.resultType|private$.
|
// Patch applies the patch and returns the patched $.resultType|private$.
|
||||||
func (c *$.type|privatePlural$) Patch(ctx context.Context, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Patch(ctx $.context|raw$, name string, pt $.PatchType|raw$, data []byte, opts $.PatchOptions|raw$, subresources ...string) (result *$.resultType|raw$, err error) {
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Patch(pt).
|
err = c.GetClient().Patch(pt).
|
||||||
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
$if .namespaced$Namespace(c.GetNamespace()).$end$
|
||||||
@ -802,9 +806,9 @@ func (c *$.type|privatePlural$) Patch(ctx context.Context, name string, pt $.Pat
|
|||||||
|
|
||||||
var applyTemplate = `
|
var applyTemplate = `
|
||||||
// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$.
|
// Apply takes the given apply declarative configuration, applies it and returns the applied $.resultType|private$.
|
||||||
func (c *$.type|privatePlural$) Apply(ctx context.Context, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Apply(ctx $.context|raw$, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
if $.inputType|private$ == nil {
|
if $.inputType|private$ == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$ provided to Apply must not be nil")
|
||||||
}
|
}
|
||||||
patchOpts := opts.ToPatchOptions()
|
patchOpts := opts.ToPatchOptions()
|
||||||
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
||||||
@ -813,7 +817,7 @@ func (c *$.type|privatePlural$) Apply(ctx context.Context, $.inputType|private$
|
|||||||
}
|
}
|
||||||
name := $.inputType|private$.Name
|
name := $.inputType|private$.Name
|
||||||
if name == nil {
|
if name == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$.Name must be provided to Apply")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$.Name must be provided to Apply")
|
||||||
}
|
}
|
||||||
result = &$.resultType|raw${}
|
result = &$.resultType|raw${}
|
||||||
err = c.GetClient().Patch($.ApplyPatchType|raw$).
|
err = c.GetClient().Patch($.ApplyPatchType|raw$).
|
||||||
@ -831,9 +835,9 @@ func (c *$.type|privatePlural$) Apply(ctx context.Context, $.inputType|private$
|
|||||||
var applySubresourceTemplate = `
|
var applySubresourceTemplate = `
|
||||||
// Apply takes top resource name and the apply declarative configuration for $.subresourcePath$,
|
// Apply takes top resource name and the apply declarative configuration for $.subresourcePath$,
|
||||||
// applies it and returns the applied $.resultType|private$, and an error, if there is any.
|
// applies it and returns the applied $.resultType|private$, and an error, if there is any.
|
||||||
func (c *$.type|privatePlural$) Apply(ctx context.Context, $.type|private$Name string, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *$.type|privatePlural$) Apply(ctx $.context|raw$, $.type|private$Name string, $.inputType|private$ *$.inputApplyConfig|raw$, opts $.ApplyOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
if $.inputType|private$ == nil {
|
if $.inputType|private$ == nil {
|
||||||
return nil, fmt.Errorf("$.inputType|private$ provided to Apply must not be nil")
|
return nil, $.fmtErrorf|raw$("$.inputType|private$ provided to Apply must not be nil")
|
||||||
}
|
}
|
||||||
patchOpts := opts.ToPatchOptions()
|
patchOpts := opts.ToPatchOptions()
|
||||||
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
data, err := $.jsonMarshal|raw$($.inputType|private$)
|
||||||
|
@ -823,7 +823,7 @@ func (g *genDefaulter) GenerateType(c *generator.Context, t *types.Type, w io.Wr
|
|||||||
})
|
})
|
||||||
|
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
g.generateDefaulter(t, callTree, sw)
|
g.generateDefaulter(c, t, callTree, sw)
|
||||||
return sw.Error()
|
return sw.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -833,9 +833,9 @@ func defaultingArgsFromType(inType *types.Type) generator.Args {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *genDefaulter) generateDefaulter(inType *types.Type, callTree *callNode, sw *generator.SnippetWriter) {
|
func (g *genDefaulter) generateDefaulter(c *generator.Context, inType *types.Type, callTree *callNode, sw *generator.SnippetWriter) {
|
||||||
sw.Do("func $.inType|objectdefaultfn$(in *$.inType|raw$) {\n", defaultingArgsFromType(inType))
|
sw.Do("func $.inType|objectdefaultfn$(in *$.inType|raw$) {\n", defaultingArgsFromType(inType))
|
||||||
callTree.WriteMethod("in", 0, nil, sw)
|
callTree.WriteMethod(c, "in", 0, nil, sw)
|
||||||
sw.Do("}\n\n", nil)
|
sw.Do("}\n\n", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -996,15 +996,19 @@ func getTypeZeroValue(t string) (interface{}, error) {
|
|||||||
return defaultZero, nil
|
return defaultZero, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *callNode) writeDefaulter(varName string, index string, isVarPointer bool, sw *generator.SnippetWriter) {
|
func (n *callNode) writeDefaulter(c *generator.Context, varName string, index string, isVarPointer bool, sw *generator.SnippetWriter) {
|
||||||
if n.defaultValue.IsEmpty() {
|
if n.defaultValue.IsEmpty() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jsonUnmarshalType := c.Universe.Type(types.Name{Package: "encoding/json", Name: "Unmarshal"})
|
||||||
|
|
||||||
args := generator.Args{
|
args := generator.Args{
|
||||||
"defaultValue": n.defaultValue.Resolved(),
|
"defaultValue": n.defaultValue.Resolved(),
|
||||||
"varName": varName,
|
"varName": varName,
|
||||||
"index": index,
|
"index": index,
|
||||||
"varTopType": n.defaultTopLevelType,
|
"varTopType": n.defaultTopLevelType,
|
||||||
|
"jsonUnmarshal": jsonUnmarshalType,
|
||||||
}
|
}
|
||||||
|
|
||||||
variablePlaceholder := ""
|
variablePlaceholder := ""
|
||||||
@ -1101,13 +1105,13 @@ func (n *callNode) writeDefaulter(varName string, index string, isVarPointer boo
|
|||||||
// This applies to maps with non-primitive values (eg: map[string]SubStruct)
|
// This applies to maps with non-primitive values (eg: map[string]SubStruct)
|
||||||
if n.key {
|
if n.key {
|
||||||
sw.Do("$.mapDefaultVar$ := $.varName$[$.index$]\n", args)
|
sw.Do("$.mapDefaultVar$ := $.varName$[$.index$]\n", args)
|
||||||
sw.Do("if err := json.Unmarshal([]byte(`$.defaultValue$`), &$.mapDefaultVar$); err != nil {\n", args)
|
sw.Do("if err := $.jsonUnmarshal|raw$([]byte(`$.defaultValue$`), &$.mapDefaultVar$); err != nil {\n", args)
|
||||||
} else {
|
} else {
|
||||||
variablePointer := variablePlaceholder
|
variablePointer := variablePlaceholder
|
||||||
if !isVarPointer {
|
if !isVarPointer {
|
||||||
variablePointer = "&" + variablePointer
|
variablePointer = "&" + variablePointer
|
||||||
}
|
}
|
||||||
sw.Do(fmt.Sprintf("if err := json.Unmarshal([]byte(`$.defaultValue$`), %s); err != nil {\n", variablePointer), args)
|
sw.Do(fmt.Sprintf("if err := $.jsonUnmarshal|raw$([]byte(`$.defaultValue$`), %s); err != nil {\n", variablePointer), args)
|
||||||
}
|
}
|
||||||
sw.Do("panic(err)\n", nil)
|
sw.Do("panic(err)\n", nil)
|
||||||
sw.Do("}\n", nil)
|
sw.Do("}\n", nil)
|
||||||
@ -1121,7 +1125,7 @@ func (n *callNode) writeDefaulter(varName string, index string, isVarPointer boo
|
|||||||
// WriteMethod performs an in-order traversal of the calltree, generating loops and if blocks as necessary
|
// WriteMethod performs an in-order traversal of the calltree, generating loops and if blocks as necessary
|
||||||
// to correctly turn the call tree into a method body that invokes all calls on all child nodes of the call tree.
|
// to correctly turn the call tree into a method body that invokes all calls on all child nodes of the call tree.
|
||||||
// Depth is used to generate local variables at the proper depth.
|
// Depth is used to generate local variables at the proper depth.
|
||||||
func (n *callNode) WriteMethod(varName string, depth int, ancestors []*callNode, sw *generator.SnippetWriter) {
|
func (n *callNode) WriteMethod(c *generator.Context, varName string, depth int, ancestors []*callNode, sw *generator.SnippetWriter) {
|
||||||
// if len(n.call) > 0 {
|
// if len(n.call) > 0 {
|
||||||
// sw.Do(fmt.Sprintf("// %s\n", callPath(append(ancestors, n)).String()), nil)
|
// sw.Do(fmt.Sprintf("// %s\n", callPath(append(ancestors, n)).String()), nil)
|
||||||
// }
|
// }
|
||||||
@ -1153,10 +1157,10 @@ func (n *callNode) WriteMethod(varName string, depth int, ancestors []*callNode,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
n.writeDefaulter(varName, index, isPointer, sw)
|
n.writeDefaulter(c, varName, index, isPointer, sw)
|
||||||
n.writeCalls(local, true, sw)
|
n.writeCalls(local, true, sw)
|
||||||
for i := range n.children {
|
for i := range n.children {
|
||||||
n.children[i].WriteMethod(local, depth+1, append(ancestors, n), sw)
|
n.children[i].WriteMethod(c, local, depth+1, append(ancestors, n), sw)
|
||||||
}
|
}
|
||||||
sw.Do("}\n", nil)
|
sw.Do("}\n", nil)
|
||||||
case n.key:
|
case n.key:
|
||||||
@ -1165,14 +1169,14 @@ func (n *callNode) WriteMethod(varName string, depth int, ancestors []*callNode,
|
|||||||
index = index + "_" + ancestors[len(ancestors)-1].field
|
index = index + "_" + ancestors[len(ancestors)-1].field
|
||||||
vars["index"] = index
|
vars["index"] = index
|
||||||
sw.Do("for $.index$ := range $.var$ {\n", vars)
|
sw.Do("for $.index$ := range $.var$ {\n", vars)
|
||||||
n.writeDefaulter(varName, index, isPointer, sw)
|
n.writeDefaulter(c, varName, index, isPointer, sw)
|
||||||
sw.Do("}\n", nil)
|
sw.Do("}\n", nil)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
n.writeDefaulter(varName, index, isPointer, sw)
|
n.writeDefaulter(c, varName, index, isPointer, sw)
|
||||||
n.writeCalls(varName, isPointer, sw)
|
n.writeCalls(varName, isPointer, sw)
|
||||||
for i := range n.children {
|
for i := range n.children {
|
||||||
n.children[i].WriteMethod(varName, depth, append(ancestors, n), sw)
|
n.children[i].WriteMethod(c, varName, depth, append(ancestors, n), sw)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +61,6 @@ func (g *genericGenerator) Namers(c *generator.Context) namer.NameSystems {
|
|||||||
|
|
||||||
func (g *genericGenerator) Imports(c *generator.Context) (imports []string) {
|
func (g *genericGenerator) Imports(c *generator.Context) (imports []string) {
|
||||||
imports = append(imports, g.imports.ImportLines()...)
|
imports = append(imports, g.imports.ImportLines()...)
|
||||||
imports = append(imports, "fmt")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,6 +126,7 @@ func (g *genericGenerator) GenerateType(c *generator.Context, t *types.Type, w i
|
|||||||
"cacheGenericLister": c.Universe.Type(cacheGenericLister),
|
"cacheGenericLister": c.Universe.Type(cacheGenericLister),
|
||||||
"cacheNewGenericLister": c.Universe.Function(cacheNewGenericLister),
|
"cacheNewGenericLister": c.Universe.Function(cacheNewGenericLister),
|
||||||
"cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer),
|
"cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer),
|
||||||
|
"fmtErrorf": c.Universe.Type(fmtErrorfFunc),
|
||||||
"groups": groups,
|
"groups": groups,
|
||||||
"schemeGVs": schemeGVs,
|
"schemeGVs": schemeGVs,
|
||||||
"schemaGroupResource": c.Universe.Type(schemaGroupResource),
|
"schemaGroupResource": c.Universe.Type(schemaGroupResource),
|
||||||
@ -179,6 +179,6 @@ func (f *sharedInformerFactory) ForResource(resource {{.schemaGroupVersionResour
|
|||||||
{{end -}}
|
{{end -}}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, fmt.Errorf("no informer found for %v", resource)
|
return nil, {{.fmtErrorf|raw}}("no informer found for %v", resource)
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
@ -86,6 +86,7 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w
|
|||||||
"cacheNewSharedIndexInformer": c.Universe.Function(cacheNewSharedIndexInformer),
|
"cacheNewSharedIndexInformer": c.Universe.Function(cacheNewSharedIndexInformer),
|
||||||
"cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer),
|
"cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer),
|
||||||
"clientSetInterface": clientSetInterface,
|
"clientSetInterface": clientSetInterface,
|
||||||
|
"contextTODO": c.Universe.Type(contextTODOFunc),
|
||||||
"group": namer.IC(g.groupGoName),
|
"group": namer.IC(g.groupGoName),
|
||||||
"informerFor": informerFor,
|
"informerFor": informerFor,
|
||||||
"interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}),
|
"interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}),
|
||||||
@ -151,13 +152,13 @@ func NewFiltered$.type|public$Informer(client $.clientSetInterface|raw$$if .name
|
|||||||
if tweakListOptions != nil {
|
if tweakListOptions != nil {
|
||||||
tweakListOptions(&options)
|
tweakListOptions(&options)
|
||||||
}
|
}
|
||||||
return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).List(context.TODO(), options)
|
return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).List($.contextTODO|raw$(), options)
|
||||||
},
|
},
|
||||||
WatchFunc: func(options $.v1ListOptions|raw$) ($.watchInterface|raw$, error) {
|
WatchFunc: func(options $.v1ListOptions|raw$) ($.watchInterface|raw$, error) {
|
||||||
if tweakListOptions != nil {
|
if tweakListOptions != nil {
|
||||||
tweakListOptions(&options)
|
tweakListOptions(&options)
|
||||||
}
|
}
|
||||||
return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).Watch(context.TODO(), options)
|
return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).Watch($.contextTODO|raw$(), options)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
&$.type|raw${},
|
&$.type|raw${},
|
||||||
|
@ -29,6 +29,8 @@ var (
|
|||||||
cacheNewSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewSharedIndexInformer"}
|
cacheNewSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewSharedIndexInformer"}
|
||||||
cacheSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "SharedIndexInformer"}
|
cacheSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "SharedIndexInformer"}
|
||||||
cacheTransformFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "TransformFunc"}
|
cacheTransformFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "TransformFunc"}
|
||||||
|
contextTODOFunc = types.Name{Package: "context", Name: "TODO"}
|
||||||
|
fmtErrorfFunc = types.Name{Package: "fmt", Name: "Errorf"}
|
||||||
listOptions = types.Name{Package: "k8s.io/kubernetes/pkg/apis/core", Name: "ListOptions"}
|
listOptions = types.Name{Package: "k8s.io/kubernetes/pkg/apis/core", Name: "ListOptions"}
|
||||||
reflectType = types.Name{Package: "reflect", Name: "Type"}
|
reflectType = types.Name{Package: "reflect", Name: "Type"}
|
||||||
runtimeObject = types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"}
|
runtimeObject = types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"}
|
||||||
|
@ -213,11 +213,6 @@ func (g *listerGenerator) Namers(c *generator.Context) namer.NameSystems {
|
|||||||
|
|
||||||
func (g *listerGenerator) Imports(c *generator.Context) (imports []string) {
|
func (g *listerGenerator) Imports(c *generator.Context) (imports []string) {
|
||||||
imports = append(imports, g.imports.ImportLines()...)
|
imports = append(imports, g.imports.ImportLines()...)
|
||||||
imports = append(imports, "k8s.io/apimachinery/pkg/api/errors")
|
|
||||||
imports = append(imports, "k8s.io/apimachinery/pkg/labels")
|
|
||||||
imports = append(imports, "k8s.io/client-go/listers")
|
|
||||||
// for Indexer
|
|
||||||
imports = append(imports, "k8s.io/client-go/tools/cache")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,9 +221,14 @@ func (g *listerGenerator) GenerateType(c *generator.Context, t *types.Type, w io
|
|||||||
|
|
||||||
klog.V(5).Infof("processing type %v", t)
|
klog.V(5).Infof("processing type %v", t)
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"Resource": c.Universe.Function(types.Name{Package: t.Name.Package, Name: "Resource"}),
|
"Resource": c.Universe.Function(types.Name{Package: t.Name.Package, Name: "Resource"}),
|
||||||
"type": t,
|
"labelsSelector": c.Universe.Function(types.Name{Package: "k8s.io/apimachinery/pkg/labels", Name: "Selector"}),
|
||||||
"objectMeta": g.objectMeta,
|
"listersResourceIndexer": c.Universe.Function(types.Name{Package: "k8s.io/client-go/listers", Name: "ResourceIndexer"}),
|
||||||
|
"listersNew": c.Universe.Function(types.Name{Package: "k8s.io/client-go/listers", Name: "New"}),
|
||||||
|
"listersNewNamespaced": c.Universe.Function(types.Name{Package: "k8s.io/client-go/listers", Name: "NewNamespaced"}),
|
||||||
|
"cacheIndexer": c.Universe.Type(types.Name{Package: "k8s.io/client-go/tools/cache", Name: "Indexer"}),
|
||||||
|
"type": t,
|
||||||
|
"objectMeta": g.objectMeta,
|
||||||
}
|
}
|
||||||
|
|
||||||
tags, err := util.ParseClientGenTags(append(t.SecondClosestCommentLines, t.CommentLines...))
|
tags, err := util.ParseClientGenTags(append(t.SecondClosestCommentLines, t.CommentLines...))
|
||||||
@ -262,7 +262,7 @@ var typeListerInterface = `
|
|||||||
type $.type|public$Lister interface {
|
type $.type|public$Lister interface {
|
||||||
// List lists all $.type|publicPlural$ in the indexer.
|
// List lists all $.type|publicPlural$ in the indexer.
|
||||||
// Objects returned here must be treated as read-only.
|
// Objects returned here must be treated as read-only.
|
||||||
List(selector labels.Selector) (ret []*$.type|raw$, err error)
|
List(selector $.labelsSelector|raw$) (ret []*$.type|raw$, err error)
|
||||||
// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$.
|
// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$.
|
||||||
$.type|publicPlural$(namespace string) $.type|public$NamespaceLister
|
$.type|publicPlural$(namespace string) $.type|public$NamespaceLister
|
||||||
$.type|public$ListerExpansion
|
$.type|public$ListerExpansion
|
||||||
@ -275,7 +275,7 @@ var typeListerInterfaceNonNamespaced = `
|
|||||||
type $.type|public$Lister interface {
|
type $.type|public$Lister interface {
|
||||||
// List lists all $.type|publicPlural$ in the indexer.
|
// List lists all $.type|publicPlural$ in the indexer.
|
||||||
// Objects returned here must be treated as read-only.
|
// Objects returned here must be treated as read-only.
|
||||||
List(selector labels.Selector) (ret []*$.type|raw$, err error)
|
List(selector $.labelsSelector|raw$) (ret []*$.type|raw$, err error)
|
||||||
// Get retrieves the $.type|public$ from the index for a given name.
|
// Get retrieves the $.type|public$ from the index for a given name.
|
||||||
// Objects returned here must be treated as read-only.
|
// Objects returned here must be treated as read-only.
|
||||||
Get(name string) (*$.type|raw$, error)
|
Get(name string) (*$.type|raw$, error)
|
||||||
@ -289,21 +289,21 @@ type $.type|public$Lister interface {
|
|||||||
var typeListerStruct = `
|
var typeListerStruct = `
|
||||||
// $.type|private$Lister implements the $.type|public$Lister interface.
|
// $.type|private$Lister implements the $.type|public$Lister interface.
|
||||||
type $.type|private$Lister struct {
|
type $.type|private$Lister struct {
|
||||||
listers.ResourceIndexer[*$.type|raw$]
|
$.listersResourceIndexer|raw$[*$.type|raw$]
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var typeListerConstructor = `
|
var typeListerConstructor = `
|
||||||
// New$.type|public$Lister returns a new $.type|public$Lister.
|
// New$.type|public$Lister returns a new $.type|public$Lister.
|
||||||
func New$.type|public$Lister(indexer cache.Indexer) $.type|public$Lister {
|
func New$.type|public$Lister(indexer $.cacheIndexer|raw$) $.type|public$Lister {
|
||||||
return &$.type|private$Lister{listers.New[*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$"))}
|
return &$.type|private$Lister{$.listersNew|raw$[*$.type|raw$](indexer, $.Resource|raw$("$.type|lowercaseSingular$"))}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var typeListerNamespaceLister = `
|
var typeListerNamespaceLister = `
|
||||||
// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$.
|
// $.type|publicPlural$ returns an object that can list and get $.type|publicPlural$.
|
||||||
func (s *$.type|private$Lister) $.type|publicPlural$(namespace string) $.type|public$NamespaceLister {
|
func (s *$.type|private$Lister) $.type|publicPlural$(namespace string) $.type|public$NamespaceLister {
|
||||||
return $.type|private$NamespaceLister{listers.NewNamespaced[*$.type|raw$](s.ResourceIndexer, namespace)}
|
return $.type|private$NamespaceLister{$.listersNewNamespaced|raw$[*$.type|raw$](s.ResourceIndexer, namespace)}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
@ -313,7 +313,7 @@ var namespaceListerInterface = `
|
|||||||
type $.type|public$NamespaceLister interface {
|
type $.type|public$NamespaceLister interface {
|
||||||
// List lists all $.type|publicPlural$ in the indexer for a given namespace.
|
// List lists all $.type|publicPlural$ in the indexer for a given namespace.
|
||||||
// Objects returned here must be treated as read-only.
|
// Objects returned here must be treated as read-only.
|
||||||
List(selector labels.Selector) (ret []*$.type|raw$, err error)
|
List(selector $.labelsSelector|raw$) (ret []*$.type|raw$, err error)
|
||||||
// Get retrieves the $.type|public$ from the indexer for a given namespace and name.
|
// Get retrieves the $.type|public$ from the indexer for a given namespace and name.
|
||||||
// Objects returned here must be treated as read-only.
|
// Objects returned here must be treated as read-only.
|
||||||
Get(name string) (*$.type|raw$, error)
|
Get(name string) (*$.type|raw$, error)
|
||||||
@ -328,6 +328,6 @@ var namespaceListerStruct = `
|
|||||||
// $.type|private$NamespaceLister implements the $.type|public$NamespaceLister
|
// $.type|private$NamespaceLister implements the $.type|public$NamespaceLister
|
||||||
// interface.
|
// interface.
|
||||||
type $.type|private$NamespaceLister struct {
|
type $.type|private$NamespaceLister struct {
|
||||||
listers.ResourceIndexer[*$.type|raw$]
|
$.listersResourceIndexer|raw$[*$.type|raw$]
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
Loading…
Reference in New Issue
Block a user