Commit 24b42869 authored by Timothy St. Clair's avatar Timothy St. Clair

In preparation for new storage backends renaming generic registry store

parent 9db45590
...@@ -20,10 +20,10 @@ package podtask ...@@ -20,10 +20,10 @@ package podtask
import ( import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
) )
// makePodKey constructs etcd paths to pod items enforcing namespace rules. // makePodKey constructs etcd paths to pod items enforcing namespace rules.
func MakePodKey(ctx api.Context, id string) (string, error) { func MakePodKey(ctx api.Context, id string) (string, error) {
return etcd.NamespaceKeyFunc(ctx, PodPath, id) return registry.NamespaceKeyFunc(ctx, PodPath, id)
} }
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage" "k8s.io/kubernetes/pkg/storage"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work with testtype. // NewREST returns a RESTStorage object that will work with testtype.
...@@ -39,19 +39,19 @@ func NewREST(s storage.Interface, storageDecorator generic.StorageDecorator) *RE ...@@ -39,19 +39,19 @@ func NewREST(s storage.Interface, storageDecorator generic.StorageDecorator) *RE
strategy := &NotNamespaceScoped{} strategy := &NotNamespaceScoped{}
storageInterface := storageDecorator( storageInterface := storageDecorator(
s, 100, &testgroup.TestType{}, prefix, strategy, newListFunc) s, 100, &testgroup.TestType{}, prefix, strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &testgroup.TestType{} }, NewFunc: func() runtime.Object { return &testgroup.TestType{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
NewListFunc: newListFunc, NewListFunc: newListFunc,
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix. // by combining the namespace in the context with the given prefix.
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix. // the namespace in the context with the given prefix.
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of the resource. // Retrieve the name field of the resource.
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
......
...@@ -40,7 +40,7 @@ import ( ...@@ -40,7 +40,7 @@ import (
"k8s.io/kubernetes/pkg/auth/authorizer" "k8s.io/kubernetes/pkg/auth/authorizer"
"k8s.io/kubernetes/pkg/auth/handlers" "k8s.io/kubernetes/pkg/auth/handlers"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
genericetcd "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
ipallocator "k8s.io/kubernetes/pkg/registry/service/ipallocator" ipallocator "k8s.io/kubernetes/pkg/registry/service/ipallocator"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/ui" "k8s.io/kubernetes/pkg/ui"
...@@ -246,7 +246,7 @@ type GenericAPIServer struct { ...@@ -246,7 +246,7 @@ type GenericAPIServer struct {
func (s *GenericAPIServer) StorageDecorator() generic.StorageDecorator { func (s *GenericAPIServer) StorageDecorator() generic.StorageDecorator {
if s.enableWatchCache { if s.enableWatchCache {
return genericetcd.StorageWithCacher return registry.StorageWithCacher
} }
return generic.UndecoratedStorage return generic.UndecoratedStorage
} }
......
...@@ -22,12 +22,12 @@ import ( ...@@ -22,12 +22,12 @@ import (
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
) )
// REST implements a RESTStorage for ConfigMap against etcd // REST implements a RESTStorage for ConfigMap against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work with ConfigMap objects. // NewREST returns a RESTStorage object that will work with ConfigMap objects.
...@@ -38,7 +38,7 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -38,7 +38,7 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, 100, &api.ConfigMap{}, prefix, configmap.Strategy, newListFunc) opts.Storage, 100, &api.ConfigMap{}, prefix, configmap.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { NewFunc: func() runtime.Object {
return &api.ConfigMap{} return &api.ConfigMap{}
}, },
...@@ -49,13 +49,13 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -49,13 +49,13 @@ func NewREST(opts generic.RESTOptions) *REST {
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix. // by combining the namespace in the context with the given prefix.
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieves the name field of a ConfigMap object. // Retrieves the name field of a ConfigMap object.
......
...@@ -53,7 +53,7 @@ func validNewConfigMap() *api.ConfigMap { ...@@ -53,7 +53,7 @@ func validNewConfigMap() *api.ConfigMap {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
validConfigMap := validNewConfigMap() validConfigMap := validNewConfigMap()
validConfigMap.ObjectMeta = api.ObjectMeta{ validConfigMap.ObjectMeta = api.ObjectMeta{
...@@ -80,7 +80,7 @@ func TestCreate(t *testing.T) { ...@@ -80,7 +80,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewConfigMap(), validNewConfigMap(),
...@@ -102,28 +102,28 @@ func TestUpdate(t *testing.T) { ...@@ -102,28 +102,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewConfigMap()) test.TestDelete(validNewConfigMap())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewConfigMap()) test.TestGet(validNewConfigMap())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewConfigMap()) test.TestList(validNewConfigMap())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewConfigMap(), validNewConfigMap(),
// matching labels // matching labels
......
...@@ -31,7 +31,7 @@ import ( ...@@ -31,7 +31,7 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/controller" "k8s.io/kubernetes/pkg/registry/controller"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
...@@ -54,7 +54,7 @@ func NewStorage(opts generic.RESTOptions) ControllerStorage { ...@@ -54,7 +54,7 @@ func NewStorage(opts generic.RESTOptions) ControllerStorage {
} }
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against replication controllers. // NewREST returns a RESTStorage object that will work against replication controllers.
...@@ -65,7 +65,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -65,7 +65,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Controllers), &api.ReplicationController{}, prefix, controller.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Controllers), &api.ReplicationController{}, prefix, controller.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.ReplicationController{} }, NewFunc: func() runtime.Object { return &api.ReplicationController{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
...@@ -73,12 +73,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -73,12 +73,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix // by combining the namespace in the context with the given prefix
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of a replication controller // Retrieve the name field of a replication controller
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -109,7 +109,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -109,7 +109,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a replication controller // StatusREST implements the REST endpoint for changing the status of a replication controller
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -87,7 +87,7 @@ var validController = validNewController() ...@@ -87,7 +87,7 @@ var validController = validNewController()
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Controller.Etcd) test := registrytest.New(t, storage.Controller.Store)
controller := validNewController() controller := validNewController()
controller.ObjectMeta = api.ObjectMeta{} controller.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -107,7 +107,7 @@ func TestCreate(t *testing.T) { ...@@ -107,7 +107,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Controller.Etcd) test := registrytest.New(t, storage.Controller.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewController(), validNewController(),
...@@ -134,7 +134,7 @@ func TestUpdate(t *testing.T) { ...@@ -134,7 +134,7 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Controller.Etcd) test := registrytest.New(t, storage.Controller.Store)
test.TestDelete(validNewController()) test.TestDelete(validNewController())
} }
...@@ -191,21 +191,21 @@ func TestGenerationNumber(t *testing.T) { ...@@ -191,21 +191,21 @@ func TestGenerationNumber(t *testing.T) {
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Controller.Etcd) test := registrytest.New(t, storage.Controller.Store)
test.TestGet(validNewController()) test.TestGet(validNewController())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Controller.Etcd) test := registrytest.New(t, storage.Controller.Store)
test.TestList(validNewController()) test.TestList(validNewController())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Controller.Etcd) test := registrytest.New(t, storage.Controller.Store)
test.TestWatch( test.TestWatch(
validController, validController,
// matching labels // matching labels
......
...@@ -24,13 +24,13 @@ import ( ...@@ -24,13 +24,13 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/daemonset" "k8s.io/kubernetes/pkg/registry/daemonset"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// rest implements a RESTStorage for DaemonSets against etcd // rest implements a RESTStorage for DaemonSets against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against DaemonSets. // NewREST returns a RESTStorage object that will work against DaemonSets.
...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Daemonsets), &extensions.DaemonSet{}, prefix, daemonset.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Daemonsets), &extensions.DaemonSet{}, prefix, daemonset.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.DaemonSet{} }, NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix // by combining the namespace in the context with the given prefix
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of a daemon set // Retrieve the name field of a daemon set
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -84,7 +84,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -84,7 +84,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a daemonset // StatusREST implements the REST endpoint for changing the status of a daemonset
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -70,7 +70,7 @@ var validDaemonSet = newValidDaemonSet() ...@@ -70,7 +70,7 @@ var validDaemonSet = newValidDaemonSet()
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
ds := newValidDaemonSet() ds := newValidDaemonSet()
ds.ObjectMeta = api.ObjectMeta{} ds.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -96,7 +96,7 @@ func TestCreate(t *testing.T) { ...@@ -96,7 +96,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
newValidDaemonSet(), newValidDaemonSet(),
...@@ -124,28 +124,28 @@ func TestUpdate(t *testing.T) { ...@@ -124,28 +124,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(newValidDaemonSet()) test.TestDelete(newValidDaemonSet())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(newValidDaemonSet()) test.TestGet(newValidDaemonSet())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(newValidDaemonSet()) test.TestList(newValidDaemonSet())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validDaemonSet, validDaemonSet,
// matching labels // matching labels
......
...@@ -30,7 +30,7 @@ import ( ...@@ -30,7 +30,7 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/deployment" "k8s.io/kubernetes/pkg/registry/deployment"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage" "k8s.io/kubernetes/pkg/storage"
) )
...@@ -56,7 +56,7 @@ func NewStorage(opts generic.RESTOptions) DeploymentStorage { ...@@ -56,7 +56,7 @@ func NewStorage(opts generic.RESTOptions) DeploymentStorage {
} }
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against deployments. // NewREST returns a RESTStorage object that will work against deployments.
...@@ -67,19 +67,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) { ...@@ -67,19 +67,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Deployments), &extensions.Deployment{}, prefix, deployment.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Deployments), &extensions.Deployment{}, prefix, deployment.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.Deployment{} }, NewFunc: func() runtime.Object { return &extensions.Deployment{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
NewListFunc: newListFunc, NewListFunc: newListFunc,
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix. // by combining the namespace in the context with the given prefix.
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix. // the namespace in the context with the given prefix.
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of a deployment. // Retrieve the name field of a deployment.
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -108,7 +108,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) { ...@@ -108,7 +108,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) {
// StatusREST implements the REST endpoint for changing the status of a deployment // StatusREST implements the REST endpoint for changing the status of a deployment
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
...@@ -122,7 +122,7 @@ func (r *StatusREST) Update(ctx api.Context, obj runtime.Object) (runtime.Object ...@@ -122,7 +122,7 @@ func (r *StatusREST) Update(ctx api.Context, obj runtime.Object) (runtime.Object
// RollbackREST implements the REST endpoint for initiating the rollback of a deployment // RollbackREST implements the REST endpoint for initiating the rollback of a deployment
type RollbackREST struct { type RollbackREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
// New creates a rollback // New creates a rollback
......
...@@ -84,7 +84,7 @@ var validDeployment = *validNewDeployment() ...@@ -84,7 +84,7 @@ var validDeployment = *validNewDeployment()
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Deployment.Etcd) test := registrytest.New(t, storage.Deployment.Store)
deployment := validNewDeployment() deployment := validNewDeployment()
deployment.ObjectMeta = api.ObjectMeta{} deployment.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -103,7 +103,7 @@ func TestCreate(t *testing.T) { ...@@ -103,7 +103,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Deployment.Etcd) test := registrytest.New(t, storage.Deployment.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewDeployment(), validNewDeployment(),
...@@ -135,28 +135,28 @@ func TestUpdate(t *testing.T) { ...@@ -135,28 +135,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Deployment.Etcd) test := registrytest.New(t, storage.Deployment.Store)
test.TestDelete(validNewDeployment()) test.TestDelete(validNewDeployment())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Deployment.Etcd) test := registrytest.New(t, storage.Deployment.Store)
test.TestGet(validNewDeployment()) test.TestGet(validNewDeployment())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Deployment.Etcd) test := registrytest.New(t, storage.Deployment.Store)
test.TestList(validNewDeployment()) test.TestList(validNewDeployment())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Deployment.Etcd) test := registrytest.New(t, storage.Deployment.Store)
test.TestWatch( test.TestWatch(
validNewDeployment(), validNewDeployment(),
// matching labels // matching labels
......
...@@ -23,12 +23,12 @@ import ( ...@@ -23,12 +23,12 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/endpoint" "k8s.io/kubernetes/pkg/registry/endpoint"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against endpoints. // NewREST returns a RESTStorage object that will work against endpoints.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Endpoints), &api.Endpoints{}, prefix, endpoint.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Endpoints), &api.Endpoints{}, prefix, endpoint.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.Endpoints{} }, NewFunc: func() runtime.Object { return &api.Endpoints{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.Endpoints).Name, nil return obj.(*api.Endpoints).Name, nil
......
...@@ -60,7 +60,7 @@ func validChangedEndpoints() *api.Endpoints { ...@@ -60,7 +60,7 @@ func validChangedEndpoints() *api.Endpoints {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
endpoints := validNewEndpoints() endpoints := validNewEndpoints()
endpoints.ObjectMeta = api.ObjectMeta{} endpoints.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -76,7 +76,7 @@ func TestCreate(t *testing.T) { ...@@ -76,7 +76,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).AllowCreateOnUpdate() test := registrytest.New(t, storage.Store).AllowCreateOnUpdate()
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewEndpoints(), validNewEndpoints(),
...@@ -95,28 +95,28 @@ func TestUpdate(t *testing.T) { ...@@ -95,28 +95,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewEndpoints()) test.TestDelete(validNewEndpoints())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewEndpoints()) test.TestGet(validNewEndpoints())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewEndpoints()) test.TestList(validNewEndpoints())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewEndpoints(), validNewEndpoints(),
// matching labels // matching labels
......
...@@ -22,12 +22,12 @@ import ( ...@@ -22,12 +22,12 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/event" "k8s.io/kubernetes/pkg/registry/event"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against events. // NewREST returns a RESTStorage object that will work against events.
...@@ -38,14 +38,14 @@ func NewREST(opts generic.RESTOptions, ttl uint64) *REST { ...@@ -38,14 +38,14 @@ func NewREST(opts generic.RESTOptions, ttl uint64) *REST {
// for events will lead to too high memory consumption. // for events will lead to too high memory consumption.
storageInterface := opts.Storage storageInterface := opts.Storage
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.Event{} }, NewFunc: func() runtime.Object { return &api.Event{} },
NewListFunc: func() runtime.Object { return &api.EventList{} }, NewListFunc: func() runtime.Object { return &api.EventList{} },
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, id string) (string, error) { KeyFunc: func(ctx api.Context, id string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, id) return registry.NamespaceKeyFunc(ctx, prefix, id)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.Event).Name, nil return obj.(*api.Event).Name, nil
......
...@@ -51,7 +51,7 @@ func validNewEvent(namespace string) *api.Event { ...@@ -51,7 +51,7 @@ func validNewEvent(namespace string) *api.Event {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
event := validNewEvent(test.TestNamespace()) event := validNewEvent(test.TestNamespace())
event.ObjectMeta = api.ObjectMeta{} event.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -65,7 +65,7 @@ func TestCreate(t *testing.T) { ...@@ -65,7 +65,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).AllowCreateOnUpdate() test := registrytest.New(t, storage.Store).AllowCreateOnUpdate()
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewEvent(test.TestNamespace()), validNewEvent(test.TestNamespace()),
...@@ -87,6 +87,6 @@ func TestUpdate(t *testing.T) { ...@@ -87,6 +87,6 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewEvent(test.TestNamespace())) test.TestDelete(validNewEvent(test.TestNamespace()))
} }
...@@ -16,4 +16,4 @@ limitations under the License. ...@@ -16,4 +16,4 @@ limitations under the License.
// Package etcd has a generic implementation of a registry that // Package etcd has a generic implementation of a registry that
// stores things in etcd. // stores things in etcd.
package etcd package registry
...@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and ...@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package etcd package registry
import ( import (
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
......
...@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and ...@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
package etcd package registry
import ( import (
"fmt" "fmt"
...@@ -87,13 +87,13 @@ func hasCreated(t *testing.T, pod *api.Pod) func(runtime.Object) bool { ...@@ -87,13 +87,13 @@ func hasCreated(t *testing.T, pod *api.Pod) func(runtime.Object) bool {
} }
} }
func NewTestGenericEtcdRegistry(t *testing.T) (*etcdtesting.EtcdTestServer, *Etcd) { func NewTestGenericStoreRegistry(t *testing.T) (*etcdtesting.EtcdTestServer, *Store) {
podPrefix := "/pods" podPrefix := "/pods"
server := etcdtesting.NewEtcdTestClientServer(t) server := etcdtesting.NewEtcdTestClientServer(t)
s := etcdstorage.NewEtcdStorage(server.Client, testapi.Default.Codec(), etcdtest.PathPrefix(), false, etcdtest.DeserializationCacheSize) s := etcdstorage.NewEtcdStorage(server.Client, testapi.Default.Codec(), etcdtest.PathPrefix(), false, etcdtest.DeserializationCacheSize)
strategy := &testRESTStrategy{api.Scheme, api.SimpleNameGenerator, true, false, true} strategy := &testRESTStrategy{api.Scheme, api.SimpleNameGenerator, true, false, true}
return server, &Etcd{ return server, &Store{
NewFunc: func() runtime.Object { return &api.Pod{} }, NewFunc: func() runtime.Object { return &api.Pod{} },
NewListFunc: func() runtime.Object { return &api.PodList{} }, NewListFunc: func() runtime.Object { return &api.PodList{} },
QualifiedResource: api.Resource("pods"), QualifiedResource: api.Resource("pods"),
...@@ -160,7 +160,7 @@ func (everythingMatcher) MatchesSingle() (string, bool) { ...@@ -160,7 +160,7 @@ func (everythingMatcher) MatchesSingle() (string, bool) {
return "", false return "", false
} }
func TestEtcdList(t *testing.T) { func TestStoreList(t *testing.T) {
podA := &api.Pod{ podA := &api.Pod{
ObjectMeta: api.ObjectMeta{Namespace: "test", Name: "bar"}, ObjectMeta: api.ObjectMeta{Namespace: "test", Name: "bar"},
Spec: api.PodSpec{NodeName: "machine"}, Spec: api.PodSpec{NodeName: "machine"},
...@@ -212,7 +212,7 @@ func TestEtcdList(t *testing.T) { ...@@ -212,7 +212,7 @@ func TestEtcdList(t *testing.T) {
if item.context != nil { if item.context != nil {
ctx = item.context ctx = item.context
} }
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
if item.in != nil { if item.in != nil {
if err := storagetesting.CreateList("/pods", registry.Storage, item.in); err != nil { if err := storagetesting.CreateList("/pods", registry.Storage, item.in); err != nil {
...@@ -234,7 +234,7 @@ func TestEtcdList(t *testing.T) { ...@@ -234,7 +234,7 @@ func TestEtcdList(t *testing.T) {
} }
} }
func TestEtcdCreate(t *testing.T) { func TestStoreCreate(t *testing.T) {
podA := &api.Pod{ podA := &api.Pod{
ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "test"}, ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "test"},
Spec: api.PodSpec{NodeName: "machine"}, Spec: api.PodSpec{NodeName: "machine"},
...@@ -245,7 +245,7 @@ func TestEtcdCreate(t *testing.T) { ...@@ -245,7 +245,7 @@ func TestEtcdCreate(t *testing.T) {
} }
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
// create the object // create the object
...@@ -272,7 +272,7 @@ func TestEtcdCreate(t *testing.T) { ...@@ -272,7 +272,7 @@ func TestEtcdCreate(t *testing.T) {
} }
} }
func updateAndVerify(t *testing.T, ctx api.Context, registry *Etcd, pod *api.Pod) bool { func updateAndVerify(t *testing.T, ctx api.Context, registry *Store, pod *api.Pod) bool {
obj, _, err := registry.Update(ctx, pod) obj, _, err := registry.Update(ctx, pod)
if err != nil { if err != nil {
t.Errorf("Unexpected error: %v", err) t.Errorf("Unexpected error: %v", err)
...@@ -290,7 +290,7 @@ func updateAndVerify(t *testing.T, ctx api.Context, registry *Etcd, pod *api.Pod ...@@ -290,7 +290,7 @@ func updateAndVerify(t *testing.T, ctx api.Context, registry *Etcd, pod *api.Pod
return true return true
} }
func TestEtcdUpdate(t *testing.T) { func TestStoreUpdate(t *testing.T) {
podA := &api.Pod{ podA := &api.Pod{
ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "test"}, ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "test"},
Spec: api.PodSpec{NodeName: "machine"}, Spec: api.PodSpec{NodeName: "machine"},
...@@ -305,7 +305,7 @@ func TestEtcdUpdate(t *testing.T) { ...@@ -305,7 +305,7 @@ func TestEtcdUpdate(t *testing.T) {
} }
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
// Test1 try to update a non-existing node // Test1 try to update a non-existing node
...@@ -343,7 +343,7 @@ func TestEtcdUpdate(t *testing.T) { ...@@ -343,7 +343,7 @@ func TestEtcdUpdate(t *testing.T) {
} }
func TestNoOpUpdates(t *testing.T) { func TestNoOpUpdates(t *testing.T) {
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
newPod := func() *api.Pod { newPod := func() *api.Pod {
...@@ -414,7 +414,7 @@ func (t testPodExport) Export(obj runtime.Object, exact bool) error { ...@@ -414,7 +414,7 @@ func (t testPodExport) Export(obj runtime.Object, exact bool) error {
return nil return nil
} }
func TestEtcdCustomExport(t *testing.T) { func TestStoreCustomExport(t *testing.T) {
podA := api.Pod{ podA := api.Pod{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Namespace: "test", Namespace: "test",
...@@ -424,7 +424,7 @@ func TestEtcdCustomExport(t *testing.T) { ...@@ -424,7 +424,7 @@ func TestEtcdCustomExport(t *testing.T) {
Spec: api.PodSpec{NodeName: "machine"}, Spec: api.PodSpec{NodeName: "machine"},
} }
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
registry.ExportStrategy = testPodExport{} registry.ExportStrategy = testPodExport{}
...@@ -455,7 +455,7 @@ func TestEtcdCustomExport(t *testing.T) { ...@@ -455,7 +455,7 @@ func TestEtcdCustomExport(t *testing.T) {
} }
} }
func TestEtcdBasicExport(t *testing.T) { func TestStoreBasicExport(t *testing.T) {
podA := api.Pod{ podA := api.Pod{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Namespace: "test", Namespace: "test",
...@@ -466,7 +466,7 @@ func TestEtcdBasicExport(t *testing.T) { ...@@ -466,7 +466,7 @@ func TestEtcdBasicExport(t *testing.T) {
Status: api.PodStatus{HostIP: "1.2.3.4"}, Status: api.PodStatus{HostIP: "1.2.3.4"},
} }
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
...@@ -490,14 +490,14 @@ func TestEtcdBasicExport(t *testing.T) { ...@@ -490,14 +490,14 @@ func TestEtcdBasicExport(t *testing.T) {
} }
} }
func TestEtcdGet(t *testing.T) { func TestStoreGet(t *testing.T) {
podA := &api.Pod{ podA := &api.Pod{
ObjectMeta: api.ObjectMeta{Namespace: "test", Name: "foo"}, ObjectMeta: api.ObjectMeta{Namespace: "test", Name: "foo"},
Spec: api.PodSpec{NodeName: "machine"}, Spec: api.PodSpec{NodeName: "machine"},
} }
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
_, err := registry.Get(testContext, podA.Name) _, err := registry.Get(testContext, podA.Name)
...@@ -511,14 +511,14 @@ func TestEtcdGet(t *testing.T) { ...@@ -511,14 +511,14 @@ func TestEtcdGet(t *testing.T) {
} }
} }
func TestEtcdDelete(t *testing.T) { func TestStoreDelete(t *testing.T) {
podA := &api.Pod{ podA := &api.Pod{
ObjectMeta: api.ObjectMeta{Name: "foo"}, ObjectMeta: api.ObjectMeta{Name: "foo"},
Spec: api.PodSpec{NodeName: "machine"}, Spec: api.PodSpec{NodeName: "machine"},
} }
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
// test failure condition // test failure condition
...@@ -546,12 +546,12 @@ func TestEtcdDelete(t *testing.T) { ...@@ -546,12 +546,12 @@ func TestEtcdDelete(t *testing.T) {
} }
} }
func TestEtcdDeleteCollection(t *testing.T) { func TestStoreDeleteCollection(t *testing.T) {
podA := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} podA := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}}
podB := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "bar"}} podB := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "bar"}}
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
if _, err := registry.Create(testContext, podA); err != nil { if _, err := registry.Create(testContext, podA); err != nil {
...@@ -579,8 +579,8 @@ func TestEtcdDeleteCollection(t *testing.T) { ...@@ -579,8 +579,8 @@ func TestEtcdDeleteCollection(t *testing.T) {
} }
} }
func TestEtcdDeleteCollectionNotFound(t *testing.T) { func TestStoreDeleteCollectionNotFound(t *testing.T) {
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
...@@ -622,11 +622,11 @@ func TestEtcdDeleteCollectionNotFound(t *testing.T) { ...@@ -622,11 +622,11 @@ func TestEtcdDeleteCollectionNotFound(t *testing.T) {
// Test whether objects deleted with DeleteCollection are correctly delivered // Test whether objects deleted with DeleteCollection are correctly delivered
// to watchers. // to watchers.
func TestEtcdDeleteCollectionWithWatch(t *testing.T) { func TestStoreDeleteCollectionWithWatch(t *testing.T) {
podA := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}} podA := &api.Pod{ObjectMeta: api.ObjectMeta{Name: "foo"}}
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
defer server.Terminate(t) defer server.Terminate(t)
objCreated, err := registry.Create(testContext, podA) objCreated, err := registry.Create(testContext, podA)
...@@ -660,7 +660,7 @@ func TestEtcdDeleteCollectionWithWatch(t *testing.T) { ...@@ -660,7 +660,7 @@ func TestEtcdDeleteCollectionWithWatch(t *testing.T) {
} }
} }
func TestEtcdWatch(t *testing.T) { func TestStoreWatch(t *testing.T) {
testContext := api.WithNamespace(api.NewContext(), "test") testContext := api.WithNamespace(api.NewContext(), "test")
noNamespaceContext := api.NewContext() noNamespaceContext := api.NewContext()
...@@ -693,7 +693,7 @@ func TestEtcdWatch(t *testing.T) { ...@@ -693,7 +693,7 @@ func TestEtcdWatch(t *testing.T) {
Spec: api.PodSpec{NodeName: "machine"}, Spec: api.PodSpec{NodeName: "machine"},
} }
server, registry := NewTestGenericEtcdRegistry(t) server, registry := NewTestGenericStoreRegistry(t)
wi, err := registry.WatchPredicate(ctx, m, "0") wi, err := registry.WatchPredicate(ctx, m, "0")
if err != nil { if err != nil {
t.Errorf("%v: unexpected error: %v", name, err) t.Errorf("%v: unexpected error: %v", name, err)
......
...@@ -23,13 +23,13 @@ import ( ...@@ -23,13 +23,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/horizontalpodautoscaler" "k8s.io/kubernetes/pkg/registry/horizontalpodautoscaler"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers. // NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
...@@ -40,19 +40,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -40,19 +40,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.HorizontalPodAutoscalers), &extensions.HorizontalPodAutoscaler{}, prefix, horizontalpodautoscaler.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.HorizontalPodAutoscalers), &extensions.HorizontalPodAutoscaler{}, prefix, horizontalpodautoscaler.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.HorizontalPodAutoscaler{} }, NewFunc: func() runtime.Object { return &extensions.HorizontalPodAutoscaler{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
NewListFunc: newListFunc, NewListFunc: newListFunc,
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix // by combining the namespace in the context with the given prefix
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of an autoscaler // Retrieve the name field of an autoscaler
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -81,7 +81,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -81,7 +81,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a daemonset // StatusREST implements the REST endpoint for changing the status of a daemonset
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -59,7 +59,7 @@ func validNewHorizontalPodAutoscaler(name string) *extensions.HorizontalPodAutos ...@@ -59,7 +59,7 @@ func validNewHorizontalPodAutoscaler(name string) *extensions.HorizontalPodAutos
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
autoscaler := validNewHorizontalPodAutoscaler("foo") autoscaler := validNewHorizontalPodAutoscaler("foo")
autoscaler.ObjectMeta = api.ObjectMeta{} autoscaler.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -73,7 +73,7 @@ func TestCreate(t *testing.T) { ...@@ -73,7 +73,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewHorizontalPodAutoscaler("foo"), validNewHorizontalPodAutoscaler("foo"),
...@@ -89,28 +89,28 @@ func TestUpdate(t *testing.T) { ...@@ -89,28 +89,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewHorizontalPodAutoscaler("foo")) test.TestDelete(validNewHorizontalPodAutoscaler("foo"))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewHorizontalPodAutoscaler("foo")) test.TestGet(validNewHorizontalPodAutoscaler("foo"))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewHorizontalPodAutoscaler("foo")) test.TestList(validNewHorizontalPodAutoscaler("foo"))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewHorizontalPodAutoscaler("foo"), validNewHorizontalPodAutoscaler("foo"),
// matching labels // matching labels
......
...@@ -23,14 +23,14 @@ import ( ...@@ -23,14 +23,14 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
ingress "k8s.io/kubernetes/pkg/registry/ingress" ingress "k8s.io/kubernetes/pkg/registry/ingress"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// rest implements a RESTStorage for replication controllers against etcd // rest implements a RESTStorage for replication controllers against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against replication controllers. // NewREST returns a RESTStorage object that will work against replication controllers.
...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Ingress), &extensions.Ingress{}, prefix, ingress.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Ingress), &extensions.Ingress{}, prefix, ingress.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.Ingress{} }, NewFunc: func() runtime.Object { return &extensions.Ingress{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a ingress that etcd understands, to the root of the resource // Produces a ingress that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix // by combining the namespace in the context with the given prefix
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a ingress that etcd understands, to the resource by combining // Produces a ingress that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of a replication controller // Retrieve the name field of a replication controller
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -83,7 +83,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -83,7 +83,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of an ingress // StatusREST implements the REST endpoint for changing the status of an ingress
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -115,7 +115,7 @@ func validIngress() *extensions.Ingress { ...@@ -115,7 +115,7 @@ func validIngress() *extensions.Ingress {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
ingress := validIngress() ingress := validIngress()
noDefaultBackendAndRules := validIngress() noDefaultBackendAndRules := validIngress()
noDefaultBackendAndRules.Spec.Backend = &extensions.IngressBackend{} noDefaultBackendAndRules.Spec.Backend = &extensions.IngressBackend{}
...@@ -134,7 +134,7 @@ func TestCreate(t *testing.T) { ...@@ -134,7 +134,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validIngress(), validIngress(),
...@@ -169,28 +169,28 @@ func TestUpdate(t *testing.T) { ...@@ -169,28 +169,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validIngress()) test.TestDelete(validIngress())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validIngress()) test.TestGet(validIngress())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validIngress()) test.TestList(validIngress())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validIngress(), validIngress(),
// matching labels // matching labels
......
...@@ -23,14 +23,14 @@ import ( ...@@ -23,14 +23,14 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/job" "k8s.io/kubernetes/pkg/registry/job"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// REST implements a RESTStorage for jobs against etcd // REST implements a RESTStorage for jobs against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against Jobs. // NewREST returns a RESTStorage object that will work against Jobs.
...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Jobs), &batch.Job{}, prefix, job.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Jobs), &batch.Job{}, prefix, job.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &batch.Job{} }, NewFunc: func() runtime.Object { return &batch.Job{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix // by combining the namespace in the context with the given prefix
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of a job // Retrieve the name field of a job
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -85,7 +85,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -85,7 +85,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a resourcequota. // StatusREST implements the REST endpoint for changing the status of a resourcequota.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -76,7 +76,7 @@ func validNewJob() *batch.Job { ...@@ -76,7 +76,7 @@ func validNewJob() *batch.Job {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
validJob := validNewJob() validJob := validNewJob()
validJob.ObjectMeta = api.ObjectMeta{} validJob.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -96,7 +96,7 @@ func TestCreate(t *testing.T) { ...@@ -96,7 +96,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
two := 2 two := 2
test.TestUpdate( test.TestUpdate(
// valid // valid
...@@ -124,28 +124,28 @@ func TestUpdate(t *testing.T) { ...@@ -124,28 +124,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewJob()) test.TestDelete(validNewJob())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewJob()) test.TestGet(validNewJob())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewJob()) test.TestList(validNewJob())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewJob(), validNewJob(),
// matching labels // matching labels
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/limitrange" "k8s.io/kubernetes/pkg/registry/limitrange"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers. // NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.LimitRanges), &api.LimitRange{}, prefix, limitrange.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.LimitRanges), &api.LimitRange{}, prefix, limitrange.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.LimitRange{} }, NewFunc: func() runtime.Object { return &api.LimitRange{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, id string) (string, error) { KeyFunc: func(ctx api.Context, id string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, id) return registry.NamespaceKeyFunc(ctx, prefix, id)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.LimitRange).Name, nil return obj.(*api.LimitRange).Name, nil
......
...@@ -62,7 +62,7 @@ func validNewLimitRange() *api.LimitRange { ...@@ -62,7 +62,7 @@ func validNewLimitRange() *api.LimitRange {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).GeneratesName() test := registrytest.New(t, storage.Store).GeneratesName()
validLimitRange := validNewLimitRange() validLimitRange := validNewLimitRange()
validLimitRange.ObjectMeta = api.ObjectMeta{} validLimitRange.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -78,7 +78,7 @@ func TestCreate(t *testing.T) { ...@@ -78,7 +78,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).AllowCreateOnUpdate() test := registrytest.New(t, storage.Store).AllowCreateOnUpdate()
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewLimitRange(), validNewLimitRange(),
...@@ -106,28 +106,28 @@ func TestUpdate(t *testing.T) { ...@@ -106,28 +106,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewLimitRange()) test.TestDelete(validNewLimitRange())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewLimitRange()) test.TestGet(validNewLimitRange())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewLimitRange()) test.TestList(validNewLimitRange())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewLimitRange(), validNewLimitRange(),
// matching labels // matching labels
......
...@@ -26,25 +26,25 @@ import ( ...@@ -26,25 +26,25 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/namespace" "k8s.io/kubernetes/pkg/registry/namespace"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// rest implements a RESTStorage for namespaces against etcd // rest implements a RESTStorage for namespaces against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
status *etcdgeneric.Etcd status *registry.Store
} }
// StatusREST implements the REST endpoint for changing the status of a namespace. // StatusREST implements the REST endpoint for changing the status of a namespace.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
// FinalizeREST implements the REST endpoint for finalizing a namespace. // FinalizeREST implements the REST endpoint for finalizing a namespace.
type FinalizeREST struct { type FinalizeREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
// NewREST returns a RESTStorage object that will work against namespaces. // NewREST returns a RESTStorage object that will work against namespaces.
...@@ -55,14 +55,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *FinalizeREST) { ...@@ -55,14 +55,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *FinalizeREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Namespaces), &api.Namespace{}, prefix, namespace.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Namespaces), &api.Namespace{}, prefix, namespace.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.Namespace{} }, NewFunc: func() runtime.Object { return &api.Namespace{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return prefix return prefix
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NoNamespaceKeyFunc(ctx, prefix, name) return registry.NoNamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.Namespace).Name, nil return obj.(*api.Namespace).Name, nil
...@@ -87,7 +87,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *FinalizeREST) { ...@@ -87,7 +87,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *FinalizeREST) {
finalizeStore := *store finalizeStore := *store
finalizeStore.UpdateStrategy = namespace.FinalizeStrategy finalizeStore.UpdateStrategy = namespace.FinalizeStrategy
return &REST{Etcd: store, status: &statusStore}, &StatusREST{store: &statusStore}, &FinalizeREST{store: &finalizeStore} return &REST{Store: store, status: &statusStore}, &StatusREST{store: &statusStore}, &FinalizeREST{store: &finalizeStore}
} }
// Delete enforces life-cycle rules for namespace termination // Delete enforces life-cycle rules for namespace termination
...@@ -113,7 +113,7 @@ func (r *REST) Delete(ctx api.Context, name string, options *api.DeleteOptions) ...@@ -113,7 +113,7 @@ func (r *REST) Delete(ctx api.Context, name string, options *api.DeleteOptions)
err = apierrors.NewConflict(api.Resource("namespaces"), namespace.Name, fmt.Errorf("The system is ensuring all content is removed from this namespace. Upon completion, this namespace will automatically be purged by the system.")) err = apierrors.NewConflict(api.Resource("namespaces"), namespace.Name, fmt.Errorf("The system is ensuring all content is removed from this namespace. Upon completion, this namespace will automatically be purged by the system."))
return nil, err return nil, err
} }
return r.Etcd.Delete(ctx, name, nil) return r.Store.Delete(ctx, name, nil)
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -47,7 +47,7 @@ func validNewNamespace() *api.Namespace { ...@@ -47,7 +47,7 @@ func validNewNamespace() *api.Namespace {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
namespace := validNewNamespace() namespace := validNewNamespace()
namespace.ObjectMeta = api.ObjectMeta{GenerateName: "foo"} namespace.ObjectMeta = api.ObjectMeta{GenerateName: "foo"}
test.TestCreate( test.TestCreate(
...@@ -89,28 +89,28 @@ func TestCreateSetsFields(t *testing.T) { ...@@ -89,28 +89,28 @@ func TestCreateSetsFields(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope().ReturnDeletedObject() test := registrytest.New(t, storage.Store).ClusterScope().ReturnDeletedObject()
test.TestDelete(validNewNamespace()) test.TestDelete(validNewNamespace())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestGet(validNewNamespace()) test.TestGet(validNewNamespace())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestList(validNewNamespace()) test.TestList(validNewNamespace())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestWatch( test.TestWatch(
validNewNamespace(), validNewNamespace(),
// matching labels // matching labels
......
...@@ -26,7 +26,7 @@ import ( ...@@ -26,7 +26,7 @@ import (
"k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/node" "k8s.io/kubernetes/pkg/registry/node"
noderest "k8s.io/kubernetes/pkg/registry/node/rest" noderest "k8s.io/kubernetes/pkg/registry/node/rest"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
...@@ -40,14 +40,14 @@ type NodeStorage struct { ...@@ -40,14 +40,14 @@ type NodeStorage struct {
} }
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
connection client.ConnectionInfoGetter connection client.ConnectionInfoGetter
proxyTransport http.RoundTripper proxyTransport http.RoundTripper
} }
// StatusREST implements the REST endpoint for changing the status of a pod. // StatusREST implements the REST endpoint for changing the status of a pod.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
...@@ -67,14 +67,14 @@ func NewStorage(opts generic.RESTOptions, connection client.ConnectionInfoGetter ...@@ -67,14 +67,14 @@ func NewStorage(opts generic.RESTOptions, connection client.ConnectionInfoGetter
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Nodes), &api.Node{}, prefix, node.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Nodes), &api.Node{}, prefix, node.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.Node{} }, NewFunc: func() runtime.Object { return &api.Node{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return prefix return prefix
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NoNamespaceKeyFunc(ctx, prefix, name) return registry.NoNamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.Node).Name, nil return obj.(*api.Node).Name, nil
......
...@@ -67,7 +67,7 @@ func validNewNode() *api.Node { ...@@ -67,7 +67,7 @@ func validNewNode() *api.Node {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
node := validNewNode() node := validNewNode()
node.ObjectMeta = api.ObjectMeta{GenerateName: "foo"} node.ObjectMeta = api.ObjectMeta{GenerateName: "foo"}
test.TestCreate( test.TestCreate(
...@@ -83,7 +83,7 @@ func TestCreate(t *testing.T) { ...@@ -83,7 +83,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewNode(), validNewNode(),
...@@ -99,28 +99,28 @@ func TestUpdate(t *testing.T) { ...@@ -99,28 +99,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestDelete(validNewNode()) test.TestDelete(validNewNode())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestGet(validNewNode()) test.TestGet(validNewNode())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestList(validNewNode()) test.TestList(validNewNode())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestWatch( test.TestWatch(
validNewNode(), validNewNode(),
// matching labels // matching labels
......
...@@ -26,7 +26,7 @@ import ( ...@@ -26,7 +26,7 @@ import (
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/capabilities"
"k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/kubelet/client"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
genericrest "k8s.io/kubernetes/pkg/registry/generic/rest" genericrest "k8s.io/kubernetes/pkg/registry/generic/rest"
"k8s.io/kubernetes/pkg/registry/node" "k8s.io/kubernetes/pkg/registry/node"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
...@@ -34,7 +34,7 @@ import ( ...@@ -34,7 +34,7 @@ import (
// ProxyREST implements the proxy subresource for a Node // ProxyREST implements the proxy subresource for a Node
type ProxyREST struct { type ProxyREST struct {
Store *etcdgeneric.Etcd Store *registry.Store
Connection client.ConnectionInfoGetter Connection client.ConnectionInfoGetter
ProxyTransport http.RoundTripper ProxyTransport http.RoundTripper
} }
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/persistentvolume" "k8s.io/kubernetes/pkg/registry/persistentvolume"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against persistent volumes. // NewREST returns a RESTStorage object that will work against persistent volumes.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PersistentVolumes), &api.PersistentVolume{}, prefix, persistentvolume.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PersistentVolumes), &api.PersistentVolume{}, prefix, persistentvolume.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.PersistentVolume{} }, NewFunc: func() runtime.Object { return &api.PersistentVolume{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return prefix return prefix
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NoNamespaceKeyFunc(ctx, prefix, name) return registry.NoNamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.PersistentVolume).Name, nil return obj.(*api.PersistentVolume).Name, nil
...@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a persistentvolume. // StatusREST implements the REST endpoint for changing the status of a persistentvolume.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -70,7 +70,7 @@ func validChangedPersistentVolume() *api.PersistentVolume { ...@@ -70,7 +70,7 @@ func validChangedPersistentVolume() *api.PersistentVolume {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
pv := validNewPersistentVolume("foo") pv := validNewPersistentVolume("foo")
pv.ObjectMeta = api.ObjectMeta{GenerateName: "foo"} pv.ObjectMeta = api.ObjectMeta{GenerateName: "foo"}
test.TestCreate( test.TestCreate(
...@@ -86,7 +86,7 @@ func TestCreate(t *testing.T) { ...@@ -86,7 +86,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewPersistentVolume("foo"), validNewPersistentVolume("foo"),
...@@ -104,28 +104,28 @@ func TestUpdate(t *testing.T) { ...@@ -104,28 +104,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope().ReturnDeletedObject() test := registrytest.New(t, storage.Store).ClusterScope().ReturnDeletedObject()
test.TestDelete(validNewPersistentVolume("foo")) test.TestDelete(validNewPersistentVolume("foo"))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestGet(validNewPersistentVolume("foo")) test.TestGet(validNewPersistentVolume("foo"))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestList(validNewPersistentVolume("foo")) test.TestList(validNewPersistentVolume("foo"))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestWatch( test.TestWatch(
validNewPersistentVolume("foo"), validNewPersistentVolume("foo"),
// matching labels // matching labels
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/persistentvolumeclaim" "k8s.io/kubernetes/pkg/registry/persistentvolumeclaim"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against persistent volume claims. // NewREST returns a RESTStorage object that will work against persistent volume claims.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PersistentVolumeClaims), &api.PersistentVolumeClaim{}, prefix, persistentvolumeclaim.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PersistentVolumeClaims), &api.PersistentVolumeClaim{}, prefix, persistentvolumeclaim.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} }, NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.PersistentVolumeClaim).Name, nil return obj.(*api.PersistentVolumeClaim).Name, nil
...@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a persistentvolumeclaim. // StatusREST implements the REST endpoint for changing the status of a persistentvolumeclaim.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -62,7 +62,7 @@ func validNewPersistentVolumeClaim(name, ns string) *api.PersistentVolumeClaim { ...@@ -62,7 +62,7 @@ func validNewPersistentVolumeClaim(name, ns string) *api.PersistentVolumeClaim {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
pv := validNewPersistentVolumeClaim("foo", api.NamespaceDefault) pv := validNewPersistentVolumeClaim("foo", api.NamespaceDefault)
pv.ObjectMeta = api.ObjectMeta{} pv.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -78,7 +78,7 @@ func TestCreate(t *testing.T) { ...@@ -78,7 +78,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewPersistentVolumeClaim("foo", api.NamespaceDefault), validNewPersistentVolumeClaim("foo", api.NamespaceDefault),
...@@ -98,28 +98,28 @@ func TestUpdate(t *testing.T) { ...@@ -98,28 +98,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ReturnDeletedObject() test := registrytest.New(t, storage.Store).ReturnDeletedObject()
test.TestDelete(validNewPersistentVolumeClaim("foo", api.NamespaceDefault)) test.TestDelete(validNewPersistentVolumeClaim("foo", api.NamespaceDefault))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewPersistentVolumeClaim("foo", api.NamespaceDefault)) test.TestGet(validNewPersistentVolumeClaim("foo", api.NamespaceDefault))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewPersistentVolumeClaim("foo", api.NamespaceDefault)) test.TestList(validNewPersistentVolumeClaim("foo", api.NamespaceDefault))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewPersistentVolumeClaim("foo", api.NamespaceDefault), validNewPersistentVolumeClaim("foo", api.NamespaceDefault),
// matching labels // matching labels
......
...@@ -23,14 +23,14 @@ import ( ...@@ -23,14 +23,14 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/petset" "k8s.io/kubernetes/pkg/registry/petset"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// rest implements a RESTStorage for replication controllers against etcd // rest implements a RESTStorage for replication controllers against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against replication controllers. // NewREST returns a RESTStorage object that will work against replication controllers.
...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PetSet), &appsapi.PetSet{}, prefix, petset.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PetSet), &appsapi.PetSet{}, prefix, petset.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &appsapi.PetSet{} }, NewFunc: func() runtime.Object { return &appsapi.PetSet{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a petSet that etcd understands, to the root of the resource // Produces a petSet that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix // by combining the namespace in the context with the given prefix
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a petSet that etcd understands, to the resource by combining // Produces a petSet that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of a replication controller // Retrieve the name field of a replication controller
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -83,7 +83,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -83,7 +83,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of an petSet // StatusREST implements the REST endpoint for changing the status of an petSet
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -82,7 +82,7 @@ func validNewPetSet() *apps.PetSet { ...@@ -82,7 +82,7 @@ func validNewPetSet() *apps.PetSet {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
ps := validNewPetSet() ps := validNewPetSet()
ps.ObjectMeta = api.ObjectMeta{} ps.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -134,28 +134,28 @@ func TestStatusUpdate(t *testing.T) { ...@@ -134,28 +134,28 @@ func TestStatusUpdate(t *testing.T) {
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewPetSet()) test.TestGet(validNewPetSet())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewPetSet()) test.TestList(validNewPetSet())
} }
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewPetSet()) test.TestDelete(validNewPetSet())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewPetSet(), validNewPetSet(),
// matching labels // matching labels
......
...@@ -32,7 +32,7 @@ import ( ...@@ -32,7 +32,7 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/pod" "k8s.io/kubernetes/pkg/registry/pod"
podrest "k8s.io/kubernetes/pkg/registry/pod/rest" podrest "k8s.io/kubernetes/pkg/registry/pod/rest"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
...@@ -53,7 +53,7 @@ type PodStorage struct { ...@@ -53,7 +53,7 @@ type PodStorage struct {
// REST implements a RESTStorage for pods against etcd // REST implements a RESTStorage for pods against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
proxyTransport http.RoundTripper proxyTransport http.RoundTripper
} }
...@@ -65,14 +65,14 @@ func NewStorage(opts generic.RESTOptions, k client.ConnectionInfoGetter, proxyTr ...@@ -65,14 +65,14 @@ func NewStorage(opts generic.RESTOptions, k client.ConnectionInfoGetter, proxyTr
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Pods), &api.Pod{}, prefix, pod.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Pods), &api.Pod{}, prefix, pod.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.Pod{} }, NewFunc: func() runtime.Object { return &api.Pod{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.Pod).Name, nil return obj.(*api.Pod).Name, nil
...@@ -116,7 +116,7 @@ func (r *REST) ResourceLocation(ctx api.Context, name string) (*url.URL, http.Ro ...@@ -116,7 +116,7 @@ func (r *REST) ResourceLocation(ctx api.Context, name string) (*url.URL, http.Ro
// BindingREST implements the REST endpoint for binding pods to nodes when etcd is in use. // BindingREST implements the REST endpoint for binding pods to nodes when etcd is in use.
type BindingREST struct { type BindingREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
// New creates a new binding resource // New creates a new binding resource
...@@ -186,7 +186,7 @@ func (r *BindingREST) assignPod(ctx api.Context, podID string, machine string, a ...@@ -186,7 +186,7 @@ func (r *BindingREST) assignPod(ctx api.Context, podID string, machine string, a
// StatusREST implements the REST endpoint for changing the status of a pod. // StatusREST implements the REST endpoint for changing the status of a pod.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
// New creates a new pod resource // New creates a new pod resource
......
...@@ -82,7 +82,7 @@ func validChangedPod() *api.Pod { ...@@ -82,7 +82,7 @@ func validChangedPod() *api.Pod {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, _, server := newStorage(t) storage, _, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
pod := validNewPod() pod := validNewPod()
pod.ObjectMeta = api.ObjectMeta{} pod.ObjectMeta = api.ObjectMeta{}
// Make an invalid pod with an an incorrect label. // Make an invalid pod with an an incorrect label.
...@@ -108,7 +108,7 @@ func TestCreate(t *testing.T) { ...@@ -108,7 +108,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, _, server := newStorage(t) storage, _, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewPod(), validNewPod(),
...@@ -124,7 +124,7 @@ func TestUpdate(t *testing.T) { ...@@ -124,7 +124,7 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, _, server := newStorage(t) storage, _, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ReturnDeletedObject() test := registrytest.New(t, storage.Store).ReturnDeletedObject()
test.TestDelete(validNewPod()) test.TestDelete(validNewPod())
scheduledPod := validNewPod() scheduledPod := validNewPod()
...@@ -341,21 +341,21 @@ func TestResourceLocation(t *testing.T) { ...@@ -341,21 +341,21 @@ func TestResourceLocation(t *testing.T) {
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, _, server := newStorage(t) storage, _, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewPod()) test.TestGet(validNewPod())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, _, server := newStorage(t) storage, _, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewPod()) test.TestList(validNewPod())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, _, server := newStorage(t) storage, _, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewPod(), validNewPod(),
// matching labels // matching labels
......
...@@ -24,7 +24,7 @@ import ( ...@@ -24,7 +24,7 @@ import (
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/kubelet/client"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
genericrest "k8s.io/kubernetes/pkg/registry/generic/rest" genericrest "k8s.io/kubernetes/pkg/registry/generic/rest"
"k8s.io/kubernetes/pkg/registry/pod" "k8s.io/kubernetes/pkg/registry/pod"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
...@@ -33,7 +33,7 @@ import ( ...@@ -33,7 +33,7 @@ import (
// LogREST implements the log endpoint for a Pod // LogREST implements the log endpoint for a Pod
type LogREST struct { type LogREST struct {
KubeletConn client.ConnectionInfoGetter KubeletConn client.ConnectionInfoGetter
Store *etcdgeneric.Etcd Store *registry.Store
} }
// LogREST implements GetterWithOptions // LogREST implements GetterWithOptions
......
...@@ -21,13 +21,13 @@ import ( ...@@ -21,13 +21,13 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/errors"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/registrytest" "k8s.io/kubernetes/pkg/registry/registrytest"
) )
func TestPodLogValidates(t *testing.T) { func TestPodLogValidates(t *testing.T) {
etcdStorage, _ := registrytest.NewEtcdStorage(t, "") etcdStorage, _ := registrytest.NewEtcdStorage(t, "")
store := &etcdgeneric.Etcd{ store := &registry.Store{
Storage: etcdStorage, Storage: etcdStorage,
} }
logRest := &LogREST{Store: store, KubeletConn: nil} logRest := &LogREST{Store: store, KubeletConn: nil}
......
...@@ -26,7 +26,7 @@ import ( ...@@ -26,7 +26,7 @@ import (
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/capabilities" "k8s.io/kubernetes/pkg/capabilities"
"k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/kubelet/client"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
genericrest "k8s.io/kubernetes/pkg/registry/generic/rest" genericrest "k8s.io/kubernetes/pkg/registry/generic/rest"
"k8s.io/kubernetes/pkg/registry/pod" "k8s.io/kubernetes/pkg/registry/pod"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
...@@ -34,7 +34,7 @@ import ( ...@@ -34,7 +34,7 @@ import (
// ProxyREST implements the proxy subresource for a Pod // ProxyREST implements the proxy subresource for a Pod
type ProxyREST struct { type ProxyREST struct {
Store *etcdgeneric.Etcd Store *registry.Store
ProxyTransport http.RoundTripper ProxyTransport http.RoundTripper
} }
...@@ -78,7 +78,7 @@ var upgradeableMethods = []string{"GET", "POST"} ...@@ -78,7 +78,7 @@ var upgradeableMethods = []string{"GET", "POST"}
// AttachREST implements the attach subresource for a Pod // AttachREST implements the attach subresource for a Pod
type AttachREST struct { type AttachREST struct {
Store *etcdgeneric.Etcd Store *registry.Store
KubeletConn client.ConnectionInfoGetter KubeletConn client.ConnectionInfoGetter
} }
...@@ -115,7 +115,7 @@ func (r *AttachREST) ConnectMethods() []string { ...@@ -115,7 +115,7 @@ func (r *AttachREST) ConnectMethods() []string {
// ExecREST implements the exec subresource for a Pod // ExecREST implements the exec subresource for a Pod
type ExecREST struct { type ExecREST struct {
Store *etcdgeneric.Etcd Store *registry.Store
KubeletConn client.ConnectionInfoGetter KubeletConn client.ConnectionInfoGetter
} }
...@@ -152,7 +152,7 @@ func (r *ExecREST) ConnectMethods() []string { ...@@ -152,7 +152,7 @@ func (r *ExecREST) ConnectMethods() []string {
// PortForwardREST implements the portforward subresource for a Pod // PortForwardREST implements the portforward subresource for a Pod
type PortForwardREST struct { type PortForwardREST struct {
Store *etcdgeneric.Etcd Store *registry.Store
KubeletConn client.ConnectionInfoGetter KubeletConn client.ConnectionInfoGetter
} }
......
...@@ -22,14 +22,14 @@ import ( ...@@ -22,14 +22,14 @@ import (
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/podsecuritypolicy" "k8s.io/kubernetes/pkg/registry/podsecuritypolicy"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// REST implements a RESTStorage for PodSecurityPolicies against etcd. // REST implements a RESTStorage for PodSecurityPolicies against etcd.
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
const Prefix = "/podsecuritypolicies" const Prefix = "/podsecuritypolicies"
...@@ -40,14 +40,14 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -40,14 +40,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, 100, &extensions.PodSecurityPolicy{}, Prefix, podsecuritypolicy.Strategy, newListFunc) opts.Storage, 100, &extensions.PodSecurityPolicy{}, Prefix, podsecuritypolicy.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} }, NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return Prefix return Prefix
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NoNamespaceKeyFunc(ctx, Prefix, name) return registry.NoNamespaceKeyFunc(ctx, Prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*extensions.PodSecurityPolicy).Name, nil return obj.(*extensions.PodSecurityPolicy).Name, nil
......
...@@ -56,7 +56,7 @@ func validNewPodSecurityPolicy() *extensions.PodSecurityPolicy { ...@@ -56,7 +56,7 @@ func validNewPodSecurityPolicy() *extensions.PodSecurityPolicy {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
scc := validNewPodSecurityPolicy() scc := validNewPodSecurityPolicy()
scc.ObjectMeta = api.ObjectMeta{GenerateName: "foo-"} scc.ObjectMeta = api.ObjectMeta{GenerateName: "foo-"}
test.TestCreate( test.TestCreate(
...@@ -72,7 +72,7 @@ func TestCreate(t *testing.T) { ...@@ -72,7 +72,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewPodSecurityPolicy(), validNewPodSecurityPolicy(),
...@@ -88,28 +88,28 @@ func TestUpdate(t *testing.T) { ...@@ -88,28 +88,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope().ReturnDeletedObject() test := registrytest.New(t, storage.Store).ClusterScope().ReturnDeletedObject()
test.TestDelete(validNewPodSecurityPolicy()) test.TestDelete(validNewPodSecurityPolicy())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestGet(validNewPodSecurityPolicy()) test.TestGet(validNewPodSecurityPolicy())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestList(validNewPodSecurityPolicy()) test.TestList(validNewPodSecurityPolicy())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ClusterScope() test := registrytest.New(t, storage.Store).ClusterScope()
test.TestWatch( test.TestWatch(
validNewPodSecurityPolicy(), validNewPodSecurityPolicy(),
// matching labels // matching labels
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/podtemplate" "k8s.io/kubernetes/pkg/registry/podtemplate"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against pod templates. // NewREST returns a RESTStorage object that will work against pod templates.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PodTemplates), &api.PodTemplate{}, prefix, podtemplate.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.PodTemplates), &api.PodTemplate{}, prefix, podtemplate.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.PodTemplate{} }, NewFunc: func() runtime.Object { return &api.PodTemplate{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.PodTemplate).Name, nil return obj.(*api.PodTemplate).Name, nil
......
...@@ -64,7 +64,7 @@ func validNewPodTemplate(name string) *api.PodTemplate { ...@@ -64,7 +64,7 @@ func validNewPodTemplate(name string) *api.PodTemplate {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
pod := validNewPodTemplate("foo") pod := validNewPodTemplate("foo")
pod.ObjectMeta = api.ObjectMeta{} pod.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -80,7 +80,7 @@ func TestCreate(t *testing.T) { ...@@ -80,7 +80,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
//valid //valid
validNewPodTemplate("foo"), validNewPodTemplate("foo"),
...@@ -96,28 +96,28 @@ func TestUpdate(t *testing.T) { ...@@ -96,28 +96,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ReturnDeletedObject() test := registrytest.New(t, storage.Store).ReturnDeletedObject()
test.TestDelete(validNewPodTemplate("foo")) test.TestDelete(validNewPodTemplate("foo"))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewPodTemplate("foo")) test.TestGet(validNewPodTemplate("foo"))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewPodTemplate("foo")) test.TestList(validNewPodTemplate("foo"))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewPodTemplate("foo"), validNewPodTemplate("foo"),
// matching labels // matching labels
......
...@@ -27,7 +27,7 @@ import ( ...@@ -27,7 +27,7 @@ import (
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage" "k8s.io/kubernetes/pkg/storage"
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd" etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
...@@ -44,11 +44,11 @@ func NewEtcdStorage(t *testing.T, group string) (storage.Interface, *etcdtesting ...@@ -44,11 +44,11 @@ func NewEtcdStorage(t *testing.T, group string) (storage.Interface, *etcdtesting
type Tester struct { type Tester struct {
tester *resttest.Tester tester *resttest.Tester
storage *etcdgeneric.Etcd storage *registry.Store
} }
type UpdateFunc func(runtime.Object) runtime.Object type UpdateFunc func(runtime.Object) runtime.Object
func New(t *testing.T, storage *etcdgeneric.Etcd) *Tester { func New(t *testing.T, storage *registry.Store) *Tester {
return &Tester{ return &Tester{
tester: resttest.New(t, storage), tester: resttest.New(t, storage),
storage: storage, storage: storage,
......
...@@ -30,7 +30,7 @@ import ( ...@@ -30,7 +30,7 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/replicaset" "k8s.io/kubernetes/pkg/registry/replicaset"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
...@@ -54,7 +54,7 @@ func NewStorage(opts generic.RESTOptions) ReplicaSetStorage { ...@@ -54,7 +54,7 @@ func NewStorage(opts generic.RESTOptions) ReplicaSetStorage {
} }
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against ReplicaSet. // NewREST returns a RESTStorage object that will work against ReplicaSet.
...@@ -65,7 +65,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -65,7 +65,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Replicasets), &extensions.ReplicaSet{}, prefix, replicaset.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Replicasets), &extensions.ReplicaSet{}, prefix, replicaset.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} }, NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
// NewListFunc returns an object capable of storing results of an etcd list. // NewListFunc returns an object capable of storing results of an etcd list.
...@@ -73,12 +73,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -73,12 +73,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource // Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix // by combining the namespace in the context with the given prefix
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
// Produces a path that etcd understands, to the resource by combining // Produces a path that etcd understands, to the resource by combining
// the namespace in the context with the given prefix // the namespace in the context with the given prefix
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
// Retrieve the name field of a ReplicaSet // Retrieve the name field of a ReplicaSet
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
...@@ -108,7 +108,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -108,7 +108,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a ReplicaSet // StatusREST implements the REST endpoint for changing the status of a ReplicaSet
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -90,7 +90,7 @@ var validReplicaSet = *validNewReplicaSet() ...@@ -90,7 +90,7 @@ var validReplicaSet = *validNewReplicaSet()
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.ReplicaSet.Etcd) test := registrytest.New(t, storage.ReplicaSet.Store)
rs := validNewReplicaSet() rs := validNewReplicaSet()
rs.ObjectMeta = api.ObjectMeta{} rs.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -110,7 +110,7 @@ func TestCreate(t *testing.T) { ...@@ -110,7 +110,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.ReplicaSet.Etcd) test := registrytest.New(t, storage.ReplicaSet.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewReplicaSet(), validNewReplicaSet(),
...@@ -137,7 +137,7 @@ func TestUpdate(t *testing.T) { ...@@ -137,7 +137,7 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.ReplicaSet.Etcd) test := registrytest.New(t, storage.ReplicaSet.Store)
test.TestDelete(validNewReplicaSet()) test.TestDelete(validNewReplicaSet())
} }
...@@ -194,21 +194,21 @@ func TestGenerationNumber(t *testing.T) { ...@@ -194,21 +194,21 @@ func TestGenerationNumber(t *testing.T) {
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.ReplicaSet.Etcd) test := registrytest.New(t, storage.ReplicaSet.Store)
test.TestGet(validNewReplicaSet()) test.TestGet(validNewReplicaSet())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.ReplicaSet.Etcd) test := registrytest.New(t, storage.ReplicaSet.Store)
test.TestList(validNewReplicaSet()) test.TestList(validNewReplicaSet())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.ReplicaSet.Etcd) test := registrytest.New(t, storage.ReplicaSet.Store)
test.TestWatch( test.TestWatch(
validNewReplicaSet(), validNewReplicaSet(),
// matching labels // matching labels
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/resourcequota" "k8s.io/kubernetes/pkg/registry/resourcequota"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against resource quotas. // NewREST returns a RESTStorage object that will work against resource quotas.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.ResourceQuotas), &api.ResourceQuota{}, prefix, resourcequota.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.ResourceQuotas), &api.ResourceQuota{}, prefix, resourcequota.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.ResourceQuota{} }, NewFunc: func() runtime.Object { return &api.ResourceQuota{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.ResourceQuota).Name, nil return obj.(*api.ResourceQuota).Name, nil
...@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a resourcequota. // StatusREST implements the REST endpoint for changing the status of a resourcequota.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -59,7 +59,7 @@ func validNewResourceQuota() *api.ResourceQuota { ...@@ -59,7 +59,7 @@ func validNewResourceQuota() *api.ResourceQuota {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
resourcequota := validNewResourceQuota() resourcequota := validNewResourceQuota()
resourcequota.ObjectMeta = api.ObjectMeta{} resourcequota.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -98,28 +98,28 @@ func TestCreateSetsFields(t *testing.T) { ...@@ -98,28 +98,28 @@ func TestCreateSetsFields(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ReturnDeletedObject() test := registrytest.New(t, storage.Store).ReturnDeletedObject()
test.TestDelete(validNewResourceQuota()) test.TestDelete(validNewResourceQuota())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewResourceQuota()) test.TestGet(validNewResourceQuota())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewResourceQuota()) test.TestList(validNewResourceQuota())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewResourceQuota(), validNewResourceQuota(),
// matching labels // matching labels
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/secret" "k8s.io/kubernetes/pkg/registry/secret"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against secrets. // NewREST returns a RESTStorage object that will work against secrets.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Secrets), &api.Secret{}, prefix, secret.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Secrets), &api.Secret{}, prefix, secret.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.Secret{} }, NewFunc: func() runtime.Object { return &api.Secret{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, id string) (string, error) { KeyFunc: func(ctx api.Context, id string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, id) return registry.NamespaceKeyFunc(ctx, prefix, id)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.Secret).Name, nil return obj.(*api.Secret).Name, nil
......
...@@ -49,7 +49,7 @@ func validNewSecret(name string) *api.Secret { ...@@ -49,7 +49,7 @@ func validNewSecret(name string) *api.Secret {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
secret := validNewSecret("foo") secret := validNewSecret("foo")
secret.ObjectMeta = api.ObjectMeta{GenerateName: "foo-"} secret.ObjectMeta = api.ObjectMeta{GenerateName: "foo-"}
test.TestCreate( test.TestCreate(
...@@ -71,7 +71,7 @@ func TestCreate(t *testing.T) { ...@@ -71,7 +71,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewSecret("foo"), validNewSecret("foo"),
...@@ -87,28 +87,28 @@ func TestUpdate(t *testing.T) { ...@@ -87,28 +87,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewSecret("foo")) test.TestDelete(validNewSecret("foo"))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewSecret("foo")) test.TestGet(validNewSecret("foo"))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewSecret("foo")) test.TestList(validNewSecret("foo"))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewSecret("foo"), validNewSecret("foo"),
// matching labels // matching labels
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/service" "k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against services. // NewREST returns a RESTStorage object that will work against services.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Services), &api.Service{}, prefix, service.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.Services), &api.Service{}, prefix, service.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.Service{} }, NewFunc: func() runtime.Object { return &api.Service{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.Service).Name, nil return obj.(*api.Service).Name, nil
...@@ -71,7 +71,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) { ...@@ -71,7 +71,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a service. // StatusREST implements the REST endpoint for changing the status of a service.
type StatusREST struct { type StatusREST struct {
store *etcdgeneric.Etcd store *registry.Store
} }
func (r *StatusREST) New() runtime.Object { func (r *StatusREST) New() runtime.Object {
......
...@@ -59,7 +59,7 @@ func validService() *api.Service { ...@@ -59,7 +59,7 @@ func validService() *api.Service {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
validService := validService() validService := validService()
validService.ObjectMeta = api.ObjectMeta{} validService.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -89,7 +89,7 @@ func TestCreate(t *testing.T) { ...@@ -89,7 +89,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).AllowCreateOnUpdate() test := registrytest.New(t, storage.Store).AllowCreateOnUpdate()
test.TestUpdate( test.TestUpdate(
// valid // valid
validService(), validService(),
...@@ -114,28 +114,28 @@ func TestUpdate(t *testing.T) { ...@@ -114,28 +114,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).AllowCreateOnUpdate() test := registrytest.New(t, storage.Store).AllowCreateOnUpdate()
test.TestDelete(validService()) test.TestDelete(validService())
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).AllowCreateOnUpdate() test := registrytest.New(t, storage.Store).AllowCreateOnUpdate()
test.TestGet(validService()) test.TestGet(validService())
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).AllowCreateOnUpdate() test := registrytest.New(t, storage.Store).AllowCreateOnUpdate()
test.TestList(validService()) test.TestList(validService())
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, _, server := newStorage(t) storage, _, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validService(), validService(),
// matching labels // matching labels
......
...@@ -22,13 +22,13 @@ import ( ...@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize" "k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/serviceaccount" "k8s.io/kubernetes/pkg/registry/serviceaccount"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a RESTStorage object that will work against service accounts. // NewREST returns a RESTStorage object that will work against service accounts.
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface := opts.Decorator( storageInterface := opts.Decorator(
opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.ServiceAccounts), &api.ServiceAccount{}, prefix, serviceaccount.Strategy, newListFunc) opts.Storage, cachesize.GetWatchCacheSizeByResource(cachesize.ServiceAccounts), &api.ServiceAccount{}, prefix, serviceaccount.Strategy, newListFunc)
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &api.ServiceAccount{} }, NewFunc: func() runtime.Object { return &api.ServiceAccount{} },
NewListFunc: newListFunc, NewListFunc: newListFunc,
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, name string) (string, error) { KeyFunc: func(ctx api.Context, name string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, name) return registry.NamespaceKeyFunc(ctx, prefix, name)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*api.ServiceAccount).Name, nil return obj.(*api.ServiceAccount).Name, nil
......
...@@ -47,7 +47,7 @@ func validNewServiceAccount(name string) *api.ServiceAccount { ...@@ -47,7 +47,7 @@ func validNewServiceAccount(name string) *api.ServiceAccount {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
serviceAccount := validNewServiceAccount("foo") serviceAccount := validNewServiceAccount("foo")
serviceAccount.ObjectMeta = api.ObjectMeta{GenerateName: "foo-"} serviceAccount.ObjectMeta = api.ObjectMeta{GenerateName: "foo-"}
test.TestCreate( test.TestCreate(
...@@ -64,7 +64,7 @@ func TestCreate(t *testing.T) { ...@@ -64,7 +64,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewServiceAccount("foo"), validNewServiceAccount("foo"),
...@@ -80,28 +80,28 @@ func TestUpdate(t *testing.T) { ...@@ -80,28 +80,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd).ReturnDeletedObject() test := registrytest.New(t, storage.Store).ReturnDeletedObject()
test.TestDelete(validNewServiceAccount("foo")) test.TestDelete(validNewServiceAccount("foo"))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewServiceAccount("foo")) test.TestGet(validNewServiceAccount("foo"))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewServiceAccount("foo")) test.TestList(validNewServiceAccount("foo"))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewServiceAccount("foo"), validNewServiceAccount("foo"),
// matching labels // matching labels
......
...@@ -22,14 +22,14 @@ import ( ...@@ -22,14 +22,14 @@ import (
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/thirdpartyresource" "k8s.io/kubernetes/pkg/registry/thirdpartyresource"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// REST implements a RESTStorage for ThirdPartyResources against etcd // REST implements a RESTStorage for ThirdPartyResources against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
} }
// NewREST returns a registry which will store ThirdPartyResource in the given helper // NewREST returns a registry which will store ThirdPartyResource in the given helper
...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST { ...@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
// We explicitly do NOT do any decoration here yet. // We explicitly do NOT do any decoration here yet.
storageInterface := opts.Storage storageInterface := opts.Storage
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} }, NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} },
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} }, NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, id string) (string, error) { KeyFunc: func(ctx api.Context, id string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, id) return registry.NamespaceKeyFunc(ctx, prefix, id)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*extensions.ThirdPartyResource).Name, nil return obj.(*extensions.ThirdPartyResource).Name, nil
......
...@@ -54,7 +54,7 @@ func validNewThirdPartyResource(name string) *extensions.ThirdPartyResource { ...@@ -54,7 +54,7 @@ func validNewThirdPartyResource(name string) *extensions.ThirdPartyResource {
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
rsrc := validNewThirdPartyResource("foo") rsrc := validNewThirdPartyResource("foo")
rsrc.ObjectMeta = api.ObjectMeta{} rsrc.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -68,7 +68,7 @@ func TestCreate(t *testing.T) { ...@@ -68,7 +68,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewThirdPartyResource("foo"), validNewThirdPartyResource("foo"),
...@@ -84,28 +84,28 @@ func TestUpdate(t *testing.T) { ...@@ -84,28 +84,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewThirdPartyResource("foo")) test.TestDelete(validNewThirdPartyResource("foo"))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewThirdPartyResource("foo")) test.TestGet(validNewThirdPartyResource("foo"))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewThirdPartyResource("foo")) test.TestList(validNewThirdPartyResource("foo"))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewThirdPartyResource("foo"), validNewThirdPartyResource("foo"),
// matching labels // matching labels
......
...@@ -24,14 +24,14 @@ import ( ...@@ -24,14 +24,14 @@ import (
"k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic" "k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric "k8s.io/kubernetes/pkg/registry/generic/etcd" "k8s.io/kubernetes/pkg/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/thirdpartyresourcedata" "k8s.io/kubernetes/pkg/registry/thirdpartyresourcedata"
"k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime"
) )
// REST implements a RESTStorage for ThirdPartyResourceDatas against etcd // REST implements a RESTStorage for ThirdPartyResourceDatas against etcd
type REST struct { type REST struct {
*etcdgeneric.Etcd *registry.Store
kind string kind string
} }
...@@ -42,14 +42,14 @@ func NewREST(opts generic.RESTOptions, group, kind string) *REST { ...@@ -42,14 +42,14 @@ func NewREST(opts generic.RESTOptions, group, kind string) *REST {
// We explicitly do NOT do any decoration here yet. // We explicitly do NOT do any decoration here yet.
storageInterface := opts.Storage storageInterface := opts.Storage
store := &etcdgeneric.Etcd{ store := &registry.Store{
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} }, NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} }, NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
KeyRootFunc: func(ctx api.Context) string { KeyRootFunc: func(ctx api.Context) string {
return etcdgeneric.NamespaceKeyRootFunc(ctx, prefix) return registry.NamespaceKeyRootFunc(ctx, prefix)
}, },
KeyFunc: func(ctx api.Context, id string) (string, error) { KeyFunc: func(ctx api.Context, id string) (string, error) {
return etcdgeneric.NamespaceKeyFunc(ctx, prefix, id) return registry.NamespaceKeyFunc(ctx, prefix, id)
}, },
ObjectNameFunc: func(obj runtime.Object) (string, error) { ObjectNameFunc: func(obj runtime.Object) (string, error) {
return obj.(*extensions.ThirdPartyResourceData).Name, nil return obj.(*extensions.ThirdPartyResourceData).Name, nil
...@@ -67,7 +67,7 @@ func NewREST(opts generic.RESTOptions, group, kind string) *REST { ...@@ -67,7 +67,7 @@ func NewREST(opts generic.RESTOptions, group, kind string) *REST {
} }
return &REST{ return &REST{
Etcd: store, Store: store,
kind: kind, kind: kind,
} }
} }
......
...@@ -50,7 +50,7 @@ func validNewThirdPartyResourceData(name string) *extensions.ThirdPartyResourceD ...@@ -50,7 +50,7 @@ func validNewThirdPartyResourceData(name string) *extensions.ThirdPartyResourceD
func TestCreate(t *testing.T) { func TestCreate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
rsrc := validNewThirdPartyResourceData("foo") rsrc := validNewThirdPartyResourceData("foo")
rsrc.ObjectMeta = api.ObjectMeta{} rsrc.ObjectMeta = api.ObjectMeta{}
test.TestCreate( test.TestCreate(
...@@ -64,7 +64,7 @@ func TestCreate(t *testing.T) { ...@@ -64,7 +64,7 @@ func TestCreate(t *testing.T) {
func TestUpdate(t *testing.T) { func TestUpdate(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestUpdate( test.TestUpdate(
// valid // valid
validNewThirdPartyResourceData("foo"), validNewThirdPartyResourceData("foo"),
...@@ -80,28 +80,28 @@ func TestUpdate(t *testing.T) { ...@@ -80,28 +80,28 @@ func TestUpdate(t *testing.T) {
func TestDelete(t *testing.T) { func TestDelete(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestDelete(validNewThirdPartyResourceData("foo")) test.TestDelete(validNewThirdPartyResourceData("foo"))
} }
func TestGet(t *testing.T) { func TestGet(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestGet(validNewThirdPartyResourceData("foo")) test.TestGet(validNewThirdPartyResourceData("foo"))
} }
func TestList(t *testing.T) { func TestList(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestList(validNewThirdPartyResourceData("foo")) test.TestList(validNewThirdPartyResourceData("foo"))
} }
func TestWatch(t *testing.T) { func TestWatch(t *testing.T) {
storage, server := newStorage(t) storage, server := newStorage(t)
defer server.Terminate(t) defer server.Terminate(t)
test := registrytest.New(t, storage.Etcd) test := registrytest.New(t, storage.Store)
test.TestWatch( test.TestWatch(
validNewThirdPartyResourceData("foo"), validNewThirdPartyResourceData("foo"),
// matching labels // matching labels
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment