mirror of https://github.com/k3s-io/k3s
Default ObjectNameFunc for all REST Stores
All Stores in Kubernetes follow the same logic for determining the name of an object. This change makes it so that CompleteWithOptions defaults the ObjectNameFunc if it is not specified. Thus a user does not need to remember to use ObjectMeta.Name. Using the wrong field as the name can lead to an object which has a name that bypasses normal object name validation. Signed-off-by: Monis Khan <mkhan@redhat.com>pull/6/head
parent
f613e66ad6
commit
ed35deb69d
|
@ -48,12 +48,9 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
|
|||
// NewREST returns a RESTStorage object that will work against clusters.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &federation.Cluster{} },
|
||||
NewListFunc: func() runtime.Object { return &federation.ClusterList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*federation.Cluster).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &federation.Cluster{} },
|
||||
NewListFunc: func() runtime.Object { return &federation.ClusterList{} },
|
||||
PredicateFunc: cluster.MatchCluster,
|
||||
QualifiedResource: federation.Resource("clusters"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusters"),
|
||||
|
|
|
@ -37,12 +37,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} },
|
||||
NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*appsapi.StatefulSet).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} },
|
||||
NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} },
|
||||
PredicateFunc: petset.MatchStatefulSet,
|
||||
QualifiedResource: appsapi.Resource("statefulsets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("statefulsets"),
|
||||
|
|
|
@ -36,12 +36,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} },
|
||||
NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*autoscaling.HorizontalPodAutoscaler).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} },
|
||||
NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} },
|
||||
PredicateFunc: horizontalpodautoscaler.MatchAutoscaler,
|
||||
QualifiedResource: autoscaling.Resource("horizontalpodautoscalers"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("horizontalpodautoscalers"),
|
||||
|
|
|
@ -37,12 +37,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against CronJobs.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.CronJob{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.CronJobList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*batch.CronJob).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.CronJob{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.CronJobList{} },
|
||||
PredicateFunc: cronjob.MatchCronJob,
|
||||
QualifiedResource: batch.Resource("cronjobs"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("cronjobs"),
|
||||
|
|
|
@ -52,12 +52,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against Jobs.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.Job{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.JobList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*batch.Job).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &batch.Job{} },
|
||||
NewListFunc: func() runtime.Object { return &batch.JobList{} },
|
||||
PredicateFunc: job.MatchJob,
|
||||
QualifiedResource: batch.Resource("jobs"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("jobs"),
|
||||
|
|
|
@ -36,12 +36,9 @@ type REST struct {
|
|||
// NewREST returns a registry which will store CertificateSigningRequest in the given helper
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *ApprovalREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} },
|
||||
NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*certificates.CertificateSigningRequest).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} },
|
||||
NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} },
|
||||
PredicateFunc: csrregistry.Matcher,
|
||||
QualifiedResource: certificates.Resource("certificatesigningrequests"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("certificatesigningrequests"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work with ConfigMap objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ConfigMap{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ConfigMapList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ConfigMap).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ConfigMap{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ConfigMapList{} },
|
||||
PredicateFunc: configmap.MatchConfigMap,
|
||||
QualifiedResource: api.Resource("configmaps"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("configmaps"),
|
||||
|
|
|
@ -33,12 +33,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against endpoints.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Endpoints{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EndpointsList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Endpoints).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Endpoints{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EndpointsList{} },
|
||||
PredicateFunc: endpoint.MatchEndpoints,
|
||||
QualifiedResource: api.Resource("endpoints"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("endpoints"),
|
||||
|
|
|
@ -43,12 +43,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST {
|
|||
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Event{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EventList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Event).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Event{} },
|
||||
NewListFunc: func() runtime.Object { return &api.EventList{} },
|
||||
PredicateFunc: event.MatchEvent,
|
||||
TTLFunc: func(runtime.Object, uint64, bool) (uint64, error) {
|
||||
return ttl, nil
|
||||
|
|
|
@ -33,12 +33,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.LimitRange{} },
|
||||
NewListFunc: func() runtime.Object { return &api.LimitRangeList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.LimitRange).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.LimitRange{} },
|
||||
NewListFunc: func() runtime.Object { return &api.LimitRangeList{} },
|
||||
PredicateFunc: limitrange.MatchLimitRange,
|
||||
QualifiedResource: api.Resource("limitranges"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("limitranges"),
|
||||
|
|
|
@ -52,12 +52,9 @@ type FinalizeREST struct {
|
|||
// NewREST returns a RESTStorage object that will work against namespaces.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *FinalizeREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Namespace{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NamespaceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Namespace).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Namespace{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NamespaceList{} },
|
||||
PredicateFunc: namespace.MatchNamespace,
|
||||
QualifiedResource: api.Resource("namespaces"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("namespaces"),
|
||||
|
|
|
@ -72,12 +72,9 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
|
|||
// NewStorage returns a NodeStorage object that will work against nodes.
|
||||
func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client.KubeletClientConfig, proxyTransport http.RoundTripper) (*NodeStorage, error) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Node{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NodeList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Node).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Node{} },
|
||||
NewListFunc: func() runtime.Object { return &api.NodeList{} },
|
||||
PredicateFunc: node.MatchNode,
|
||||
QualifiedResource: api.Resource("nodes"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("nodes"),
|
||||
|
|
|
@ -35,12 +35,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolume{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.PersistentVolume).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolume{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} },
|
||||
PredicateFunc: persistentvolume.MatchPersistentVolumes,
|
||||
QualifiedResource: api.Resource("persistentvolumes"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumes"),
|
||||
|
|
|
@ -35,12 +35,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against persistent volume claims.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.PersistentVolumeClaim).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} },
|
||||
PredicateFunc: persistentvolumeclaim.MatchPersistentVolumeClaim,
|
||||
QualifiedResource: api.Resource("persistentvolumeclaims"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumeclaims"),
|
||||
|
|
|
@ -62,12 +62,9 @@ type REST struct {
|
|||
// NewStorage returns a RESTStorage object that will work against pods.
|
||||
func NewStorage(optsGetter generic.RESTOptionsGetter, k client.ConnectionInfoGetter, proxyTransport http.RoundTripper, podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter) PodStorage {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Pod{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Pod).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Pod{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
||||
PredicateFunc: pod.MatchPod,
|
||||
QualifiedResource: api.Resource("pods"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("pods"),
|
||||
|
|
|
@ -32,12 +32,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against pod templates.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PodTemplate{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodTemplateList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.PodTemplate).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.PodTemplate{} },
|
||||
NewListFunc: func() runtime.Object { return &api.PodTemplateList{} },
|
||||
PredicateFunc: podtemplate.MatchPodTemplate,
|
||||
QualifiedResource: api.Resource("podtemplates"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podtemplates"),
|
||||
|
|
|
@ -61,12 +61,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ReplicationController{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ReplicationController).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ReplicationController{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} },
|
||||
PredicateFunc: replicationcontroller.MatchController,
|
||||
QualifiedResource: api.Resource("replicationcontrollers"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicationcontrollers"),
|
||||
|
|
|
@ -35,12 +35,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against resource quotas.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ResourceQuota{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ResourceQuota).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ResourceQuota{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} },
|
||||
PredicateFunc: resourcequota.MatchResourceQuota,
|
||||
QualifiedResource: api.Resource("resourcequotas"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("resourcequotas"),
|
||||
|
|
|
@ -32,12 +32,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against secrets.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Secret{} },
|
||||
NewListFunc: func() runtime.Object { return &api.SecretList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Secret).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Secret{} },
|
||||
NewListFunc: func() runtime.Object { return &api.SecretList{} },
|
||||
PredicateFunc: secret.Matcher,
|
||||
QualifiedResource: api.Resource("secrets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("secrets"),
|
||||
|
|
|
@ -35,12 +35,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against services.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Service{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.Service).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.Service{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceList{} },
|
||||
PredicateFunc: service.MatchServices,
|
||||
QualifiedResource: api.Resource("services"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("services"),
|
||||
|
|
|
@ -33,12 +33,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against service accounts.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ServiceAccount{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*api.ServiceAccount).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &api.ServiceAccount{} },
|
||||
NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} },
|
||||
PredicateFunc: serviceaccount.Matcher,
|
||||
QualifiedResource: api.Resource("serviceaccounts"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("serviceaccounts"),
|
||||
|
|
|
@ -37,12 +37,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against DaemonSets.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.DaemonSet).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} },
|
||||
PredicateFunc: daemonset.MatchDaemonSet,
|
||||
QualifiedResource: extensions.Resource("daemonsets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("daemonsets"),
|
||||
|
|
|
@ -63,12 +63,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against deployments.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *RollbackREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Deployment{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.Deployment).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Deployment{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} },
|
||||
PredicateFunc: deployment.MatchDeployment,
|
||||
QualifiedResource: extensions.Resource("deployments"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("deployments"),
|
||||
|
|
|
@ -37,12 +37,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Ingress{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.IngressList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.Ingress).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.Ingress{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.IngressList{} },
|
||||
PredicateFunc: ingress.MatchIngress,
|
||||
QualifiedResource: extensions.Resource("ingresses"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("ingresses"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against network policies.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensionsapi.NetworkPolicy).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} },
|
||||
PredicateFunc: networkpolicy.MatchNetworkPolicy,
|
||||
QualifiedResource: extensionsapi.Resource("networkpolicies"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against PodSecurityPolicy objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.PodSecurityPolicy).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} },
|
||||
PredicateFunc: podsecuritypolicy.MatchPodSecurityPolicy,
|
||||
QualifiedResource: extensions.Resource("podsecuritypolicies"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podsecuritypolicies"),
|
||||
|
|
|
@ -60,12 +60,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against ReplicaSet.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.ReplicaSet).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} },
|
||||
PredicateFunc: replicaset.MatchReplicaSet,
|
||||
QualifiedResource: extensions.Resource("replicasets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicasets"),
|
||||
|
|
|
@ -43,12 +43,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
|||
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.ThirdPartyResource).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
|
||||
PredicateFunc: thirdpartyresource.Matcher,
|
||||
QualifiedResource: resource,
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource(resource.Resource),
|
||||
|
|
|
@ -47,12 +47,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter, group, kind string) *REST {
|
|||
opts.ResourcePrefix = "/ThirdPartyResourceData/" + group + "/" + strings.ToLower(kind) + "s"
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*extensions.ThirdPartyResourceData).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
|
||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
|
||||
PredicateFunc: thirdpartyresourcedata.Matcher,
|
||||
QualifiedResource: resource,
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource(resource.Resource),
|
||||
|
|
|
@ -37,12 +37,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against pod disruption budgets.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} },
|
||||
NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*policyapi.PodDisruptionBudget).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} },
|
||||
NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} },
|
||||
PredicateFunc: poddisruptionbudget.MatchPodDisruptionBudget,
|
||||
QualifiedResource: policyapi.Resource("poddisruptionbudgets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("poddisruptionbudgets"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against ClusterRole objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRole{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.ClusterRole).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRole{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} },
|
||||
PredicateFunc: clusterrole.Matcher,
|
||||
QualifiedResource: rbac.Resource("clusterroles"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterroles"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against ClusterRoleBinding objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.ClusterRoleBinding).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} },
|
||||
PredicateFunc: clusterrolebinding.Matcher,
|
||||
QualifiedResource: rbac.Resource("clusterrolebindings"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterrolebindings"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against Role objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.Role{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.Role).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.Role{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleList{} },
|
||||
PredicateFunc: role.Matcher,
|
||||
QualifiedResource: rbac.Resource("roles"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("roles"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against RoleBinding objects.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.RoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*rbac.RoleBinding).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &rbac.RoleBinding{} },
|
||||
NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} },
|
||||
PredicateFunc: rolebinding.Matcher,
|
||||
QualifiedResource: rbac.Resource("rolebindings"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("rolebindings"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &settingsapi.PodPreset{} },
|
||||
NewListFunc: func() runtime.Object { return &settingsapi.PodPresetList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*settingsapi.PodPreset).GetName(), nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &settingsapi.PodPreset{} },
|
||||
NewListFunc: func() runtime.Object { return &settingsapi.PodPresetList{} },
|
||||
PredicateFunc: podpreset.Matcher,
|
||||
QualifiedResource: settingsapi.Resource("podpresets"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podpresets"),
|
||||
|
|
|
@ -34,12 +34,9 @@ type REST struct {
|
|||
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||
store := &genericregistry.Store{
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &storageapi.StorageClass{} },
|
||||
NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*storageapi.StorageClass).Name, nil
|
||||
},
|
||||
Copier: api.Scheme,
|
||||
NewFunc: func() runtime.Object { return &storageapi.StorageClass{} },
|
||||
NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} },
|
||||
PredicateFunc: storageclass.MatchStorageClasses,
|
||||
QualifiedResource: storageapi.Resource("storageclasses"),
|
||||
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("storageclass"),
|
||||
|
|
|
@ -1194,6 +1194,16 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error {
|
|||
|
||||
e.EnableGarbageCollection = opts.EnableGarbageCollection
|
||||
|
||||
if e.ObjectNameFunc == nil {
|
||||
e.ObjectNameFunc = func(obj runtime.Object) (string, error) {
|
||||
accessor, err := meta.Accessor(obj)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return accessor.GetName(), nil
|
||||
}
|
||||
}
|
||||
|
||||
if e.Storage == nil {
|
||||
capacity := DefaultWatchCacheSize
|
||||
if e.WatchCacheSize != 0 {
|
||||
|
|
|
@ -33,12 +33,9 @@ type REST struct {
|
|||
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST {
|
||||
strategy := apiservice.NewStrategy(scheme)
|
||||
store := &genericregistry.Store{
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &apiregistration.APIService{} },
|
||||
NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*apiregistration.APIService).Name, nil
|
||||
},
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &apiregistration.APIService{} },
|
||||
NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} },
|
||||
PredicateFunc: apiservice.MatchAPIService,
|
||||
QualifiedResource: apiregistration.Resource("apiservices"),
|
||||
WatchCacheSize: 100,
|
||||
|
|
|
@ -33,12 +33,9 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST
|
|||
strategy := NewStrategy(scheme)
|
||||
|
||||
store := &genericregistry.Store{
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &wardle.Flunder{} },
|
||||
NewListFunc: func() runtime.Object { return &wardle.FlunderList{} },
|
||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||
return obj.(*wardle.Flunder).Name, nil
|
||||
},
|
||||
Copier: scheme,
|
||||
NewFunc: func() runtime.Object { return &wardle.Flunder{} },
|
||||
NewListFunc: func() runtime.Object { return &wardle.FlunderList{} },
|
||||
PredicateFunc: MatchFlunder,
|
||||
QualifiedResource: wardle.Resource("flunders"),
|
||||
|
||||
|
|
Loading…
Reference in New Issue