From 3c01d1ab60f040b8ca299407a924ab75c4a4cd1a Mon Sep 17 00:00:00 2001 From: galal-hussein Date: Fri, 3 May 2019 14:50:53 +0200 Subject: [PATCH] go generate --- types/apis/apps/v1/zz_generated_deepcopy.go | 33 ++ .../v1/zz_generated_deployment_controller.go | 441 ++++++++++++++++++ ..._generated_deployment_lifecycle_adapter.go | 63 +++ types/apis/apps/v1/zz_generated_k8s_client.go | 26 +- types/apis/apps/v1/zz_generated_scheme.go | 1 + types/codegen/main.go | 1 + 6 files changed, 562 insertions(+), 3 deletions(-) create mode 100644 types/apis/apps/v1/zz_generated_deployment_controller.go create mode 100644 types/apis/apps/v1/zz_generated_deployment_lifecycle_adapter.go diff --git a/types/apis/apps/v1/zz_generated_deepcopy.go b/types/apis/apps/v1/zz_generated_deepcopy.go index abac36c53f..b58e7eeb71 100644 --- a/types/apis/apps/v1/zz_generated_deepcopy.go +++ b/types/apis/apps/v1/zz_generated_deepcopy.go @@ -37,3 +37,36 @@ func (in *DaemonSetList) DeepCopyObject() runtime.Object { } return nil } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentList) DeepCopyInto(out *DeploymentList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]appsv1.Deployment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList. +func (in *DeploymentList) DeepCopy() *DeploymentList { + if in == nil { + return nil + } + out := new(DeploymentList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DeploymentList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} diff --git a/types/apis/apps/v1/zz_generated_deployment_controller.go b/types/apis/apps/v1/zz_generated_deployment_controller.go new file mode 100644 index 0000000000..3ddb52c204 --- /dev/null +++ b/types/apis/apps/v1/zz_generated_deployment_controller.go @@ -0,0 +1,441 @@ +package v1 + +import ( + "context" + + "github.com/rancher/norman/controller" + "github.com/rancher/norman/objectclient" + v1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" +) + +var ( + DeploymentGroupVersionKind = schema.GroupVersionKind{ + Version: Version, + Group: GroupName, + Kind: "Deployment", + } + DeploymentResource = metav1.APIResource{ + Name: "deployments", + SingularName: "deployment", + Namespaced: true, + + Kind: DeploymentGroupVersionKind.Kind, + } +) + +func NewDeployment(namespace, name string, obj v1.Deployment) *v1.Deployment { + obj.APIVersion, obj.Kind = DeploymentGroupVersionKind.ToAPIVersionAndKind() + obj.Name = name + obj.Namespace = namespace + return &obj +} + +type DeploymentList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []v1.Deployment +} + +type DeploymentHandlerFunc func(key string, obj *v1.Deployment) (runtime.Object, error) + +type DeploymentChangeHandlerFunc func(obj *v1.Deployment) (runtime.Object, error) + +type DeploymentLister interface { + List(namespace string, selector labels.Selector) (ret []*v1.Deployment, err error) + Get(namespace, name string) (*v1.Deployment, error) +} + +type DeploymentController interface { + Generic() controller.GenericController + Informer() cache.SharedIndexInformer + Lister() DeploymentLister + AddHandler(ctx context.Context, name string, handler DeploymentHandlerFunc) + AddClusterScopedHandler(ctx context.Context, name, clusterName string, handler DeploymentHandlerFunc) + Enqueue(namespace, name string) + Sync(ctx context.Context) error + Start(ctx context.Context, threadiness int) error +} + +type DeploymentInterface interface { + ObjectClient() *objectclient.ObjectClient + Create(*v1.Deployment) (*v1.Deployment, error) + GetNamespaced(namespace, name string, opts metav1.GetOptions) (*v1.Deployment, error) + Get(name string, opts metav1.GetOptions) (*v1.Deployment, error) + Update(*v1.Deployment) (*v1.Deployment, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteNamespaced(namespace, name string, options *metav1.DeleteOptions) error + List(opts metav1.ListOptions) (*DeploymentList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) + DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error + Controller() DeploymentController + AddHandler(ctx context.Context, name string, sync DeploymentHandlerFunc) + AddLifecycle(ctx context.Context, name string, lifecycle DeploymentLifecycle) + AddClusterScopedHandler(ctx context.Context, name, clusterName string, sync DeploymentHandlerFunc) + AddClusterScopedLifecycle(ctx context.Context, name, clusterName string, lifecycle DeploymentLifecycle) +} + +type deploymentLister struct { + controller *deploymentController +} + +func (l *deploymentLister) List(namespace string, selector labels.Selector) (ret []*v1.Deployment, err error) { + err = cache.ListAllByNamespace(l.controller.Informer().GetIndexer(), namespace, selector, func(obj interface{}) { + ret = append(ret, obj.(*v1.Deployment)) + }) + return +} + +func (l *deploymentLister) Get(namespace, name string) (*v1.Deployment, error) { + var key string + if namespace != "" { + key = namespace + "/" + name + } else { + key = name + } + obj, exists, err := l.controller.Informer().GetIndexer().GetByKey(key) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(schema.GroupResource{ + Group: DeploymentGroupVersionKind.Group, + Resource: "deployment", + }, key) + } + return obj.(*v1.Deployment), nil +} + +type deploymentController struct { + controller.GenericController +} + +func (c *deploymentController) Generic() controller.GenericController { + return c.GenericController +} + +func (c *deploymentController) Lister() DeploymentLister { + return &deploymentLister{ + controller: c, + } +} + +func (c *deploymentController) AddHandler(ctx context.Context, name string, handler DeploymentHandlerFunc) { + c.GenericController.AddHandler(ctx, name, func(key string, obj interface{}) (interface{}, error) { + if obj == nil { + return handler(key, nil) + } else if v, ok := obj.(*v1.Deployment); ok { + return handler(key, v) + } else { + return nil, nil + } + }) +} + +func (c *deploymentController) AddClusterScopedHandler(ctx context.Context, name, cluster string, handler DeploymentHandlerFunc) { + c.GenericController.AddHandler(ctx, name, func(key string, obj interface{}) (interface{}, error) { + if obj == nil { + return handler(key, nil) + } else if v, ok := obj.(*v1.Deployment); ok && controller.ObjectInCluster(cluster, obj) { + return handler(key, v) + } else { + return nil, nil + } + }) +} + +type deploymentFactory struct { +} + +func (c deploymentFactory) Object() runtime.Object { + return &v1.Deployment{} +} + +func (c deploymentFactory) List() runtime.Object { + return &DeploymentList{} +} + +func (s *deploymentClient) Controller() DeploymentController { + s.client.Lock() + defer s.client.Unlock() + + c, ok := s.client.deploymentControllers[s.ns] + if ok { + return c + } + + genericController := controller.NewGenericController(DeploymentGroupVersionKind.Kind+"Controller", + s.objectClient) + + c = &deploymentController{ + GenericController: genericController, + } + + s.client.deploymentControllers[s.ns] = c + s.client.starters = append(s.client.starters, c) + + return c +} + +type deploymentClient struct { + client *Client + ns string + objectClient *objectclient.ObjectClient + controller DeploymentController +} + +func (s *deploymentClient) ObjectClient() *objectclient.ObjectClient { + return s.objectClient +} + +func (s *deploymentClient) Create(o *v1.Deployment) (*v1.Deployment, error) { + obj, err := s.objectClient.Create(o) + return obj.(*v1.Deployment), err +} + +func (s *deploymentClient) Get(name string, opts metav1.GetOptions) (*v1.Deployment, error) { + obj, err := s.objectClient.Get(name, opts) + return obj.(*v1.Deployment), err +} + +func (s *deploymentClient) GetNamespaced(namespace, name string, opts metav1.GetOptions) (*v1.Deployment, error) { + obj, err := s.objectClient.GetNamespaced(namespace, name, opts) + return obj.(*v1.Deployment), err +} + +func (s *deploymentClient) Update(o *v1.Deployment) (*v1.Deployment, error) { + obj, err := s.objectClient.Update(o.Name, o) + return obj.(*v1.Deployment), err +} + +func (s *deploymentClient) Delete(name string, options *metav1.DeleteOptions) error { + return s.objectClient.Delete(name, options) +} + +func (s *deploymentClient) DeleteNamespaced(namespace, name string, options *metav1.DeleteOptions) error { + return s.objectClient.DeleteNamespaced(namespace, name, options) +} + +func (s *deploymentClient) List(opts metav1.ListOptions) (*DeploymentList, error) { + obj, err := s.objectClient.List(opts) + return obj.(*DeploymentList), err +} + +func (s *deploymentClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { + return s.objectClient.Watch(opts) +} + +// Patch applies the patch and returns the patched deployment. +func (s *deploymentClient) Patch(o *v1.Deployment, patchType types.PatchType, data []byte, subresources ...string) (*v1.Deployment, error) { + obj, err := s.objectClient.Patch(o.Name, o, patchType, data, subresources...) + return obj.(*v1.Deployment), err +} + +func (s *deploymentClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error { + return s.objectClient.DeleteCollection(deleteOpts, listOpts) +} + +func (s *deploymentClient) AddHandler(ctx context.Context, name string, sync DeploymentHandlerFunc) { + s.Controller().AddHandler(ctx, name, sync) +} + +func (s *deploymentClient) AddLifecycle(ctx context.Context, name string, lifecycle DeploymentLifecycle) { + sync := NewDeploymentLifecycleAdapter(name, false, s, lifecycle) + s.Controller().AddHandler(ctx, name, sync) +} + +func (s *deploymentClient) AddClusterScopedHandler(ctx context.Context, name, clusterName string, sync DeploymentHandlerFunc) { + s.Controller().AddClusterScopedHandler(ctx, name, clusterName, sync) +} + +func (s *deploymentClient) AddClusterScopedLifecycle(ctx context.Context, name, clusterName string, lifecycle DeploymentLifecycle) { + sync := NewDeploymentLifecycleAdapter(name+"_"+clusterName, true, s, lifecycle) + s.Controller().AddClusterScopedHandler(ctx, name, clusterName, sync) +} + +type DeploymentIndexer func(obj *v1.Deployment) ([]string, error) + +type DeploymentClientCache interface { + Get(namespace, name string) (*v1.Deployment, error) + List(namespace string, selector labels.Selector) ([]*v1.Deployment, error) + + Index(name string, indexer DeploymentIndexer) + GetIndexed(name, key string) ([]*v1.Deployment, error) +} + +type DeploymentClient interface { + Create(*v1.Deployment) (*v1.Deployment, error) + Get(namespace, name string, opts metav1.GetOptions) (*v1.Deployment, error) + Update(*v1.Deployment) (*v1.Deployment, error) + Delete(namespace, name string, options *metav1.DeleteOptions) error + List(namespace string, opts metav1.ListOptions) (*DeploymentList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) + + Cache() DeploymentClientCache + + OnCreate(ctx context.Context, name string, sync DeploymentChangeHandlerFunc) + OnChange(ctx context.Context, name string, sync DeploymentChangeHandlerFunc) + OnRemove(ctx context.Context, name string, sync DeploymentChangeHandlerFunc) + Enqueue(namespace, name string) + + Generic() controller.GenericController + ObjectClient() *objectclient.ObjectClient + Interface() DeploymentInterface +} + +type deploymentClientCache struct { + client *deploymentClient2 +} + +type deploymentClient2 struct { + iface DeploymentInterface + controller DeploymentController +} + +func (n *deploymentClient2) Interface() DeploymentInterface { + return n.iface +} + +func (n *deploymentClient2) Generic() controller.GenericController { + return n.iface.Controller().Generic() +} + +func (n *deploymentClient2) ObjectClient() *objectclient.ObjectClient { + return n.Interface().ObjectClient() +} + +func (n *deploymentClient2) Enqueue(namespace, name string) { + n.iface.Controller().Enqueue(namespace, name) +} + +func (n *deploymentClient2) Create(obj *v1.Deployment) (*v1.Deployment, error) { + return n.iface.Create(obj) +} + +func (n *deploymentClient2) Get(namespace, name string, opts metav1.GetOptions) (*v1.Deployment, error) { + return n.iface.GetNamespaced(namespace, name, opts) +} + +func (n *deploymentClient2) Update(obj *v1.Deployment) (*v1.Deployment, error) { + return n.iface.Update(obj) +} + +func (n *deploymentClient2) Delete(namespace, name string, options *metav1.DeleteOptions) error { + return n.iface.DeleteNamespaced(namespace, name, options) +} + +func (n *deploymentClient2) List(namespace string, opts metav1.ListOptions) (*DeploymentList, error) { + return n.iface.List(opts) +} + +func (n *deploymentClient2) Watch(opts metav1.ListOptions) (watch.Interface, error) { + return n.iface.Watch(opts) +} + +func (n *deploymentClientCache) Get(namespace, name string) (*v1.Deployment, error) { + return n.client.controller.Lister().Get(namespace, name) +} + +func (n *deploymentClientCache) List(namespace string, selector labels.Selector) ([]*v1.Deployment, error) { + return n.client.controller.Lister().List(namespace, selector) +} + +func (n *deploymentClient2) Cache() DeploymentClientCache { + n.loadController() + return &deploymentClientCache{ + client: n, + } +} + +func (n *deploymentClient2) OnCreate(ctx context.Context, name string, sync DeploymentChangeHandlerFunc) { + n.loadController() + n.iface.AddLifecycle(ctx, name+"-create", &deploymentLifecycleDelegate{create: sync}) +} + +func (n *deploymentClient2) OnChange(ctx context.Context, name string, sync DeploymentChangeHandlerFunc) { + n.loadController() + n.iface.AddLifecycle(ctx, name+"-change", &deploymentLifecycleDelegate{update: sync}) +} + +func (n *deploymentClient2) OnRemove(ctx context.Context, name string, sync DeploymentChangeHandlerFunc) { + n.loadController() + n.iface.AddLifecycle(ctx, name, &deploymentLifecycleDelegate{remove: sync}) +} + +func (n *deploymentClientCache) Index(name string, indexer DeploymentIndexer) { + err := n.client.controller.Informer().GetIndexer().AddIndexers(map[string]cache.IndexFunc{ + name: func(obj interface{}) ([]string, error) { + if v, ok := obj.(*v1.Deployment); ok { + return indexer(v) + } + return nil, nil + }, + }) + + if err != nil { + panic(err) + } +} + +func (n *deploymentClientCache) GetIndexed(name, key string) ([]*v1.Deployment, error) { + var result []*v1.Deployment + objs, err := n.client.controller.Informer().GetIndexer().ByIndex(name, key) + if err != nil { + return nil, err + } + for _, obj := range objs { + if v, ok := obj.(*v1.Deployment); ok { + result = append(result, v) + } + } + + return result, nil +} + +func (n *deploymentClient2) loadController() { + if n.controller == nil { + n.controller = n.iface.Controller() + } +} + +type deploymentLifecycleDelegate struct { + create DeploymentChangeHandlerFunc + update DeploymentChangeHandlerFunc + remove DeploymentChangeHandlerFunc +} + +func (n *deploymentLifecycleDelegate) HasCreate() bool { + return n.create != nil +} + +func (n *deploymentLifecycleDelegate) Create(obj *v1.Deployment) (runtime.Object, error) { + if n.create == nil { + return obj, nil + } + return n.create(obj) +} + +func (n *deploymentLifecycleDelegate) HasFinalize() bool { + return n.remove != nil +} + +func (n *deploymentLifecycleDelegate) Remove(obj *v1.Deployment) (runtime.Object, error) { + if n.remove == nil { + return obj, nil + } + return n.remove(obj) +} + +func (n *deploymentLifecycleDelegate) Updated(obj *v1.Deployment) (runtime.Object, error) { + if n.update == nil { + return obj, nil + } + return n.update(obj) +} diff --git a/types/apis/apps/v1/zz_generated_deployment_lifecycle_adapter.go b/types/apis/apps/v1/zz_generated_deployment_lifecycle_adapter.go new file mode 100644 index 0000000000..152b5058b7 --- /dev/null +++ b/types/apis/apps/v1/zz_generated_deployment_lifecycle_adapter.go @@ -0,0 +1,63 @@ +package v1 + +import ( + "github.com/rancher/norman/lifecycle" + v1 "k8s.io/api/apps/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +type DeploymentLifecycle interface { + Create(obj *v1.Deployment) (runtime.Object, error) + Remove(obj *v1.Deployment) (runtime.Object, error) + Updated(obj *v1.Deployment) (runtime.Object, error) +} + +type deploymentLifecycleAdapter struct { + lifecycle DeploymentLifecycle +} + +func (w *deploymentLifecycleAdapter) HasCreate() bool { + o, ok := w.lifecycle.(lifecycle.ObjectLifecycleCondition) + return !ok || o.HasCreate() +} + +func (w *deploymentLifecycleAdapter) HasFinalize() bool { + o, ok := w.lifecycle.(lifecycle.ObjectLifecycleCondition) + return !ok || o.HasFinalize() +} + +func (w *deploymentLifecycleAdapter) Create(obj runtime.Object) (runtime.Object, error) { + o, err := w.lifecycle.Create(obj.(*v1.Deployment)) + if o == nil { + return nil, err + } + return o, err +} + +func (w *deploymentLifecycleAdapter) Finalize(obj runtime.Object) (runtime.Object, error) { + o, err := w.lifecycle.Remove(obj.(*v1.Deployment)) + if o == nil { + return nil, err + } + return o, err +} + +func (w *deploymentLifecycleAdapter) Updated(obj runtime.Object) (runtime.Object, error) { + o, err := w.lifecycle.Updated(obj.(*v1.Deployment)) + if o == nil { + return nil, err + } + return o, err +} + +func NewDeploymentLifecycleAdapter(name string, clusterScoped bool, client DeploymentInterface, l DeploymentLifecycle) DeploymentHandlerFunc { + adapter := &deploymentLifecycleAdapter{lifecycle: l} + syncFn := lifecycle.NewObjectLifecycleAdapter(name, clusterScoped, adapter, client.ObjectClient()) + return func(key string, obj *v1.Deployment) (runtime.Object, error) { + newObj, err := syncFn(key, obj) + if o, ok := newObj.(runtime.Object); ok { + return o, err + } + return nil, err + } +} diff --git a/types/apis/apps/v1/zz_generated_k8s_client.go b/types/apis/apps/v1/zz_generated_k8s_client.go index 14085a273b..7fea8da718 100644 --- a/types/apis/apps/v1/zz_generated_k8s_client.go +++ b/types/apis/apps/v1/zz_generated_k8s_client.go @@ -21,12 +21,14 @@ type Interface interface { controller.Starter DaemonSetsGetter + DeploymentsGetter } type Clients struct { Interface Interface - DaemonSet DaemonSetClient + DaemonSet DaemonSetClient + Deployment DeploymentClient } type Client struct { @@ -34,7 +36,8 @@ type Client struct { restClient rest.Interface starters []controller.Starter - daemonSetControllers map[string]DaemonSetController + daemonSetControllers map[string]DaemonSetController + deploymentControllers map[string]DeploymentController } func Factory(ctx context.Context, config rest.Config) (context.Context, controller.Starter, error) { @@ -73,6 +76,9 @@ func NewClientsFromInterface(iface Interface) *Clients { DaemonSet: &daemonSetClient2{ iface: iface.DaemonSets(""), }, + Deployment: &deploymentClient2{ + iface: iface.Deployments(""), + }, } } @@ -89,7 +95,8 @@ func NewForConfig(config rest.Config) (Interface, error) { return &Client{ restClient: restClient, - daemonSetControllers: map[string]DaemonSetController{}, + daemonSetControllers: map[string]DaemonSetController{}, + deploymentControllers: map[string]DeploymentController{}, }, nil } @@ -117,3 +124,16 @@ func (c *Client) DaemonSets(namespace string) DaemonSetInterface { objectClient: objectClient, } } + +type DeploymentsGetter interface { + Deployments(namespace string) DeploymentInterface +} + +func (c *Client) Deployments(namespace string) DeploymentInterface { + objectClient := objectclient.NewObjectClient(namespace, c.restClient, &DeploymentResource, DeploymentGroupVersionKind, deploymentFactory{}) + return &deploymentClient{ + ns: namespace, + client: c, + objectClient: objectClient, + } +} diff --git a/types/apis/apps/v1/zz_generated_scheme.go b/types/apis/apps/v1/zz_generated_scheme.go index 288fd419c2..d587bca7a0 100644 --- a/types/apis/apps/v1/zz_generated_scheme.go +++ b/types/apis/apps/v1/zz_generated_scheme.go @@ -34,6 +34,7 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &DaemonSetList{}, + &DeploymentList{}, ) return nil } diff --git a/types/codegen/main.go b/types/codegen/main.go index d0169d0224..e33a7553a4 100644 --- a/types/codegen/main.go +++ b/types/codegen/main.go @@ -100,6 +100,7 @@ func main() { if err := generator.ControllersForForeignTypes(basePackage, appsv1.SchemeGroupVersion, []interface{}{ appsv1.DaemonSet{}, + appsv1.Deployment{}, }, nil); err != nil { logrus.Fatal(err) }