// NewREST returns a RESTStorage object that will work against endpoints. func NewREST(opts generic.RESTOptions) *REST { prefix := "/services/endpoints" newListFunc := func() runtime.Object { return &api.EndpointsList{} } storageInterface := opts.Decorator( opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Endpoints), &api.Endpoints{}, prefix, endpoint.Strategy, newListFunc) store := ®istry.Store{ NewFunc: func() runtime.Object { return &api.Endpoints{} }, NewListFunc: newListFunc, KeyRootFunc: func(ctx api.Context) string { return registry.NamespaceKeyRootFunc(ctx, prefix) }, KeyFunc: func(ctx api.Context, name string) (string, error) { return registry.NamespaceKeyFunc(ctx, prefix, name) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*api.Endpoints).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return endpoint.MatchEndpoints(label, field) }, QualifiedResource: api.Resource("endpoints"), DeleteCollectionWorkers: opts.DeleteCollectionWorkers, CreateStrategy: endpoint.Strategy, UpdateStrategy: endpoint.Strategy, DeleteStrategy: endpoint.Strategy, Storage: storageInterface, } return &REST{store} }
// NewREST returns a RESTStorage object that will work against endpoints. func NewREST(s storage.Interface, storageFactory storage.StorageFactory) *REST { prefix := "/services/endpoints" newListFunc := func() runtime.Object { return &api.EndpointsList{} } storageInterface := storageFactory( s, 1000, nil, &api.Endpoints{}, prefix, true, newListFunc) store := &etcdgeneric.Etcd{ NewFunc: func() runtime.Object { return &api.Endpoints{} }, NewListFunc: newListFunc, KeyRootFunc: func(ctx api.Context) string { return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) }, KeyFunc: func(ctx api.Context, name string) (string, error) { return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*api.Endpoints).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return endpoint.MatchEndpoints(label, field) }, EndpointName: "endpoints", CreateStrategy: endpoint.Strategy, UpdateStrategy: endpoint.Strategy, Storage: storageInterface, } return &REST{store} }
// NewStorage returns a RESTStorage object that will work against endpoints. func NewStorage(s storage.Interface) *REST { prefix := "/services/endpoints" return &REST{ &etcdgeneric.Etcd{ NewFunc: func() runtime.Object { return &api.Endpoints{} }, NewListFunc: func() runtime.Object { return &api.EndpointsList{} }, KeyRootFunc: func(ctx api.Context) string { return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) }, KeyFunc: func(ctx api.Context, name string) (string, error) { return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*api.Endpoints).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return endpoint.MatchEndpoints(label, field) }, EndpointName: "endpoints", CreateStrategy: endpoint.Strategy, UpdateStrategy: endpoint.Strategy, Storage: s, }, } }
// NewREST returns a RESTStorage object that will work against endpoints. func NewREST(s storage.Interface, useCacher bool) *REST { prefix := "/services/endpoints" storageInterface := s if useCacher { config := storage.CacherConfig{ CacheCapacity: 1000, Storage: s, Type: &api.Endpoints{}, ResourcePrefix: prefix, KeyFunc: func(obj runtime.Object) (string, error) { return storage.NamespaceKeyFunc(prefix, obj) }, NewListFunc: func() runtime.Object { return &api.EndpointsList{} }, } storageInterface = storage.NewCacher(config) } store := &etcdgeneric.Etcd{ NewFunc: func() runtime.Object { return &api.Endpoints{} }, NewListFunc: func() runtime.Object { return &api.EndpointsList{} }, KeyRootFunc: func(ctx api.Context) string { return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) }, KeyFunc: func(ctx api.Context, name string) (string, error) { return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) }, ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*api.Endpoints).Name, nil }, PredicateFunc: func(label labels.Selector, field fields.Selector) generic.Matcher { return endpoint.MatchEndpoints(label, field) }, EndpointName: "endpoints", CreateStrategy: endpoint.Strategy, UpdateStrategy: endpoint.Strategy, Storage: storageInterface, } return &REST{store} }