mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 14:07:14 +00:00
Merge pull request #60445 from oracle/for/upstream/master/60444
Automatic merge from submit-queue (batch tested with PRs 63291, 63490, 60445, 63507, 63524). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Fixes fake client generation for non-namespaced subresources **What this PR does / why we need it**: Fixes code generation for non-namespaced subresources fake clients. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes #60444 **Special notes for your reviewer**: **Release note**: ```dev-release-note Fixes fake client generation for non-namespaced subresources ``` /cc @mfojtik @liggitt I'm not sure the best way to add tests for this. Any pointers?
This commit is contained in:
commit
8203d35ea8
@ -58,6 +58,16 @@ func NewGetSubresourceAction(resource schema.GroupVersionResource, namespace, su
|
|||||||
return action
|
return action
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewRootGetSubresourceAction(resource schema.GroupVersionResource, subresource, name string) GetActionImpl {
|
||||||
|
action := GetActionImpl{}
|
||||||
|
action.Verb = "get"
|
||||||
|
action.Resource = resource
|
||||||
|
action.Subresource = subresource
|
||||||
|
action.Name = name
|
||||||
|
|
||||||
|
return action
|
||||||
|
}
|
||||||
|
|
||||||
func NewRootListAction(resource schema.GroupVersionResource, kind schema.GroupVersionKind, opts interface{}) ListActionImpl {
|
func NewRootListAction(resource schema.GroupVersionResource, kind schema.GroupVersionKind, opts interface{}) ListActionImpl {
|
||||||
action := ListActionImpl{}
|
action := ListActionImpl{}
|
||||||
action.Verb = "list"
|
action.Verb = "list"
|
||||||
@ -81,20 +91,6 @@ func NewListAction(resource schema.GroupVersionResource, kind schema.GroupVersio
|
|||||||
return action
|
return action
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewListSubresourceAction(resource schema.GroupVersionResource, name, subresource string, kind schema.GroupVersionKind, namespace string, opts interface{}) ListActionImpl {
|
|
||||||
action := ListActionImpl{}
|
|
||||||
action.Verb = "list"
|
|
||||||
action.Resource = resource
|
|
||||||
action.Subresource = subresource
|
|
||||||
action.Kind = kind
|
|
||||||
action.Namespace = namespace
|
|
||||||
action.Name = name
|
|
||||||
labelSelector, fieldSelector, _ := ExtractFromListOptions(opts)
|
|
||||||
action.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}
|
|
||||||
|
|
||||||
return action
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewRootCreateAction(resource schema.GroupVersionResource, object runtime.Object) CreateActionImpl {
|
func NewRootCreateAction(resource schema.GroupVersionResource, object runtime.Object) CreateActionImpl {
|
||||||
action := CreateActionImpl{}
|
action := CreateActionImpl{}
|
||||||
action.Verb = "create"
|
action.Verb = "create"
|
||||||
@ -114,12 +110,23 @@ func NewCreateAction(resource schema.GroupVersionResource, namespace string, obj
|
|||||||
return action
|
return action
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource string, namespace string, object runtime.Object) CreateActionImpl {
|
func NewRootCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource string, object runtime.Object) CreateActionImpl {
|
||||||
action := CreateActionImpl{}
|
action := CreateActionImpl{}
|
||||||
action.Verb = "create"
|
action.Verb = "create"
|
||||||
action.Resource = resource
|
action.Resource = resource
|
||||||
action.Subresource = subresource
|
action.Subresource = subresource
|
||||||
|
action.Name = name
|
||||||
|
action.Object = object
|
||||||
|
|
||||||
|
return action
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource, namespace string, object runtime.Object) CreateActionImpl {
|
||||||
|
action := CreateActionImpl{}
|
||||||
|
action.Verb = "create"
|
||||||
|
action.Resource = resource
|
||||||
action.Namespace = namespace
|
action.Namespace = namespace
|
||||||
|
action.Subresource = subresource
|
||||||
action.Name = name
|
action.Name = name
|
||||||
action.Object = object
|
action.Object = object
|
||||||
|
|
||||||
|
@ -45,3 +45,30 @@ type TestTypeList struct {
|
|||||||
type TestTypeStatus struct {
|
type TestTypeStatus struct {
|
||||||
Blah string
|
Blah string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// +genclient:nonNamespaced
|
||||||
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
|
type ClusterTestTypeList struct {
|
||||||
|
metav1.TypeMeta
|
||||||
|
metav1.ListMeta
|
||||||
|
Items []ClusterTestType
|
||||||
|
}
|
||||||
|
|
||||||
|
// +genclient
|
||||||
|
// +genclient:nonNamespaced
|
||||||
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
|
||||||
|
// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/kubernetes/pkg/apis/autoscaling.Scale,result=k8s.io/kubernetes/pkg/apis/autoscaling.Scale
|
||||||
|
|
||||||
|
type ClusterTestType struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
// +optional
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||||
|
// +optional
|
||||||
|
Status ClusterTestTypeStatus `json:"status,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ClusterTestTypeStatus struct {
|
||||||
|
Blah string
|
||||||
|
}
|
||||||
|
@ -24,6 +24,82 @@ import (
|
|||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ClusterTestType) DeepCopyInto(out *ClusterTestType) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||||
|
out.Status = in.Status
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTestType.
|
||||||
|
func (in *ClusterTestType) DeepCopy() *ClusterTestType {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ClusterTestType)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *ClusterTestType) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ClusterTestTypeList) DeepCopyInto(out *ClusterTestTypeList) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
out.ListMeta = in.ListMeta
|
||||||
|
if in.Items != nil {
|
||||||
|
in, out := &in.Items, &out.Items
|
||||||
|
*out = make([]ClusterTestType, len(*in))
|
||||||
|
for i := range *in {
|
||||||
|
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTestTypeList.
|
||||||
|
func (in *ClusterTestTypeList) DeepCopy() *ClusterTestTypeList {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ClusterTestTypeList)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *ClusterTestTypeList) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ClusterTestTypeStatus) DeepCopyInto(out *ClusterTestTypeStatus) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTestTypeStatus.
|
||||||
|
func (in *ClusterTestTypeStatus) DeepCopy() *ClusterTestTypeStatus {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ClusterTestTypeStatus)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *TestType) DeepCopyInto(out *TestType) {
|
func (in *TestType) DeepCopyInto(out *TestType) {
|
||||||
*out = *in
|
*out = *in
|
||||||
|
@ -0,0 +1,193 @@
|
|||||||
|
/*
|
||||||
|
Copyright The Kubernetes Authors.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1
|
||||||
|
|
||||||
|
import (
|
||||||
|
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
rest "k8s.io/client-go/rest"
|
||||||
|
v1 "k8s.io/code-generator/_examples/crd/apis/example/v1"
|
||||||
|
scheme "k8s.io/code-generator/_examples/crd/clientset/versioned/scheme"
|
||||||
|
autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ClusterTestTypesGetter has a method to return a ClusterTestTypeInterface.
|
||||||
|
// A group's client should implement this interface.
|
||||||
|
type ClusterTestTypesGetter interface {
|
||||||
|
ClusterTestTypes() ClusterTestTypeInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
// ClusterTestTypeInterface has methods to work with ClusterTestType resources.
|
||||||
|
type ClusterTestTypeInterface interface {
|
||||||
|
Create(*v1.ClusterTestType) (*v1.ClusterTestType, error)
|
||||||
|
Update(*v1.ClusterTestType) (*v1.ClusterTestType, error)
|
||||||
|
UpdateStatus(*v1.ClusterTestType) (*v1.ClusterTestType, error)
|
||||||
|
Delete(name string, options *meta_v1.DeleteOptions) error
|
||||||
|
DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error
|
||||||
|
Get(name string, options meta_v1.GetOptions) (*v1.ClusterTestType, error)
|
||||||
|
List(opts meta_v1.ListOptions) (*v1.ClusterTestTypeList, error)
|
||||||
|
Watch(opts meta_v1.ListOptions) (watch.Interface, error)
|
||||||
|
Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterTestType, err error)
|
||||||
|
GetScale(clusterTestTypeName string, options meta_v1.GetOptions) (*autoscaling.Scale, error)
|
||||||
|
UpdateScale(clusterTestTypeName string, scale *autoscaling.Scale) (*autoscaling.Scale, error)
|
||||||
|
|
||||||
|
ClusterTestTypeExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// clusterTestTypes implements ClusterTestTypeInterface
|
||||||
|
type clusterTestTypes struct {
|
||||||
|
client rest.Interface
|
||||||
|
}
|
||||||
|
|
||||||
|
// newClusterTestTypes returns a ClusterTestTypes
|
||||||
|
func newClusterTestTypes(c *ExampleV1Client) *clusterTestTypes {
|
||||||
|
return &clusterTestTypes{
|
||||||
|
client: c.RESTClient(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get takes name of the clusterTestType, and returns the corresponding clusterTestType object, and an error if there is any.
|
||||||
|
func (c *clusterTestTypes) Get(name string, options meta_v1.GetOptions) (result *v1.ClusterTestType, err error) {
|
||||||
|
result = &v1.ClusterTestType{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
Name(name).
|
||||||
|
VersionedParams(&options, scheme.ParameterCodec).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of ClusterTestTypes that match those selectors.
|
||||||
|
func (c *clusterTestTypes) List(opts meta_v1.ListOptions) (result *v1.ClusterTestTypeList, err error) {
|
||||||
|
result = &v1.ClusterTestTypeList{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested clusterTestTypes.
|
||||||
|
func (c *clusterTestTypes) Watch(opts meta_v1.ListOptions) (watch.Interface, error) {
|
||||||
|
opts.Watch = true
|
||||||
|
return c.client.Get().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
VersionedParams(&opts, scheme.ParameterCodec).
|
||||||
|
Watch()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a clusterTestType and creates it. Returns the server's representation of the clusterTestType, and an error, if there is any.
|
||||||
|
func (c *clusterTestTypes) Create(clusterTestType *v1.ClusterTestType) (result *v1.ClusterTestType, err error) {
|
||||||
|
result = &v1.ClusterTestType{}
|
||||||
|
err = c.client.Post().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
Body(clusterTestType).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a clusterTestType and updates it. Returns the server's representation of the clusterTestType, and an error, if there is any.
|
||||||
|
func (c *clusterTestTypes) Update(clusterTestType *v1.ClusterTestType) (result *v1.ClusterTestType, err error) {
|
||||||
|
result = &v1.ClusterTestType{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
Name(clusterTestType.Name).
|
||||||
|
Body(clusterTestType).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
|
||||||
|
func (c *clusterTestTypes) UpdateStatus(clusterTestType *v1.ClusterTestType) (result *v1.ClusterTestType, err error) {
|
||||||
|
result = &v1.ClusterTestType{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
Name(clusterTestType.Name).
|
||||||
|
SubResource("status").
|
||||||
|
Body(clusterTestType).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the clusterTestType and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *clusterTestTypes) Delete(name string, options *meta_v1.DeleteOptions) error {
|
||||||
|
return c.client.Delete().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
Name(name).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *clusterTestTypes) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error {
|
||||||
|
return c.client.Delete().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
VersionedParams(&listOptions, scheme.ParameterCodec).
|
||||||
|
Body(options).
|
||||||
|
Do().
|
||||||
|
Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched clusterTestType.
|
||||||
|
func (c *clusterTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterTestType, err error) {
|
||||||
|
result = &v1.ClusterTestType{}
|
||||||
|
err = c.client.Patch(pt).
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
SubResource(subresources...).
|
||||||
|
Name(name).
|
||||||
|
Body(data).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetScale takes name of the clusterTestType, and returns the corresponding autoscaling.Scale object, and an error if there is any.
|
||||||
|
func (c *clusterTestTypes) GetScale(clusterTestTypeName string, options meta_v1.GetOptions) (result *autoscaling.Scale, err error) {
|
||||||
|
result = &autoscaling.Scale{}
|
||||||
|
err = c.client.Get().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
Name(clusterTestTypeName).
|
||||||
|
SubResource("scale").
|
||||||
|
VersionedParams(&options, scheme.ParameterCodec).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.
|
||||||
|
func (c *clusterTestTypes) UpdateScale(clusterTestTypeName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) {
|
||||||
|
result = &autoscaling.Scale{}
|
||||||
|
err = c.client.Put().
|
||||||
|
Resource("clustertesttypes").
|
||||||
|
Name(clusterTestTypeName).
|
||||||
|
SubResource("scale").
|
||||||
|
Body(scale).
|
||||||
|
Do().
|
||||||
|
Into(result)
|
||||||
|
return
|
||||||
|
}
|
@ -27,6 +27,7 @@ import (
|
|||||||
|
|
||||||
type ExampleV1Interface interface {
|
type ExampleV1Interface interface {
|
||||||
RESTClient() rest.Interface
|
RESTClient() rest.Interface
|
||||||
|
ClusterTestTypesGetter
|
||||||
TestTypesGetter
|
TestTypesGetter
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,6 +36,10 @@ type ExampleV1Client struct {
|
|||||||
restClient rest.Interface
|
restClient rest.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ExampleV1Client) ClusterTestTypes() ClusterTestTypeInterface {
|
||||||
|
return newClusterTestTypes(c)
|
||||||
|
}
|
||||||
|
|
||||||
func (c *ExampleV1Client) TestTypes(namespace string) TestTypeInterface {
|
func (c *ExampleV1Client) TestTypes(namespace string) TestTypeInterface {
|
||||||
return newTestTypes(c, namespace)
|
return newTestTypes(c, namespace)
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,152 @@
|
|||||||
|
/*
|
||||||
|
Copyright The Kubernetes Authors.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by client-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package fake
|
||||||
|
|
||||||
|
import (
|
||||||
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
labels "k8s.io/apimachinery/pkg/labels"
|
||||||
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
types "k8s.io/apimachinery/pkg/types"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
testing "k8s.io/client-go/testing"
|
||||||
|
example_v1 "k8s.io/code-generator/_examples/crd/apis/example/v1"
|
||||||
|
autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FakeClusterTestTypes implements ClusterTestTypeInterface
|
||||||
|
type FakeClusterTestTypes struct {
|
||||||
|
Fake *FakeExampleV1
|
||||||
|
}
|
||||||
|
|
||||||
|
var clustertesttypesResource = schema.GroupVersionResource{Group: "example.crd.code-generator.k8s.io", Version: "v1", Resource: "clustertesttypes"}
|
||||||
|
|
||||||
|
var clustertesttypesKind = schema.GroupVersionKind{Group: "example.crd.code-generator.k8s.io", Version: "v1", Kind: "ClusterTestType"}
|
||||||
|
|
||||||
|
// Get takes name of the clusterTestType, and returns the corresponding clusterTestType object, and an error if there is any.
|
||||||
|
func (c *FakeClusterTestTypes) Get(name string, options v1.GetOptions) (result *example_v1.ClusterTestType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootGetAction(clustertesttypesResource, name), &example_v1.ClusterTestType{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*example_v1.ClusterTestType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// List takes label and field selectors, and returns the list of ClusterTestTypes that match those selectors.
|
||||||
|
func (c *FakeClusterTestTypes) List(opts v1.ListOptions) (result *example_v1.ClusterTestTypeList, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootListAction(clustertesttypesResource, clustertesttypesKind, opts), &example_v1.ClusterTestTypeList{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
label, _, _ := testing.ExtractFromListOptions(opts)
|
||||||
|
if label == nil {
|
||||||
|
label = labels.Everything()
|
||||||
|
}
|
||||||
|
list := &example_v1.ClusterTestTypeList{}
|
||||||
|
for _, item := range obj.(*example_v1.ClusterTestTypeList).Items {
|
||||||
|
if label.Matches(labels.Set(item.Labels)) {
|
||||||
|
list.Items = append(list.Items, item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Watch returns a watch.Interface that watches the requested clusterTestTypes.
|
||||||
|
func (c *FakeClusterTestTypes) Watch(opts v1.ListOptions) (watch.Interface, error) {
|
||||||
|
return c.Fake.
|
||||||
|
InvokesWatch(testing.NewRootWatchAction(clustertesttypesResource, opts))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create takes the representation of a clusterTestType and creates it. Returns the server's representation of the clusterTestType, and an error, if there is any.
|
||||||
|
func (c *FakeClusterTestTypes) Create(clusterTestType *example_v1.ClusterTestType) (result *example_v1.ClusterTestType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootCreateAction(clustertesttypesResource, clusterTestType), &example_v1.ClusterTestType{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*example_v1.ClusterTestType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update takes the representation of a clusterTestType and updates it. Returns the server's representation of the clusterTestType, and an error, if there is any.
|
||||||
|
func (c *FakeClusterTestTypes) Update(clusterTestType *example_v1.ClusterTestType) (result *example_v1.ClusterTestType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootUpdateAction(clustertesttypesResource, clusterTestType), &example_v1.ClusterTestType{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*example_v1.ClusterTestType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateStatus was generated because the type contains a Status member.
|
||||||
|
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||||
|
func (c *FakeClusterTestTypes) UpdateStatus(clusterTestType *example_v1.ClusterTestType) (*example_v1.ClusterTestType, error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootUpdateSubresourceAction(clustertesttypesResource, "status", clusterTestType), &example_v1.ClusterTestType{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*example_v1.ClusterTestType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete takes name of the clusterTestType and deletes it. Returns an error if one occurs.
|
||||||
|
func (c *FakeClusterTestTypes) Delete(name string, options *v1.DeleteOptions) error {
|
||||||
|
_, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootDeleteAction(clustertesttypesResource, name), &example_v1.ClusterTestType{})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCollection deletes a collection of objects.
|
||||||
|
func (c *FakeClusterTestTypes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error {
|
||||||
|
action := testing.NewRootDeleteCollectionAction(clustertesttypesResource, listOptions)
|
||||||
|
|
||||||
|
_, err := c.Fake.Invokes(action, &example_v1.ClusterTestTypeList{})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch applies the patch and returns the patched clusterTestType.
|
||||||
|
func (c *FakeClusterTestTypes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *example_v1.ClusterTestType, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootPatchSubresourceAction(clustertesttypesResource, name, data, subresources...), &example_v1.ClusterTestType{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*example_v1.ClusterTestType), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetScale takes name of the clusterTestType, and returns the corresponding scale object, and an error if there is any.
|
||||||
|
func (c *FakeClusterTestTypes) GetScale(clusterTestTypeName string, options v1.GetOptions) (result *autoscaling.Scale, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootGetSubresourceAction(clustertesttypesResource, clusterTestTypeName), &autoscaling.Scale{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*autoscaling.Scale), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.
|
||||||
|
func (c *FakeClusterTestTypes) UpdateScale(clusterTestTypeName string, scale *autoscaling.Scale) (result *autoscaling.Scale, err error) {
|
||||||
|
obj, err := c.Fake.
|
||||||
|
Invokes(testing.NewRootUpdateSubresourceAction(clustertesttypesResource, "scale", scale), &autoscaling.Scale{})
|
||||||
|
if obj == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return obj.(*autoscaling.Scale), err
|
||||||
|
}
|
@ -28,6 +28,10 @@ type FakeExampleV1 struct {
|
|||||||
*testing.Fake
|
*testing.Fake
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *FakeExampleV1) ClusterTestTypes() v1.ClusterTestTypeInterface {
|
||||||
|
return &FakeClusterTestTypes{c}
|
||||||
|
}
|
||||||
|
|
||||||
func (c *FakeExampleV1) TestTypes(namespace string) v1.TestTypeInterface {
|
func (c *FakeExampleV1) TestTypes(namespace string) v1.TestTypeInterface {
|
||||||
return &FakeTestTypes{c, namespace}
|
return &FakeTestTypes{c, namespace}
|
||||||
}
|
}
|
||||||
|
@ -18,4 +18,6 @@ limitations under the License.
|
|||||||
|
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
|
type ClusterTestTypeExpansion interface{}
|
||||||
|
|
||||||
type TestTypeExpansion interface{}
|
type TestTypeExpansion interface{}
|
||||||
|
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
Copyright The Kubernetes Authors.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by informer-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1
|
||||||
|
|
||||||
|
import (
|
||||||
|
time "time"
|
||||||
|
|
||||||
|
meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
watch "k8s.io/apimachinery/pkg/watch"
|
||||||
|
cache "k8s.io/client-go/tools/cache"
|
||||||
|
example_v1 "k8s.io/code-generator/_examples/crd/apis/example/v1"
|
||||||
|
versioned "k8s.io/code-generator/_examples/crd/clientset/versioned"
|
||||||
|
internalinterfaces "k8s.io/code-generator/_examples/crd/informers/externalversions/internalinterfaces"
|
||||||
|
v1 "k8s.io/code-generator/_examples/crd/listers/example/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ClusterTestTypeInformer provides access to a shared informer and lister for
|
||||||
|
// ClusterTestTypes.
|
||||||
|
type ClusterTestTypeInformer interface {
|
||||||
|
Informer() cache.SharedIndexInformer
|
||||||
|
Lister() v1.ClusterTestTypeLister
|
||||||
|
}
|
||||||
|
|
||||||
|
type clusterTestTypeInformer struct {
|
||||||
|
factory internalinterfaces.SharedInformerFactory
|
||||||
|
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewClusterTestTypeInformer constructs a new informer for ClusterTestType type.
|
||||||
|
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||||
|
// one. This reduces memory footprint and number of connections to the server.
|
||||||
|
func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||||
|
return NewFilteredClusterTestTypeInformer(client, resyncPeriod, indexers, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewFilteredClusterTestTypeInformer constructs a new informer for ClusterTestType type.
|
||||||
|
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||||
|
// one. This reduces memory footprint and number of connections to the server.
|
||||||
|
func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||||
|
return cache.NewSharedIndexInformer(
|
||||||
|
&cache.ListWatch{
|
||||||
|
ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) {
|
||||||
|
if tweakListOptions != nil {
|
||||||
|
tweakListOptions(&options)
|
||||||
|
}
|
||||||
|
return client.ExampleV1().ClusterTestTypes().List(options)
|
||||||
|
},
|
||||||
|
WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) {
|
||||||
|
if tweakListOptions != nil {
|
||||||
|
tweakListOptions(&options)
|
||||||
|
}
|
||||||
|
return client.ExampleV1().ClusterTestTypes().Watch(options)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
&example_v1.ClusterTestType{},
|
||||||
|
resyncPeriod,
|
||||||
|
indexers,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *clusterTestTypeInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||||
|
return NewFilteredClusterTestTypeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *clusterTestTypeInformer) Informer() cache.SharedIndexInformer {
|
||||||
|
return f.factory.InformerFor(&example_v1.ClusterTestType{}, f.defaultInformer)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *clusterTestTypeInformer) Lister() v1.ClusterTestTypeLister {
|
||||||
|
return v1.NewClusterTestTypeLister(f.Informer().GetIndexer())
|
||||||
|
}
|
@ -24,6 +24,8 @@ import (
|
|||||||
|
|
||||||
// Interface provides access to all the informers in this group version.
|
// Interface provides access to all the informers in this group version.
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
|
// ClusterTestTypes returns a ClusterTestTypeInformer.
|
||||||
|
ClusterTestTypes() ClusterTestTypeInformer
|
||||||
// TestTypes returns a TestTypeInformer.
|
// TestTypes returns a TestTypeInformer.
|
||||||
TestTypes() TestTypeInformer
|
TestTypes() TestTypeInformer
|
||||||
}
|
}
|
||||||
@ -39,6 +41,11 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList
|
|||||||
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClusterTestTypes returns a ClusterTestTypeInformer.
|
||||||
|
func (v *version) ClusterTestTypes() ClusterTestTypeInformer {
|
||||||
|
return &clusterTestTypeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}
|
||||||
|
}
|
||||||
|
|
||||||
// TestTypes returns a TestTypeInformer.
|
// TestTypes returns a TestTypeInformer.
|
||||||
func (v *version) TestTypes() TestTypeInformer {
|
func (v *version) TestTypes() TestTypeInformer {
|
||||||
return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
return &testTypeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||||
|
@ -54,6 +54,8 @@ func (f *genericInformer) Lister() cache.GenericLister {
|
|||||||
func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
|
func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
|
||||||
switch resource {
|
switch resource {
|
||||||
// Group=example.crd.code-generator.k8s.io, Version=v1
|
// Group=example.crd.code-generator.k8s.io, Version=v1
|
||||||
|
case v1.SchemeGroupVersion.WithResource("clustertesttypes"):
|
||||||
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Example().V1().ClusterTestTypes().Informer()}, nil
|
||||||
case v1.SchemeGroupVersion.WithResource("testtypes"):
|
case v1.SchemeGroupVersion.WithResource("testtypes"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.Example().V1().TestTypes().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.Example().V1().TestTypes().Informer()}, nil
|
||||||
|
|
||||||
|
@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
Copyright The Kubernetes Authors.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by lister-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
|
"k8s.io/client-go/tools/cache"
|
||||||
|
v1 "k8s.io/code-generator/_examples/crd/apis/example/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ClusterTestTypeLister helps list ClusterTestTypes.
|
||||||
|
type ClusterTestTypeLister interface {
|
||||||
|
// List lists all ClusterTestTypes in the indexer.
|
||||||
|
List(selector labels.Selector) (ret []*v1.ClusterTestType, err error)
|
||||||
|
// Get retrieves the ClusterTestType from the index for a given name.
|
||||||
|
Get(name string) (*v1.ClusterTestType, error)
|
||||||
|
ClusterTestTypeListerExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
// clusterTestTypeLister implements the ClusterTestTypeLister interface.
|
||||||
|
type clusterTestTypeLister struct {
|
||||||
|
indexer cache.Indexer
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewClusterTestTypeLister returns a new ClusterTestTypeLister.
|
||||||
|
func NewClusterTestTypeLister(indexer cache.Indexer) ClusterTestTypeLister {
|
||||||
|
return &clusterTestTypeLister{indexer: indexer}
|
||||||
|
}
|
||||||
|
|
||||||
|
// List lists all ClusterTestTypes in the indexer.
|
||||||
|
func (s *clusterTestTypeLister) List(selector labels.Selector) (ret []*v1.ClusterTestType, err error) {
|
||||||
|
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
|
||||||
|
ret = append(ret, m.(*v1.ClusterTestType))
|
||||||
|
})
|
||||||
|
return ret, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get retrieves the ClusterTestType from the index for a given name.
|
||||||
|
func (s *clusterTestTypeLister) Get(name string) (*v1.ClusterTestType, error) {
|
||||||
|
obj, exists, err := s.indexer.GetByKey(name)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if !exists {
|
||||||
|
return nil, errors.NewNotFound(v1.Resource("clustertesttype"), name)
|
||||||
|
}
|
||||||
|
return obj.(*v1.ClusterTestType), nil
|
||||||
|
}
|
@ -18,6 +18,10 @@ limitations under the License.
|
|||||||
|
|
||||||
package v1
|
package v1
|
||||||
|
|
||||||
|
// ClusterTestTypeListerExpansion allows custom methods to be added to
|
||||||
|
// ClusterTestTypeLister.
|
||||||
|
type ClusterTestTypeListerExpansion interface{}
|
||||||
|
|
||||||
// TestTypeListerExpansion allows custom methods to be added to
|
// TestTypeListerExpansion allows custom methods to be added to
|
||||||
// TestTypeLister.
|
// TestTypeLister.
|
||||||
type TestTypeListerExpansion interface{}
|
type TestTypeListerExpansion interface{}
|
||||||
|
@ -146,9 +146,10 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
"NewRootWatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootWatchAction"}),
|
"NewRootWatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootWatchAction"}),
|
||||||
"NewWatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewWatchAction"}),
|
"NewWatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewWatchAction"}),
|
||||||
"NewCreateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewCreateSubresourceAction"}),
|
"NewCreateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewCreateSubresourceAction"}),
|
||||||
|
"NewRootCreateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootCreateSubresourceAction"}),
|
||||||
"NewUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewUpdateSubresourceAction"}),
|
"NewUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewUpdateSubresourceAction"}),
|
||||||
"NewGetSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewGetSubresourceAction"}),
|
"NewGetSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewGetSubresourceAction"}),
|
||||||
"NewListSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewListSubresourceAction"}),
|
"NewRootGetSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootGetSubresourceAction"}),
|
||||||
"NewRootUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootUpdateSubresourceAction"}),
|
"NewRootUpdateSubresourceAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootUpdateSubresourceAction"}),
|
||||||
"NewRootPatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootPatchAction"}),
|
"NewRootPatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewRootPatchAction"}),
|
||||||
"NewPatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewPatchAction"}),
|
"NewPatchAction": c.Universe.Function(types.Name{Package: pkgClientGoTesting, Name: "NewPatchAction"}),
|
||||||
@ -235,12 +236,9 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
|
|||||||
}
|
}
|
||||||
|
|
||||||
if e.HasVerb("list") {
|
if e.HasVerb("list") {
|
||||||
if e.IsSubresource() {
|
|
||||||
sw.Do(adjustTemplate(e.VerbName, e.VerbType, listSubresourceTemplate), m)
|
|
||||||
} else {
|
|
||||||
sw.Do(adjustTemplate(e.VerbName, e.VerbType, listTemplate), m)
|
sw.Do(adjustTemplate(e.VerbName, e.VerbType, listTemplate), m)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Figure out schemantic for watching a sub-resource.
|
// TODO: Figure out schemantic for watching a sub-resource.
|
||||||
if e.HasVerb("watch") {
|
if e.HasVerb("watch") {
|
||||||
@ -322,19 +320,6 @@ func (c *Fake$.type|publicPlural$) List(opts $.ListOptions|raw$) (result *$.type
|
|||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
var listSubresourceTemplate = `
|
|
||||||
// List takes label and field selectors, and returns the list of $.resultType|publicPlural$ that match those selectors.
|
|
||||||
func (c *Fake$.type|publicPlural$) List($.type|private$Name string, opts $.ListOptions|raw$) (result *$.resultType|raw$List, err error) {
|
|
||||||
obj, err := c.Fake.
|
|
||||||
$if .namespaced$Invokes($.NewListSubresourceAction|raw$($.type|allLowercasePlural$Resource, $.type|private$Name, "$.subresourcePath$", $.type|allLowercasePlural$Kind, c.ns, opts), &$.resultType|raw$List{})
|
|
||||||
$else$Invokes($.NewRootListAction|raw$($.type|allLowercasePlural$Resource, $.type|allLowercasePlural$Kind, opts), &$.resultType|raw$List{})$end$
|
|
||||||
if obj == nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return obj.(*$.resultType|raw$List), err
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
||||||
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(opts $.ListOptions|raw$) (result *$.type|raw$List, err error) {
|
func (c *Fake$.type|publicPlural$) List(opts $.ListOptions|raw$) (result *$.type|raw$List, err error) {
|
||||||
@ -377,7 +362,7 @@ var getSubresourceTemplate = `
|
|||||||
func (c *Fake$.type|publicPlural$) Get($.type|private$Name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Get($.type|private$Name string, options $.GetOptions|raw$) (result *$.resultType|raw$, err error) {
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewGetSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, "$.subresourcePath$", $.type|private$Name), &$.resultType|raw${})
|
$if .namespaced$Invokes($.NewGetSubresourceAction|raw$($.type|allLowercasePlural$Resource, c.ns, "$.subresourcePath$", $.type|private$Name), &$.resultType|raw${})
|
||||||
$else$Invokes($.NewRootGetAction|raw$($.type|allLowercasePlural$Resource, $.type|private$Name), &$.resultType|raw${})$end$
|
$else$Invokes($.NewRootGetSubresourceAction|raw$($.type|allLowercasePlural$Resource, $.type|private$Name), &$.resultType|raw${})$end$
|
||||||
if obj == nil {
|
if obj == nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -423,7 +408,7 @@ var createSubresourceTemplate = `
|
|||||||
func (c *Fake$.type|publicPlural$) Create($.type|private$Name string, $.inputType|private$ *$.inputType|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Create($.type|private$Name string, $.inputType|private$ *$.inputType|raw$) (result *$.resultType|raw$, err error) {
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewCreateSubresourceAction|raw$($.type|allLowercasePlural$Resource, $.type|private$Name, "$.subresourcePath$", c.ns, $.inputType|private$), &$.resultType|raw${})
|
$if .namespaced$Invokes($.NewCreateSubresourceAction|raw$($.type|allLowercasePlural$Resource, $.type|private$Name, "$.subresourcePath$", c.ns, $.inputType|private$), &$.resultType|raw${})
|
||||||
$else$Invokes($.NewRootCreateAction|raw$($.inputType|allLowercasePlural$Resource, $.inputType|private$), &$.resultType|raw${})$end$
|
$else$Invokes($.NewRootCreateSubresourceAction|raw$($.type|allLowercasePlural$Resource, "$.subresourcePath$", $.inputType|private$), &$.resultType|raw${})$end$
|
||||||
if obj == nil {
|
if obj == nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -449,7 +434,7 @@ var updateSubresourceTemplate = `
|
|||||||
func (c *Fake$.type|publicPlural$) Update($.type|private$Name string, $.inputType|private$ *$.inputType|raw$) (result *$.resultType|raw$, err error) {
|
func (c *Fake$.type|publicPlural$) Update($.type|private$Name string, $.inputType|private$ *$.inputType|raw$) (result *$.resultType|raw$, err error) {
|
||||||
obj, err := c.Fake.
|
obj, err := c.Fake.
|
||||||
$if .namespaced$Invokes($.NewUpdateSubresourceAction|raw$($.type|allLowercasePlural$Resource, "$.subresourcePath$", c.ns, $.inputType|private$), &$.inputType|raw${})
|
$if .namespaced$Invokes($.NewUpdateSubresourceAction|raw$($.type|allLowercasePlural$Resource, "$.subresourcePath$", c.ns, $.inputType|private$), &$.inputType|raw${})
|
||||||
$else$Invokes($.NewRootUpdateAction|raw$($.type|allLowercasePlural$Resource, $.type|private$), &$.type|raw${})$end$
|
$else$Invokes($.NewRootUpdateSubresourceAction|raw$($.type|allLowercasePlural$Resource, "$.subresourcePath$", $.inputType|private$), &$.resultType|raw${})$end$
|
||||||
if obj == nil {
|
if obj == nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user