mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 04:06:03 +00:00
Merge pull request #19499 from caesarxuchao/scale-client-gen
client-gen: typed client with only the expansion interface
This commit is contained in:
commit
9d23d75071
@ -84,12 +84,19 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
|
||||
} else {
|
||||
sw.Do(getterNonNamesapced, m)
|
||||
}
|
||||
noMethods := types.ExtractCommentTags("+", t.SecondClosestCommentLines)["noMethods"] == "true"
|
||||
|
||||
sw.Do(interfaceTemplate1, m)
|
||||
// Include the UpdateStatus method if the type has a status
|
||||
if hasStatus(t) {
|
||||
sw.Do(interfaceUpdateStatusTemplate, m)
|
||||
if !noMethods {
|
||||
sw.Do(interfaceTemplate2, m)
|
||||
// Include the UpdateStatus method if the type has a status
|
||||
if hasStatus(t) {
|
||||
sw.Do(interfaceUpdateStatusTemplate, m)
|
||||
}
|
||||
sw.Do(interfaceTemplate3, m)
|
||||
}
|
||||
sw.Do(interfaceTemplate2, m)
|
||||
sw.Do(interfaceTemplate4, m)
|
||||
|
||||
if namespaced {
|
||||
sw.Do(structNamespaced, m)
|
||||
sw.Do(newStructNamespaced, m)
|
||||
@ -97,17 +104,20 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
|
||||
sw.Do(structNonNamespaced, m)
|
||||
sw.Do(newStructNonNamespaced, m)
|
||||
}
|
||||
sw.Do(createTemplate, m)
|
||||
sw.Do(updateTemplate, m)
|
||||
// Generate the UpdateStatus method if the type has a status
|
||||
if hasStatus(t) {
|
||||
sw.Do(updateStatusTemplate, m)
|
||||
|
||||
if !noMethods {
|
||||
sw.Do(createTemplate, m)
|
||||
sw.Do(updateTemplate, m)
|
||||
// Generate the UpdateStatus method if the type has a status
|
||||
if hasStatus(t) {
|
||||
sw.Do(updateStatusTemplate, m)
|
||||
}
|
||||
sw.Do(deleteTemplate, m)
|
||||
sw.Do(deleteCollectionTemplate, m)
|
||||
sw.Do(getTemplate, m)
|
||||
sw.Do(listTemplate, m)
|
||||
sw.Do(watchTemplate, m)
|
||||
}
|
||||
sw.Do(deleteTemplate, m)
|
||||
sw.Do(deleteCollectionTemplate, m)
|
||||
sw.Do(getTemplate, m)
|
||||
sw.Do(listTemplate, m)
|
||||
sw.Do(watchTemplate, m)
|
||||
|
||||
return sw.Error()
|
||||
}
|
||||
@ -132,7 +142,9 @@ type $.type|publicPlural$Getter interface {
|
||||
// this type's interface, typed client will implement this interface.
|
||||
var interfaceTemplate1 = `
|
||||
// $.type|public$Interface has methods to work with $.type|public$ resources.
|
||||
type $.type|public$Interface interface {
|
||||
type $.type|public$Interface interface {`
|
||||
|
||||
var interfaceTemplate2 = `
|
||||
Create(*$.type|raw$) (*$.type|raw$, error)
|
||||
Update(*$.type|raw$) (*$.type|raw$, error)`
|
||||
|
||||
@ -140,12 +152,14 @@ var interfaceUpdateStatusTemplate = `
|
||||
UpdateStatus(*$.type|raw$) (*$.type|raw$, error)`
|
||||
|
||||
// template for the Interface
|
||||
var interfaceTemplate2 = `
|
||||
var interfaceTemplate3 = `
|
||||
Delete(name string, options *$.apiDeleteOptions|raw$) error
|
||||
DeleteCollection(options *$.apiDeleteOptions|raw$, listOptions $.apiListOptions|raw$) error
|
||||
Get(name string) (*$.type|raw$, error)
|
||||
List(opts $.apiListOptions|raw$) (*$.type|raw$List, error)
|
||||
Watch(opts $.apiListOptions|raw$) ($.watchInterface|raw$, error)
|
||||
Watch(opts $.apiListOptions|raw$) ($.watchInterface|raw$, error)`
|
||||
|
||||
var interfaceTemplate4 = `
|
||||
$.type|public$Expansion
|
||||
}
|
||||
`
|
||||
|
@ -49,6 +49,8 @@ type ScaleStatus struct {
|
||||
Selector map[string]string `json:"selector,omitempty"`
|
||||
}
|
||||
|
||||
// +genclient=true,noMethods=true
|
||||
|
||||
// represents a scaling request for a resource.
|
||||
type Scale struct {
|
||||
unversioned.TypeMeta `json:",inline"`
|
||||
|
@ -28,6 +28,7 @@ type ExtensionsInterface interface {
|
||||
HorizontalPodAutoscalersGetter
|
||||
IngressesGetter
|
||||
JobsGetter
|
||||
ScalesGetter
|
||||
ThirdPartyResourcesGetter
|
||||
}
|
||||
|
||||
@ -56,6 +57,10 @@ func (c *ExtensionsClient) Jobs(namespace string) JobInterface {
|
||||
return newJobs(c, namespace)
|
||||
}
|
||||
|
||||
func (c *ExtensionsClient) Scales(namespace string) ScaleInterface {
|
||||
return newScales(c, namespace)
|
||||
}
|
||||
|
||||
func (c *ExtensionsClient) ThirdPartyResources(namespace string) ThirdPartyResourceInterface {
|
||||
return newThirdPartyResources(c, namespace)
|
||||
}
|
||||
|
@ -26,4 +26,6 @@ type IngressExpansion interface{}
|
||||
|
||||
type JobExpansion interface{}
|
||||
|
||||
type ScaleExpansion interface{}
|
||||
|
||||
type ThirdPartyResourceExpansion interface{}
|
||||
|
42
pkg/client/typed/generated/extensions/unversioned/scale.go
Normal file
42
pkg/client/typed/generated/extensions/unversioned/scale.go
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package unversioned
|
||||
|
||||
// ScalesGetter has a method to return a ScaleInterface.
|
||||
// A group's client should implement this interface.
|
||||
type ScalesGetter interface {
|
||||
Scales(namespace string) ScaleInterface
|
||||
}
|
||||
|
||||
// ScaleInterface has methods to work with Scale resources.
|
||||
type ScaleInterface interface {
|
||||
ScaleExpansion
|
||||
}
|
||||
|
||||
// scales implements ScaleInterface
|
||||
type scales struct {
|
||||
client *ExtensionsClient
|
||||
ns string
|
||||
}
|
||||
|
||||
// newScales returns a Scales
|
||||
func newScales(c *ExtensionsClient, namespace string) *scales {
|
||||
return &scales{
|
||||
client: c,
|
||||
ns: namespace,
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user