diff --git a/apis/management.cattle.io/v3/zz_generated_deepcopy.go b/apis/management.cattle.io/v3/zz_generated_deepcopy.go index 7f5acf29..8d7232f3 100644 --- a/apis/management.cattle.io/v3/zz_generated_deepcopy.go +++ b/apis/management.cattle.io/v3/zz_generated_deepcopy.go @@ -295,6 +295,14 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*PodSecurityPolicyTemplateList).DeepCopyInto(out.(*PodSecurityPolicyTemplateList)) return nil }, InType: reflect.TypeOf(&PodSecurityPolicyTemplateList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Preference).DeepCopyInto(out.(*Preference)) + return nil + }, InType: reflect.TypeOf(&Preference{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*PreferenceList).DeepCopyInto(out.(*PreferenceList)) + return nil + }, InType: reflect.TypeOf(&PreferenceList{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*Principal).DeepCopyInto(out.(*Principal)) return nil @@ -2281,6 +2289,68 @@ func (in *PodSecurityPolicyTemplateList) DeepCopyObject() runtime.Object { } } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Preference) DeepCopyInto(out *Preference) { + *out = *in + out.Namespaced = in.Namespaced + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preference. +func (in *Preference) DeepCopy() *Preference { + if in == nil { + return nil + } + out := new(Preference) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Preference) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PreferenceList) DeepCopyInto(out *PreferenceList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Preference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferenceList. +func (in *PreferenceList) DeepCopy() *PreferenceList { + if in == nil { + return nil + } + out := new(PreferenceList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PreferenceList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Principal) DeepCopyInto(out *Principal) { *out = *in diff --git a/apis/management.cattle.io/v3/zz_generated_k8s_client.go b/apis/management.cattle.io/v3/zz_generated_k8s_client.go index 6ab6f392..8cae1279 100644 --- a/apis/management.cattle.io/v3/zz_generated_k8s_client.go +++ b/apis/management.cattle.io/v3/zz_generated_k8s_client.go @@ -37,6 +37,7 @@ type Interface interface { UsersGetter DynamicSchemasGetter StacksGetter + PreferencesGetter } type Client struct { @@ -67,6 +68,7 @@ type Client struct { userControllers map[string]UserController dynamicSchemaControllers map[string]DynamicSchemaController stackControllers map[string]StackController + preferenceControllers map[string]PreferenceController } func NewForConfig(config rest.Config) (Interface, error) { @@ -106,6 +108,7 @@ func NewForConfig(config rest.Config) (Interface, error) { userControllers: map[string]UserController{}, dynamicSchemaControllers: map[string]DynamicSchemaController{}, stackControllers: map[string]StackController{}, + preferenceControllers: map[string]PreferenceController{}, }, nil } @@ -419,3 +422,16 @@ func (c *Client) Stacks(namespace string) StackInterface { objectClient: objectClient, } } + +type PreferencesGetter interface { + Preferences(namespace string) PreferenceInterface +} + +func (c *Client) Preferences(namespace string) PreferenceInterface { + objectClient := clientbase.NewObjectClient(namespace, c.restClient, &PreferenceResource, PreferenceGroupVersionKind, preferenceFactory{}) + return &preferenceClient{ + ns: namespace, + client: c, + objectClient: objectClient, + } +} diff --git a/apis/management.cattle.io/v3/zz_generated_preference_controller.go b/apis/management.cattle.io/v3/zz_generated_preference_controller.go new file mode 100644 index 00000000..9f80715b --- /dev/null +++ b/apis/management.cattle.io/v3/zz_generated_preference_controller.go @@ -0,0 +1,252 @@ +package v3 + +import ( + "context" + + "github.com/rancher/norman/clientbase" + "github.com/rancher/norman/controller" + "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/watch" + "k8s.io/client-go/tools/cache" +) + +var ( + PreferenceGroupVersionKind = schema.GroupVersionKind{ + Version: Version, + Group: GroupName, + Kind: "Preference", + } + PreferenceResource = metav1.APIResource{ + Name: "preferences", + SingularName: "preference", + Namespaced: true, + + Kind: PreferenceGroupVersionKind.Kind, + } +) + +type PreferenceList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Preference +} + +type PreferenceHandlerFunc func(key string, obj *Preference) error + +type PreferenceLister interface { + List(namespace string, selector labels.Selector) (ret []*Preference, err error) + Get(namespace, name string) (*Preference, error) +} + +type PreferenceController interface { + Informer() cache.SharedIndexInformer + Lister() PreferenceLister + AddHandler(name string, handler PreferenceHandlerFunc) + AddClusterScopedHandler(name, clusterName string, handler PreferenceHandlerFunc) + Enqueue(namespace, name string) + Sync(ctx context.Context) error + Start(ctx context.Context, threadiness int) error +} + +type PreferenceInterface interface { + ObjectClient() *clientbase.ObjectClient + Create(*Preference) (*Preference, error) + GetNamespace(name, namespace string, opts metav1.GetOptions) (*Preference, error) + Get(name string, opts metav1.GetOptions) (*Preference, error) + Update(*Preference) (*Preference, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteNamespace(name, namespace string, options *metav1.DeleteOptions) error + List(opts metav1.ListOptions) (*PreferenceList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) + DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error + Controller() PreferenceController + AddHandler(name string, sync PreferenceHandlerFunc) + AddLifecycle(name string, lifecycle PreferenceLifecycle) + AddClusterScopedHandler(name, clusterName string, sync PreferenceHandlerFunc) + AddClusterScopedLifecycle(name, clusterName string, lifecycle PreferenceLifecycle) +} + +type preferenceLister struct { + controller *preferenceController +} + +func (l *preferenceLister) List(namespace string, selector labels.Selector) (ret []*Preference, err error) { + err = cache.ListAllByNamespace(l.controller.Informer().GetIndexer(), namespace, selector, func(obj interface{}) { + ret = append(ret, obj.(*Preference)) + }) + return +} + +func (l *preferenceLister) Get(namespace, name string) (*Preference, 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: PreferenceGroupVersionKind.Group, + Resource: "preference", + }, name) + } + return obj.(*Preference), nil +} + +type preferenceController struct { + controller.GenericController +} + +func (c *preferenceController) Lister() PreferenceLister { + return &preferenceLister{ + controller: c, + } +} + +func (c *preferenceController) AddHandler(name string, handler PreferenceHandlerFunc) { + c.GenericController.AddHandler(name, func(key string) error { + obj, exists, err := c.Informer().GetStore().GetByKey(key) + if err != nil { + return err + } + if !exists { + return handler(key, nil) + } + return handler(key, obj.(*Preference)) + }) +} + +func (c *preferenceController) AddClusterScopedHandler(name, cluster string, handler PreferenceHandlerFunc) { + c.GenericController.AddHandler(name, func(key string) error { + obj, exists, err := c.Informer().GetStore().GetByKey(key) + if err != nil { + return err + } + if !exists { + return handler(key, nil) + } + + if !controller.ObjectInCluster(cluster, obj) { + return nil + } + + return handler(key, obj.(*Preference)) + }) +} + +type preferenceFactory struct { +} + +func (c preferenceFactory) Object() runtime.Object { + return &Preference{} +} + +func (c preferenceFactory) List() runtime.Object { + return &PreferenceList{} +} + +func (s *preferenceClient) Controller() PreferenceController { + s.client.Lock() + defer s.client.Unlock() + + c, ok := s.client.preferenceControllers[s.ns] + if ok { + return c + } + + genericController := controller.NewGenericController(PreferenceGroupVersionKind.Kind+"Controller", + s.objectClient) + + c = &preferenceController{ + GenericController: genericController, + } + + s.client.preferenceControllers[s.ns] = c + s.client.starters = append(s.client.starters, c) + + return c +} + +type preferenceClient struct { + client *Client + ns string + objectClient *clientbase.ObjectClient + controller PreferenceController +} + +func (s *preferenceClient) ObjectClient() *clientbase.ObjectClient { + return s.objectClient +} + +func (s *preferenceClient) Create(o *Preference) (*Preference, error) { + obj, err := s.objectClient.Create(o) + return obj.(*Preference), err +} + +func (s *preferenceClient) Get(name string, opts metav1.GetOptions) (*Preference, error) { + obj, err := s.objectClient.Get(name, opts) + return obj.(*Preference), err +} + +func (s *preferenceClient) GetNamespace(name, namespace string, opts metav1.GetOptions) (*Preference, error) { + obj, err := s.objectClient.GetNamespace(name, namespace, opts) + return obj.(*Preference), err +} + +func (s *preferenceClient) Update(o *Preference) (*Preference, error) { + obj, err := s.objectClient.Update(o.Name, o) + return obj.(*Preference), err +} + +func (s *preferenceClient) Delete(name string, options *metav1.DeleteOptions) error { + return s.objectClient.Delete(name, options) +} + +func (s *preferenceClient) DeleteNamespace(name, namespace string, options *metav1.DeleteOptions) error { + return s.objectClient.DeleteNamespace(name, namespace, options) +} + +func (s *preferenceClient) List(opts metav1.ListOptions) (*PreferenceList, error) { + obj, err := s.objectClient.List(opts) + return obj.(*PreferenceList), err +} + +func (s *preferenceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { + return s.objectClient.Watch(opts) +} + +// Patch applies the patch and returns the patched deployment. +func (s *preferenceClient) Patch(o *Preference, data []byte, subresources ...string) (*Preference, error) { + obj, err := s.objectClient.Patch(o.Name, o, data, subresources...) + return obj.(*Preference), err +} + +func (s *preferenceClient) DeleteCollection(deleteOpts *metav1.DeleteOptions, listOpts metav1.ListOptions) error { + return s.objectClient.DeleteCollection(deleteOpts, listOpts) +} + +func (s *preferenceClient) AddHandler(name string, sync PreferenceHandlerFunc) { + s.Controller().AddHandler(name, sync) +} + +func (s *preferenceClient) AddLifecycle(name string, lifecycle PreferenceLifecycle) { + sync := NewPreferenceLifecycleAdapter(name, false, s, lifecycle) + s.AddHandler(name, sync) +} + +func (s *preferenceClient) AddClusterScopedHandler(name, clusterName string, sync PreferenceHandlerFunc) { + s.Controller().AddClusterScopedHandler(name, clusterName, sync) +} + +func (s *preferenceClient) AddClusterScopedLifecycle(name, clusterName string, lifecycle PreferenceLifecycle) { + sync := NewPreferenceLifecycleAdapter(name+"_"+clusterName, true, s, lifecycle) + s.AddClusterScopedHandler(name, clusterName, sync) +} diff --git a/apis/management.cattle.io/v3/zz_generated_preference_lifecycle_adapter.go b/apis/management.cattle.io/v3/zz_generated_preference_lifecycle_adapter.go new file mode 100644 index 00000000..754f42b4 --- /dev/null +++ b/apis/management.cattle.io/v3/zz_generated_preference_lifecycle_adapter.go @@ -0,0 +1,51 @@ +package v3 + +import ( + "github.com/rancher/norman/lifecycle" + "k8s.io/apimachinery/pkg/runtime" +) + +type PreferenceLifecycle interface { + Create(obj *Preference) (*Preference, error) + Remove(obj *Preference) (*Preference, error) + Updated(obj *Preference) (*Preference, error) +} + +type preferenceLifecycleAdapter struct { + lifecycle PreferenceLifecycle +} + +func (w *preferenceLifecycleAdapter) Create(obj runtime.Object) (runtime.Object, error) { + o, err := w.lifecycle.Create(obj.(*Preference)) + if o == nil { + return nil, err + } + return o, err +} + +func (w *preferenceLifecycleAdapter) Finalize(obj runtime.Object) (runtime.Object, error) { + o, err := w.lifecycle.Remove(obj.(*Preference)) + if o == nil { + return nil, err + } + return o, err +} + +func (w *preferenceLifecycleAdapter) Updated(obj runtime.Object) (runtime.Object, error) { + o, err := w.lifecycle.Updated(obj.(*Preference)) + if o == nil { + return nil, err + } + return o, err +} + +func NewPreferenceLifecycleAdapter(name string, clusterScoped bool, client PreferenceInterface, l PreferenceLifecycle) PreferenceHandlerFunc { + adapter := &preferenceLifecycleAdapter{lifecycle: l} + syncFn := lifecycle.NewObjectLifecycleAdapter(name, clusterScoped, adapter, client.ObjectClient()) + return func(key string, obj *Preference) error { + if obj == nil { + return syncFn(key, nil) + } + return syncFn(key, obj) + } +} diff --git a/apis/management.cattle.io/v3/zz_generated_scheme.go b/apis/management.cattle.io/v3/zz_generated_scheme.go index 5fb065fa..9a6ce6f1 100644 --- a/apis/management.cattle.io/v3/zz_generated_scheme.go +++ b/apis/management.cattle.io/v3/zz_generated_scheme.go @@ -79,6 +79,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { &DynamicSchemaList{}, &Stack{}, &StackList{}, + &Preference{}, + &PreferenceList{}, ) return nil } diff --git a/client/management/v3/zz_generated_client.go b/client/management/v3/zz_generated_client.go index 3df5504b..e452e1e8 100644 --- a/client/management/v3/zz_generated_client.go +++ b/client/management/v3/zz_generated_client.go @@ -31,6 +31,7 @@ type Client struct { User UserOperations DynamicSchema DynamicSchemaOperations Stack StackOperations + Preference PreferenceOperations } func NewClient(opts *clientbase.ClientOpts) (*Client, error) { @@ -67,6 +68,7 @@ func NewClient(opts *clientbase.ClientOpts) (*Client, error) { client.User = newUserClient(client) client.DynamicSchema = newDynamicSchemaClient(client) client.Stack = newStackClient(client) + client.Preference = newPreferenceClient(client) return client, nil } diff --git a/client/management/v3/zz_generated_preference.go b/client/management/v3/zz_generated_preference.go new file mode 100644 index 00000000..67c38bad --- /dev/null +++ b/client/management/v3/zz_generated_preference.go @@ -0,0 +1,95 @@ +package client + +import ( + "github.com/rancher/norman/types" +) + +const ( + PreferenceType = "preference" + PreferenceFieldAnnotations = "annotations" + PreferenceFieldCreated = "created" + PreferenceFieldCreatorID = "creatorId" + PreferenceFieldLabels = "labels" + PreferenceFieldName = "name" + PreferenceFieldNamespaceId = "namespaceId" + PreferenceFieldOwnerReferences = "ownerReferences" + PreferenceFieldRemoved = "removed" + PreferenceFieldUuid = "uuid" + PreferenceFieldValue = "value" +) + +type Preference struct { + types.Resource + Annotations map[string]string `json:"annotations,omitempty"` + Created string `json:"created,omitempty"` + CreatorID string `json:"creatorId,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + Name string `json:"name,omitempty"` + NamespaceId string `json:"namespaceId,omitempty"` + OwnerReferences []OwnerReference `json:"ownerReferences,omitempty"` + Removed string `json:"removed,omitempty"` + Uuid string `json:"uuid,omitempty"` + Value string `json:"value,omitempty"` +} +type PreferenceCollection struct { + types.Collection + Data []Preference `json:"data,omitempty"` + client *PreferenceClient +} + +type PreferenceClient struct { + apiClient *Client +} + +type PreferenceOperations interface { + List(opts *types.ListOpts) (*PreferenceCollection, error) + Create(opts *Preference) (*Preference, error) + Update(existing *Preference, updates interface{}) (*Preference, error) + ByID(id string) (*Preference, error) + Delete(container *Preference) error +} + +func newPreferenceClient(apiClient *Client) *PreferenceClient { + return &PreferenceClient{ + apiClient: apiClient, + } +} + +func (c *PreferenceClient) Create(container *Preference) (*Preference, error) { + resp := &Preference{} + err := c.apiClient.Ops.DoCreate(PreferenceType, container, resp) + return resp, err +} + +func (c *PreferenceClient) Update(existing *Preference, updates interface{}) (*Preference, error) { + resp := &Preference{} + err := c.apiClient.Ops.DoUpdate(PreferenceType, &existing.Resource, updates, resp) + return resp, err +} + +func (c *PreferenceClient) List(opts *types.ListOpts) (*PreferenceCollection, error) { + resp := &PreferenceCollection{} + err := c.apiClient.Ops.DoList(PreferenceType, opts, resp) + resp.client = c + return resp, err +} + +func (cc *PreferenceCollection) Next() (*PreferenceCollection, error) { + if cc != nil && cc.Pagination != nil && cc.Pagination.Next != "" { + resp := &PreferenceCollection{} + err := cc.client.apiClient.Ops.DoNext(cc.Pagination.Next, resp) + resp.client = cc.client + return resp, err + } + return nil, nil +} + +func (c *PreferenceClient) ByID(id string) (*Preference, error) { + resp := &Preference{} + err := c.apiClient.Ops.DoByID(PreferenceType, id, resp) + return resp, err +} + +func (c *PreferenceClient) Delete(container *Preference) error { + return c.apiClient.Ops.DoResourceDelete(PreferenceType, &container.Resource) +}