Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
24b42869
Commit
24b42869
authored
Apr 08, 2016
by
Timothy St. Clair
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
In preparation for new storage backends renaming generic registry store
parent
9db45590
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
62 changed files
with
340 additions
and
340 deletions
+340
-340
leaky.go
contrib/mesos/pkg/scheduler/podtask/leaky.go
+2
-2
reststorage.go
examples/apiserver/rest/reststorage.go
+5
-5
genericapiserver.go
pkg/genericapiserver/genericapiserver.go
+2
-2
etcd.go
pkg/registry/configmap/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/configmap/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/controller/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/controller/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/daemonset/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/daemonset/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/deployment/etcd/etcd.go
+7
-7
etcd_test.go
pkg/registry/deployment/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/endpoint/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/endpoint/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/event/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/event/etcd/etcd_test.go
+3
-3
doc.go
pkg/registry/generic/registry/doc.go
+1
-1
storage_factory.go
pkg/registry/generic/registry/storage_factory.go
+1
-1
store.go
pkg/registry/generic/registry/store.go
+0
-0
store_test.go
pkg/registry/generic/registry/store_test.go
+27
-27
etcd.go
pkg/registry/horizontalpodautoscaler/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/ingress/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/ingress/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/job/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/job/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/limitrange/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/limitrange/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/namespace/etcd/etcd.go
+9
-9
etcd_test.go
pkg/registry/namespace/etcd/etcd_test.go
+5
-5
etcd.go
pkg/registry/node/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/node/etcd/etcd_test.go
+6
-6
proxy.go
pkg/registry/node/rest/proxy.go
+2
-2
etcd.go
pkg/registry/persistentvolume/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/persistentvolume/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/persistentvolumeclaim/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/petset/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/petset/etcd/etcd_test.go
+5
-5
etcd.go
pkg/registry/pod/etcd/etcd.go
+7
-7
etcd_test.go
pkg/registry/pod/etcd/etcd_test.go
+6
-6
log.go
pkg/registry/pod/rest/log.go
+2
-2
log_test.go
pkg/registry/pod/rest/log_test.go
+2
-2
subresources.go
pkg/registry/pod/rest/subresources.go
+5
-5
etcd.go
pkg/registry/podsecuritypolicy/etcd/etcd.go
+4
-4
etcd_test.go
pkg/registry/podsecuritypolicy/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/podtemplate/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/podtemplate/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/registrytest/etcd.go
+3
-3
etcd.go
pkg/registry/replicaset/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/replicaset/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/resourcequota/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/resourcequota/etcd/etcd_test.go
+5
-5
etcd.go
pkg/registry/secret/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/secret/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/service/etcd/etcd.go
+6
-6
etcd_test.go
pkg/registry/service/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/serviceaccount/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/serviceaccount/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/thirdpartyresource/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/thirdpartyresource/etcd/etcd_test.go
+6
-6
etcd.go
pkg/registry/thirdpartyresourcedata/etcd/etcd.go
+7
-7
etcd_test.go
pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go
+6
-6
No files found.
contrib/mesos/pkg/scheduler/podtask/leaky.go
View file @
24b42869
...
...
@@ -20,10 +20,10 @@ package podtask
import
(
"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.
func
MakePodKey
(
ctx
api
.
Context
,
id
string
)
(
string
,
error
)
{
return
etcd
.
NamespaceKeyFunc
(
ctx
,
PodPath
,
id
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
PodPath
,
id
)
}
examples/apiserver/rest/reststorage.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"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/storage"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work with testtype.
...
...
@@ -39,19 +39,19 @@ func NewREST(s storage.Interface, storageDecorator generic.StorageDecorator) *RE
strategy
:=
&
NotNamespaceScoped
{}
storageInterface
:=
storageDecorator
(
s
,
100
,
&
testgroup
.
TestType
{},
prefix
,
strategy
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
registry
.
Store
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
testgroup
.
TestType
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
NewListFunc
:
newListFunc
,
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix.
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
// the namespace in the context with the given prefix.
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.
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/genericapiserver/genericapiserver.go
View file @
24b42869
...
...
@@ -40,7 +40,7 @@ import (
"k8s.io/kubernetes/pkg/auth/authorizer"
"k8s.io/kubernetes/pkg/auth/handlers"
"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"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/ui"
...
...
@@ -246,7 +246,7 @@ type GenericAPIServer struct {
func
(
s
*
GenericAPIServer
)
StorageDecorator
()
generic
.
StorageDecorator
{
if
s
.
enableWatchCache
{
return
genericetcd
.
StorageWithCacher
return
registry
.
StorageWithCacher
}
return
generic
.
UndecoratedStorage
}
...
...
pkg/registry/configmap/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,12 +22,12 @@ import (
"k8s.io/kubernetes/pkg/registry/generic"
"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
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work with ConfigMap objects.
...
...
@@ -38,7 +38,7 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface
:=
opts
.
Decorator
(
opts
.
Storage
,
100
,
&
api
.
ConfigMap
{},
prefix
,
configmap
.
Strategy
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
registry
.
Store
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ConfigMap
{}
},
...
...
@@ -49,13 +49,13 @@ func NewREST(opts generic.RESTOptions) *REST {
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix.
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
// the namespace in the context with the given prefix
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.
...
...
pkg/registry/configmap/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -53,7 +53,7 @@ func validNewConfigMap() *api.ConfigMap {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
validConfigMap
:=
validNewConfigMap
()
validConfigMap
.
ObjectMeta
=
api
.
ObjectMeta
{
...
...
@@ -80,7 +80,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewConfigMap
(),
...
...
@@ -102,28 +102,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewConfigMap
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewConfigMap
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewConfigMap
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewConfigMap
(),
// matching labels
...
...
pkg/registry/controller/etcd/etcd.go
View file @
24b42869
...
...
@@ -31,7 +31,7 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/controller"
"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"
)
...
...
@@ -54,7 +54,7 @@ func NewStorage(opts generic.RESTOptions) ControllerStorage {
}
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against replication controllers.
...
...
@@ -65,7 +65,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
...
...
@@ -73,12 +73,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix
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
// the namespace in the context with the given prefix
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
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -109,7 +109,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a replication controller
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/controller/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -87,7 +87,7 @@ var validController = validNewController()
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Store
)
controller
:=
validNewController
()
controller
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -107,7 +107,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Store
)
test
.
TestUpdate
(
// valid
validNewController
(),
...
...
@@ -134,7 +134,7 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Store
)
test
.
TestDelete
(
validNewController
())
}
...
...
@@ -191,21 +191,21 @@ func TestGenerationNumber(t *testing.T) {
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Store
)
test
.
TestGet
(
validNewController
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Store
)
test
.
TestList
(
validNewController
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Controller
.
Store
)
test
.
TestWatch
(
validController
,
// matching labels
...
...
pkg/registry/daemonset/etcd/etcd.go
View file @
24b42869
...
...
@@ -24,13 +24,13 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/daemonset"
"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"
)
// rest implements a RESTStorage for DaemonSets against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against DaemonSets.
...
...
@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
...
...
@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix
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
// the namespace in the context with the given prefix
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
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -84,7 +84,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a daemonset
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/daemonset/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -70,7 +70,7 @@ var validDaemonSet = newValidDaemonSet()
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
ds
:=
newValidDaemonSet
()
ds
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -96,7 +96,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
newValidDaemonSet
(),
...
...
@@ -124,28 +124,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
newValidDaemonSet
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
newValidDaemonSet
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
newValidDaemonSet
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validDaemonSet
,
// matching labels
...
...
pkg/registry/deployment/etcd/etcd.go
View file @
24b42869
...
...
@@ -30,7 +30,7 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/deployment"
"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/storage"
)
...
...
@@ -56,7 +56,7 @@ func NewStorage(opts generic.RESTOptions) DeploymentStorage {
}
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against deployments.
...
...
@@ -67,19 +67,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
NewListFunc
:
newListFunc
,
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix.
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
// the namespace in the context with the given prefix.
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.
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -108,7 +108,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) {
// StatusREST implements the REST endpoint for changing the status of a deployment
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
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
type
RollbackREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
// New creates a rollback
...
...
pkg/registry/deployment/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -84,7 +84,7 @@ var validDeployment = *validNewDeployment()
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Store
)
deployment
:=
validNewDeployment
()
deployment
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -103,7 +103,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Store
)
test
.
TestUpdate
(
// valid
validNewDeployment
(),
...
...
@@ -135,28 +135,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Store
)
test
.
TestDelete
(
validNewDeployment
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Store
)
test
.
TestGet
(
validNewDeployment
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Store
)
test
.
TestList
(
validNewDeployment
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Deployment
.
Store
)
test
.
TestWatch
(
validNewDeployment
(),
// matching labels
...
...
pkg/registry/endpoint/etcd/etcd.go
View file @
24b42869
...
...
@@ -23,12 +23,12 @@ import (
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/endpoint"
"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"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against endpoints.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
Endpoints
)
.
Name
,
nil
...
...
pkg/registry/endpoint/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -60,7 +60,7 @@ func validChangedEndpoints() *api.Endpoints {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
endpoints
:=
validNewEndpoints
()
endpoints
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -76,7 +76,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
AllowCreateOnUpdate
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
AllowCreateOnUpdate
()
test
.
TestUpdate
(
// valid
validNewEndpoints
(),
...
...
@@ -95,28 +95,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewEndpoints
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewEndpoints
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewEndpoints
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewEndpoints
(),
// matching labels
...
...
pkg/registry/event/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,12 +22,12 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/event"
"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"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against events.
...
...
@@ -38,14 +38,14 @@ func NewREST(opts generic.RESTOptions, ttl uint64) *REST {
// for events will lead to too high memory consumption.
storageInterface
:=
opts
.
Storage
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
registry
.
Store
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Event
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
EventList
{}
},
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
Event
)
.
Name
,
nil
...
...
pkg/registry/event/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -51,7 +51,7 @@ func validNewEvent(namespace string) *api.Event {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
event
:=
validNewEvent
(
test
.
TestNamespace
())
event
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -65,7 +65,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
AllowCreateOnUpdate
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
AllowCreateOnUpdate
()
test
.
TestUpdate
(
// valid
validNewEvent
(
test
.
TestNamespace
()),
...
...
@@ -87,6 +87,6 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewEvent
(
test
.
TestNamespace
()))
}
pkg/registry/generic/
etcd
/doc.go
→
pkg/registry/generic/
registry
/doc.go
View file @
24b42869
...
...
@@ -16,4 +16,4 @@ limitations under the License.
// Package etcd has a generic implementation of a registry that
// stores things in etcd.
package
etcd
package
registry
pkg/registry/generic/
etcd
/storage_factory.go
→
pkg/registry/generic/
registry
/storage_factory.go
View file @
24b42869
...
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package
etcd
package
registry
import
(
"k8s.io/kubernetes/pkg/api/rest"
...
...
pkg/registry/generic/
etcd/etcd
.go
→
pkg/registry/generic/
registry/store
.go
View file @
24b42869
This diff is collapsed.
Click to expand it.
pkg/registry/generic/
etcd/etcd
_test.go
→
pkg/registry/generic/
registry/store
_test.go
View file @
24b42869
...
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package
etcd
package
registry
import
(
"fmt"
...
...
@@ -87,13 +87,13 @@ func hasCreated(t *testing.T, pod *api.Pod) func(runtime.Object) bool {
}
}
func
NewTestGeneric
EtcdRegistry
(
t
*
testing
.
T
)
(
*
etcdtesting
.
EtcdTestServer
,
*
Etcd
)
{
func
NewTestGeneric
StoreRegistry
(
t
*
testing
.
T
)
(
*
etcdtesting
.
EtcdTestServer
,
*
Store
)
{
podPrefix
:=
"/pods"
server
:=
etcdtesting
.
NewEtcdTestClientServer
(
t
)
s
:=
etcdstorage
.
NewEtcdStorage
(
server
.
Client
,
testapi
.
Default
.
Codec
(),
etcdtest
.
PathPrefix
(),
false
,
etcdtest
.
DeserializationCacheSize
)
strategy
:=
&
testRESTStrategy
{
api
.
Scheme
,
api
.
SimpleNameGenerator
,
true
,
false
,
true
}
return
server
,
&
Etcd
{
return
server
,
&
Store
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Pod
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PodList
{}
},
QualifiedResource
:
api
.
Resource
(
"pods"
),
...
...
@@ -160,7 +160,7 @@ func (everythingMatcher) MatchesSingle() (string, bool) {
return
""
,
false
}
func
Test
Etcd
List
(
t
*
testing
.
T
)
{
func
Test
Store
List
(
t
*
testing
.
T
)
{
podA
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Namespace
:
"test"
,
Name
:
"bar"
},
Spec
:
api
.
PodSpec
{
NodeName
:
"machine"
},
...
...
@@ -212,7 +212,7 @@ func TestEtcdList(t *testing.T) {
if
item
.
context
!=
nil
{
ctx
=
item
.
context
}
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
if
item
.
in
!=
nil
{
if
err
:=
storagetesting
.
CreateList
(
"/pods"
,
registry
.
Storage
,
item
.
in
);
err
!=
nil
{
...
...
@@ -234,7 +234,7 @@ func TestEtcdList(t *testing.T) {
}
}
func
Test
Etcd
Create
(
t
*
testing
.
T
)
{
func
Test
Store
Create
(
t
*
testing
.
T
)
{
podA
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
,
Namespace
:
"test"
},
Spec
:
api
.
PodSpec
{
NodeName
:
"machine"
},
...
...
@@ -245,7 +245,7 @@ func TestEtcdCreate(t *testing.T) {
}
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
// create the object
...
...
@@ -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
)
if
err
!=
nil
{
t
.
Errorf
(
"Unexpected error: %v"
,
err
)
...
...
@@ -290,7 +290,7 @@ func updateAndVerify(t *testing.T, ctx api.Context, registry *Etcd, pod *api.Pod
return
true
}
func
Test
Etcd
Update
(
t
*
testing
.
T
)
{
func
Test
Store
Update
(
t
*
testing
.
T
)
{
podA
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
,
Namespace
:
"test"
},
Spec
:
api
.
PodSpec
{
NodeName
:
"machine"
},
...
...
@@ -305,7 +305,7 @@ func TestEtcdUpdate(t *testing.T) {
}
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
// Test1 try to update a non-existing node
...
...
@@ -343,7 +343,7 @@ func TestEtcdUpdate(t *testing.T) {
}
func
TestNoOpUpdates
(
t
*
testing
.
T
)
{
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
newPod
:=
func
()
*
api
.
Pod
{
...
...
@@ -414,7 +414,7 @@ func (t testPodExport) Export(obj runtime.Object, exact bool) error {
return
nil
}
func
Test
Etcd
CustomExport
(
t
*
testing
.
T
)
{
func
Test
Store
CustomExport
(
t
*
testing
.
T
)
{
podA
:=
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Namespace
:
"test"
,
...
...
@@ -424,7 +424,7 @@ func TestEtcdCustomExport(t *testing.T) {
Spec
:
api
.
PodSpec
{
NodeName
:
"machine"
},
}
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
registry
.
ExportStrategy
=
testPodExport
{}
...
...
@@ -455,7 +455,7 @@ func TestEtcdCustomExport(t *testing.T) {
}
}
func
Test
Etcd
BasicExport
(
t
*
testing
.
T
)
{
func
Test
Store
BasicExport
(
t
*
testing
.
T
)
{
podA
:=
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Namespace
:
"test"
,
...
...
@@ -466,7 +466,7 @@ func TestEtcdBasicExport(t *testing.T) {
Status
:
api
.
PodStatus
{
HostIP
:
"1.2.3.4"
},
}
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
...
...
@@ -490,14 +490,14 @@ func TestEtcdBasicExport(t *testing.T) {
}
}
func
Test
Etcd
Get
(
t
*
testing
.
T
)
{
func
Test
Store
Get
(
t
*
testing
.
T
)
{
podA
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Namespace
:
"test"
,
Name
:
"foo"
},
Spec
:
api
.
PodSpec
{
NodeName
:
"machine"
},
}
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
_
,
err
:=
registry
.
Get
(
testContext
,
podA
.
Name
)
...
...
@@ -511,14 +511,14 @@ func TestEtcdGet(t *testing.T) {
}
}
func
Test
Etcd
Delete
(
t
*
testing
.
T
)
{
func
Test
Store
Delete
(
t
*
testing
.
T
)
{
podA
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
},
Spec
:
api
.
PodSpec
{
NodeName
:
"machine"
},
}
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
// test failure condition
...
...
@@ -546,12 +546,12 @@ func TestEtcdDelete(t *testing.T) {
}
}
func
Test
Etcd
DeleteCollection
(
t
*
testing
.
T
)
{
func
Test
Store
DeleteCollection
(
t
*
testing
.
T
)
{
podA
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
podB
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"bar"
}}
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
if
_
,
err
:=
registry
.
Create
(
testContext
,
podA
);
err
!=
nil
{
...
...
@@ -579,8 +579,8 @@ func TestEtcdDeleteCollection(t *testing.T) {
}
}
func
Test
Etcd
DeleteCollectionNotFound
(
t
*
testing
.
T
)
{
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
func
Test
Store
DeleteCollectionNotFound
(
t
*
testing
.
T
)
{
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
...
...
@@ -622,11 +622,11 @@ func TestEtcdDeleteCollectionNotFound(t *testing.T) {
// Test whether objects deleted with DeleteCollection are correctly delivered
// to watchers.
func
Test
Etcd
DeleteCollectionWithWatch
(
t
*
testing
.
T
)
{
func
Test
Store
DeleteCollectionWithWatch
(
t
*
testing
.
T
)
{
podA
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"foo"
}}
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
defer
server
.
Terminate
(
t
)
objCreated
,
err
:=
registry
.
Create
(
testContext
,
podA
)
...
...
@@ -660,7 +660,7 @@ func TestEtcdDeleteCollectionWithWatch(t *testing.T) {
}
}
func
Test
Etcd
Watch
(
t
*
testing
.
T
)
{
func
Test
Store
Watch
(
t
*
testing
.
T
)
{
testContext
:=
api
.
WithNamespace
(
api
.
NewContext
(),
"test"
)
noNamespaceContext
:=
api
.
NewContext
()
...
...
@@ -693,7 +693,7 @@ func TestEtcdWatch(t *testing.T) {
Spec
:
api
.
PodSpec
{
NodeName
:
"machine"
},
}
server
,
registry
:=
NewTestGeneric
Etcd
Registry
(
t
)
server
,
registry
:=
NewTestGeneric
Store
Registry
(
t
)
wi
,
err
:=
registry
.
WatchPredicate
(
ctx
,
m
,
"0"
)
if
err
!=
nil
{
t
.
Errorf
(
"%v: unexpected error: %v"
,
name
,
err
)
...
...
pkg/registry/horizontalpodautoscaler/etcd/etcd.go
View file @
24b42869
...
...
@@ -23,13 +23,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
...
...
@@ -40,19 +40,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
NewListFunc
:
newListFunc
,
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix
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
// the namespace in the context with the given prefix
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
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -81,7 +81,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a daemonset
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -59,7 +59,7 @@ func validNewHorizontalPodAutoscaler(name string) *extensions.HorizontalPodAutos
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
autoscaler
:=
validNewHorizontalPodAutoscaler
(
"foo"
)
autoscaler
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -73,7 +73,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewHorizontalPodAutoscaler
(
"foo"
),
...
...
@@ -89,28 +89,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewHorizontalPodAutoscaler
(
"foo"
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewHorizontalPodAutoscaler
(
"foo"
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewHorizontalPodAutoscaler
(
"foo"
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewHorizontalPodAutoscaler
(
"foo"
),
// matching labels
...
...
pkg/registry/ingress/etcd/etcd.go
View file @
24b42869
...
...
@@ -23,14 +23,14 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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"
"k8s.io/kubernetes/pkg/runtime"
)
// rest implements a RESTStorage for replication controllers against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against replication controllers.
...
...
@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
...
...
@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a ingress that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix
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
// the namespace in the context with the given prefix
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
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -83,7 +83,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of an ingress
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/ingress/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -115,7 +115,7 @@ func validIngress() *extensions.Ingress {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
ingress
:=
validIngress
()
noDefaultBackendAndRules
:=
validIngress
()
noDefaultBackendAndRules
.
Spec
.
Backend
=
&
extensions
.
IngressBackend
{}
...
...
@@ -134,7 +134,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validIngress
(),
...
...
@@ -169,28 +169,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validIngress
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validIngress
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validIngress
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validIngress
(),
// matching labels
...
...
pkg/registry/job/etcd/etcd.go
View file @
24b42869
...
...
@@ -23,14 +23,14 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
// REST implements a RESTStorage for jobs against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against Jobs.
...
...
@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
...
...
@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix
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
// the namespace in the context with the given prefix
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
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -85,7 +85,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a resourcequota.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/job/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -76,7 +76,7 @@ func validNewJob() *batch.Job {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
validJob
:=
validNewJob
()
validJob
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -96,7 +96,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
two
:=
2
test
.
TestUpdate
(
// valid
...
...
@@ -124,28 +124,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewJob
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewJob
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewJob
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewJob
(),
// matching labels
...
...
pkg/registry/limitrange/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
LimitRange
)
.
Name
,
nil
...
...
pkg/registry/limitrange/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -62,7 +62,7 @@ func validNewLimitRange() *api.LimitRange {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
GeneratesName
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
GeneratesName
()
validLimitRange
:=
validNewLimitRange
()
validLimitRange
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -78,7 +78,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
AllowCreateOnUpdate
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
AllowCreateOnUpdate
()
test
.
TestUpdate
(
// valid
validNewLimitRange
(),
...
...
@@ -106,28 +106,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewLimitRange
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewLimitRange
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewLimitRange
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewLimitRange
(),
// matching labels
...
...
pkg/registry/namespace/etcd/etcd.go
View file @
24b42869
...
...
@@ -26,25 +26,25 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
// rest implements a RESTStorage for namespaces against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
status
*
etcdgeneric
.
Etcd
*
registry
.
Store
status
*
registry
.
Store
}
// StatusREST implements the REST endpoint for changing the status of a namespace.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
// FinalizeREST implements the REST endpoint for finalizing a namespace.
type
FinalizeREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against namespaces.
...
...
@@ -55,14 +55,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *FinalizeREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
KeyRootFunc
:
func
(
ctx
api
.
Context
)
string
{
return
prefix
},
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
)
{
return
obj
.
(
*
api
.
Namespace
)
.
Name
,
nil
...
...
@@ -87,7 +87,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *FinalizeREST) {
finalizeStore
:=
*
store
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
...
...
@@ -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."
))
return
nil
,
err
}
return
r
.
Etcd
.
Delete
(
ctx
,
name
,
nil
)
return
r
.
Store
.
Delete
(
ctx
,
name
,
nil
)
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/namespace/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -47,7 +47,7 @@ func validNewNamespace() *api.Namespace {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
namespace
:=
validNewNamespace
()
namespace
.
ObjectMeta
=
api
.
ObjectMeta
{
GenerateName
:
"foo"
}
test
.
TestCreate
(
...
...
@@ -89,28 +89,28 @@ func TestCreateSetsFields(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
.
ReturnDeletedObject
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
.
ReturnDeletedObject
()
test
.
TestDelete
(
validNewNamespace
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestGet
(
validNewNamespace
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestList
(
validNewNamespace
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestWatch
(
validNewNamespace
(),
// matching labels
...
...
pkg/registry/node/etcd/etcd.go
View file @
24b42869
...
...
@@ -26,7 +26,7 @@ import (
"k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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"
noderest
"k8s.io/kubernetes/pkg/registry/node/rest"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -40,14 +40,14 @@ type NodeStorage struct {
}
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
connection
client
.
ConnectionInfoGetter
proxyTransport
http
.
RoundTripper
}
// StatusREST implements the REST endpoint for changing the status of a pod.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
@@ -67,14 +67,14 @@ func NewStorage(opts generic.RESTOptions, connection client.ConnectionInfoGetter
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
KeyRootFunc
:
func
(
ctx
api
.
Context
)
string
{
return
prefix
},
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
)
{
return
obj
.
(
*
api
.
Node
)
.
Name
,
nil
...
...
pkg/registry/node/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -67,7 +67,7 @@ func validNewNode() *api.Node {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
node
:=
validNewNode
()
node
.
ObjectMeta
=
api
.
ObjectMeta
{
GenerateName
:
"foo"
}
test
.
TestCreate
(
...
...
@@ -83,7 +83,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestUpdate
(
// valid
validNewNode
(),
...
...
@@ -99,28 +99,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestDelete
(
validNewNode
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestGet
(
validNewNode
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestList
(
validNewNode
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestWatch
(
validNewNode
(),
// matching labels
...
...
pkg/registry/node/rest/proxy.go
View file @
24b42869
...
...
@@ -26,7 +26,7 @@ import (
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/capabilities"
"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"
"k8s.io/kubernetes/pkg/registry/node"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -34,7 +34,7 @@ import (
// ProxyREST implements the proxy subresource for a Node
type
ProxyREST
struct
{
Store
*
etcdgeneric
.
Etcd
Store
*
registry
.
Store
Connection
client
.
ConnectionInfoGetter
ProxyTransport
http
.
RoundTripper
}
...
...
pkg/registry/persistentvolume/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against persistent volumes.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
KeyRootFunc
:
func
(
ctx
api
.
Context
)
string
{
return
prefix
},
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
)
{
return
obj
.
(
*
api
.
PersistentVolume
)
.
Name
,
nil
...
...
@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a persistentvolume.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/persistentvolume/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -70,7 +70,7 @@ func validChangedPersistentVolume() *api.PersistentVolume {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
pv
:=
validNewPersistentVolume
(
"foo"
)
pv
.
ObjectMeta
=
api
.
ObjectMeta
{
GenerateName
:
"foo"
}
test
.
TestCreate
(
...
...
@@ -86,7 +86,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestUpdate
(
// valid
validNewPersistentVolume
(
"foo"
),
...
...
@@ -104,28 +104,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
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"
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestGet
(
validNewPersistentVolume
(
"foo"
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestList
(
validNewPersistentVolume
(
"foo"
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestWatch
(
validNewPersistentVolume
(
"foo"
),
// matching labels
...
...
pkg/registry/persistentvolumeclaim/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against persistent volume claims.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
PersistentVolumeClaim
)
.
Name
,
nil
...
...
@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a persistentvolumeclaim.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -62,7 +62,7 @@ func validNewPersistentVolumeClaim(name, ns string) *api.PersistentVolumeClaim {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
pv
:=
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
)
pv
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -78,7 +78,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
),
...
...
@@ -98,28 +98,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
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
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewPersistentVolumeClaim
(
"foo"
,
api
.
NamespaceDefault
),
// matching labels
...
...
pkg/registry/petset/etcd/etcd.go
View file @
24b42869
...
...
@@ -23,14 +23,14 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
// rest implements a RESTStorage for replication controllers against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against replication controllers.
...
...
@@ -41,7 +41,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
...
...
@@ -49,12 +49,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a petSet that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix
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
// the namespace in the context with the given prefix
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
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -83,7 +83,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of an petSet
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/petset/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -82,7 +82,7 @@ func validNewPetSet() *apps.PetSet {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
ps
:=
validNewPetSet
()
ps
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -134,28 +134,28 @@ func TestStatusUpdate(t *testing.T) {
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewPetSet
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewPetSet
())
}
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewPetSet
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewPetSet
(),
// matching labels
...
...
pkg/registry/pod/etcd/etcd.go
View file @
24b42869
...
...
@@ -32,7 +32,7 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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"
podrest
"k8s.io/kubernetes/pkg/registry/pod/rest"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -53,7 +53,7 @@ type PodStorage struct {
// REST implements a RESTStorage for pods against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
proxyTransport
http
.
RoundTripper
}
...
...
@@ -65,14 +65,14 @@ func NewStorage(opts generic.RESTOptions, k client.ConnectionInfoGetter, proxyTr
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
Pod
)
.
Name
,
nil
...
...
@@ -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.
type
BindingREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
// New creates a new binding resource
...
...
@@ -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.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
// New creates a new pod resource
...
...
pkg/registry/pod/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -82,7 +82,7 @@ func validChangedPod() *api.Pod {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
pod
:=
validNewPod
()
pod
.
ObjectMeta
=
api
.
ObjectMeta
{}
// Make an invalid pod with an an incorrect label.
...
...
@@ -108,7 +108,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewPod
(),
...
...
@@ -124,7 +124,7 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ReturnDeletedObject
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ReturnDeletedObject
()
test
.
TestDelete
(
validNewPod
())
scheduledPod
:=
validNewPod
()
...
...
@@ -341,21 +341,21 @@ func TestResourceLocation(t *testing.T) {
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewPod
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewPod
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewPod
(),
// matching labels
...
...
pkg/registry/pod/rest/log.go
View file @
24b42869
...
...
@@ -24,7 +24,7 @@ import (
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/validation"
"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"
"k8s.io/kubernetes/pkg/registry/pod"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -33,7 +33,7 @@ import (
// LogREST implements the log endpoint for a Pod
type
LogREST
struct
{
KubeletConn
client
.
ConnectionInfoGetter
Store
*
etcdgeneric
.
Etcd
Store
*
registry
.
Store
}
// LogREST implements GetterWithOptions
...
...
pkg/registry/pod/rest/log_test.go
View file @
24b42869
...
...
@@ -21,13 +21,13 @@ import (
"k8s.io/kubernetes/pkg/api"
"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"
)
func
TestPodLogValidates
(
t
*
testing
.
T
)
{
etcdStorage
,
_
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
registry
.
Store
{
Storage
:
etcdStorage
,
}
logRest
:=
&
LogREST
{
Store
:
store
,
KubeletConn
:
nil
}
...
...
pkg/registry/pod/rest/subresources.go
View file @
24b42869
...
...
@@ -26,7 +26,7 @@ import (
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/capabilities"
"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"
"k8s.io/kubernetes/pkg/registry/pod"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -34,7 +34,7 @@ import (
// ProxyREST implements the proxy subresource for a Pod
type
ProxyREST
struct
{
Store
*
etcdgeneric
.
Etcd
Store
*
registry
.
Store
ProxyTransport
http
.
RoundTripper
}
...
...
@@ -78,7 +78,7 @@ var upgradeableMethods = []string{"GET", "POST"}
// AttachREST implements the attach subresource for a Pod
type
AttachREST
struct
{
Store
*
etcdgeneric
.
Etcd
Store
*
registry
.
Store
KubeletConn
client
.
ConnectionInfoGetter
}
...
...
@@ -115,7 +115,7 @@ func (r *AttachREST) ConnectMethods() []string {
// ExecREST implements the exec subresource for a Pod
type
ExecREST
struct
{
Store
*
etcdgeneric
.
Etcd
Store
*
registry
.
Store
KubeletConn
client
.
ConnectionInfoGetter
}
...
...
@@ -152,7 +152,7 @@ func (r *ExecREST) ConnectMethods() []string {
// PortForwardREST implements the portforward subresource for a Pod
type
PortForwardREST
struct
{
Store
*
etcdgeneric
.
Etcd
Store
*
registry
.
Store
KubeletConn
client
.
ConnectionInfoGetter
}
...
...
pkg/registry/podsecuritypolicy/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,14 +22,14 @@ import (
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"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/runtime"
)
// REST implements a RESTStorage for PodSecurityPolicies against etcd.
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
const
Prefix
=
"/podsecuritypolicies"
...
...
@@ -40,14 +40,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface
:=
opts
.
Decorator
(
opts
.
Storage
,
100
,
&
extensions
.
PodSecurityPolicy
{},
Prefix
,
podsecuritypolicy
.
Strategy
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
registry
.
Store
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
PodSecurityPolicy
{}
},
NewListFunc
:
newListFunc
,
KeyRootFunc
:
func
(
ctx
api
.
Context
)
string
{
return
Prefix
},
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
)
{
return
obj
.
(
*
extensions
.
PodSecurityPolicy
)
.
Name
,
nil
...
...
pkg/registry/podsecuritypolicy/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -56,7 +56,7 @@ func validNewPodSecurityPolicy() *extensions.PodSecurityPolicy {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
scc
:=
validNewPodSecurityPolicy
()
scc
.
ObjectMeta
=
api
.
ObjectMeta
{
GenerateName
:
"foo-"
}
test
.
TestCreate
(
...
...
@@ -72,7 +72,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestUpdate
(
// valid
validNewPodSecurityPolicy
(),
...
...
@@ -88,28 +88,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
.
ReturnDeletedObject
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
.
ReturnDeletedObject
()
test
.
TestDelete
(
validNewPodSecurityPolicy
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestGet
(
validNewPodSecurityPolicy
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestList
(
validNewPodSecurityPolicy
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ClusterScope
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ClusterScope
()
test
.
TestWatch
(
validNewPodSecurityPolicy
(),
// matching labels
...
...
pkg/registry/podtemplate/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against pod templates.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
PodTemplate
)
.
Name
,
nil
...
...
pkg/registry/podtemplate/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -64,7 +64,7 @@ func validNewPodTemplate(name string) *api.PodTemplate {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
pod
:=
validNewPodTemplate
(
"foo"
)
pod
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -80,7 +80,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
//valid
validNewPodTemplate
(
"foo"
),
...
...
@@ -96,28 +96,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ReturnDeletedObject
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ReturnDeletedObject
()
test
.
TestDelete
(
validNewPodTemplate
(
"foo"
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewPodTemplate
(
"foo"
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewPodTemplate
(
"foo"
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewPodTemplate
(
"foo"
),
// matching labels
...
...
pkg/registry/registrytest/etcd.go
View file @
24b42869
...
...
@@ -27,7 +27,7 @@ import (
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields"
"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/storage"
etcdstorage
"k8s.io/kubernetes/pkg/storage/etcd"
...
...
@@ -44,11 +44,11 @@ func NewEtcdStorage(t *testing.T, group string) (storage.Interface, *etcdtesting
type
Tester
struct
{
tester
*
resttest
.
Tester
storage
*
etcdgeneric
.
Etcd
storage
*
registry
.
Store
}
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
{
tester
:
resttest
.
New
(
t
,
storage
),
storage
:
storage
,
...
...
pkg/registry/replicaset/etcd/etcd.go
View file @
24b42869
...
...
@@ -30,7 +30,7 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
...
...
@@ -54,7 +54,7 @@ func NewStorage(opts generic.RESTOptions) ReplicaSetStorage {
}
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against ReplicaSet.
...
...
@@ -65,7 +65,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
...
...
@@ -73,12 +73,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// Produces a path that etcd understands, to the root of the resource
// by combining the namespace in the context with the given prefix
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
// the namespace in the context with the given prefix
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
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
@@ -108,7 +108,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a ReplicaSet
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/replicaset/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -90,7 +90,7 @@ var validReplicaSet = *validNewReplicaSet()
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Store
)
rs
:=
validNewReplicaSet
()
rs
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -110,7 +110,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Store
)
test
.
TestUpdate
(
// valid
validNewReplicaSet
(),
...
...
@@ -137,7 +137,7 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Store
)
test
.
TestDelete
(
validNewReplicaSet
())
}
...
...
@@ -194,21 +194,21 @@ func TestGenerationNumber(t *testing.T) {
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Store
)
test
.
TestGet
(
validNewReplicaSet
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Store
)
test
.
TestList
(
validNewReplicaSet
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
ReplicaSet
.
Store
)
test
.
TestWatch
(
validNewReplicaSet
(),
// matching labels
...
...
pkg/registry/resourcequota/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against resource quotas.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
ResourceQuota
)
.
Name
,
nil
...
...
@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a resourcequota.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/resourcequota/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -59,7 +59,7 @@ func validNewResourceQuota() *api.ResourceQuota {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
resourcequota
:=
validNewResourceQuota
()
resourcequota
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -98,28 +98,28 @@ func TestCreateSetsFields(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ReturnDeletedObject
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ReturnDeletedObject
()
test
.
TestDelete
(
validNewResourceQuota
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewResourceQuota
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewResourceQuota
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewResourceQuota
(),
// matching labels
...
...
pkg/registry/secret/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against secrets.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
Secret
)
.
Name
,
nil
...
...
pkg/registry/secret/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -49,7 +49,7 @@ func validNewSecret(name string) *api.Secret {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
secret
:=
validNewSecret
(
"foo"
)
secret
.
ObjectMeta
=
api
.
ObjectMeta
{
GenerateName
:
"foo-"
}
test
.
TestCreate
(
...
...
@@ -71,7 +71,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewSecret
(
"foo"
),
...
...
@@ -87,28 +87,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewSecret
(
"foo"
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewSecret
(
"foo"
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewSecret
(
"foo"
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewSecret
(
"foo"
),
// matching labels
...
...
pkg/registry/service/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against services.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
Service
)
.
Name
,
nil
...
...
@@ -71,7 +71,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
// StatusREST implements the REST endpoint for changing the status of a service.
type
StatusREST
struct
{
store
*
etcdgeneric
.
Etcd
store
*
registry
.
Store
}
func
(
r
*
StatusREST
)
New
()
runtime
.
Object
{
...
...
pkg/registry/service/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -59,7 +59,7 @@ func validService() *api.Service {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
validService
:=
validService
()
validService
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -89,7 +89,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
AllowCreateOnUpdate
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
AllowCreateOnUpdate
()
test
.
TestUpdate
(
// valid
validService
(),
...
...
@@ -114,28 +114,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
AllowCreateOnUpdate
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
AllowCreateOnUpdate
()
test
.
TestDelete
(
validService
())
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
AllowCreateOnUpdate
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
AllowCreateOnUpdate
()
test
.
TestGet
(
validService
())
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
AllowCreateOnUpdate
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
AllowCreateOnUpdate
()
test
.
TestList
(
validService
())
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
_
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validService
(),
// matching labels
...
...
pkg/registry/serviceaccount/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,13 +22,13 @@ import (
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/cachesize"
"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/runtime"
)
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a RESTStorage object that will work against service accounts.
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
storageInterface
:=
opts
.
Decorator
(
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
{}
},
NewListFunc
:
newListFunc
,
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
name
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
api
.
ServiceAccount
)
.
Name
,
nil
...
...
pkg/registry/serviceaccount/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -47,7 +47,7 @@ func validNewServiceAccount(name string) *api.ServiceAccount {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
serviceAccount
:=
validNewServiceAccount
(
"foo"
)
serviceAccount
.
ObjectMeta
=
api
.
ObjectMeta
{
GenerateName
:
"foo-"
}
test
.
TestCreate
(
...
...
@@ -64,7 +64,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewServiceAccount
(
"foo"
),
...
...
@@ -80,28 +80,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
.
ReturnDeletedObject
()
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
.
ReturnDeletedObject
()
test
.
TestDelete
(
validNewServiceAccount
(
"foo"
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewServiceAccount
(
"foo"
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewServiceAccount
(
"foo"
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewServiceAccount
(
"foo"
),
// matching labels
...
...
pkg/registry/thirdpartyresource/etcd/etcd.go
View file @
24b42869
...
...
@@ -22,14 +22,14 @@ import (
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"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/runtime"
)
// REST implements a RESTStorage for ThirdPartyResources against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
}
// NewREST returns a registry which will store ThirdPartyResource in the given helper
...
...
@@ -39,14 +39,14 @@ func NewREST(opts generic.RESTOptions) *REST {
// We explicitly do NOT do any decoration here yet.
storageInterface
:=
opts
.
Storage
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
registry
.
Store
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResource
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResourceList
{}
},
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
extensions
.
ThirdPartyResource
)
.
Name
,
nil
...
...
pkg/registry/thirdpartyresource/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -54,7 +54,7 @@ func validNewThirdPartyResource(name string) *extensions.ThirdPartyResource {
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
rsrc
:=
validNewThirdPartyResource
(
"foo"
)
rsrc
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -68,7 +68,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewThirdPartyResource
(
"foo"
),
...
...
@@ -84,28 +84,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewThirdPartyResource
(
"foo"
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewThirdPartyResource
(
"foo"
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewThirdPartyResource
(
"foo"
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewThirdPartyResource
(
"foo"
),
// matching labels
...
...
pkg/registry/thirdpartyresourcedata/etcd/etcd.go
View file @
24b42869
...
...
@@ -24,14 +24,14 @@ import (
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"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/runtime"
)
// REST implements a RESTStorage for ThirdPartyResourceDatas against etcd
type
REST
struct
{
*
etcdgeneric
.
Etcd
*
registry
.
Store
kind
string
}
...
...
@@ -42,14 +42,14 @@ func NewREST(opts generic.RESTOptions, group, kind string) *REST {
// We explicitly do NOT do any decoration here yet.
storageInterface
:=
opts
.
Storage
store
:=
&
etcdgeneric
.
Etcd
{
store
:=
&
registry
.
Store
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResourceData
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResourceDataList
{}
},
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
)
{
return
etcdgeneric
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
return
registry
.
NamespaceKeyFunc
(
ctx
,
prefix
,
id
)
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
obj
.
(
*
extensions
.
ThirdPartyResourceData
)
.
Name
,
nil
...
...
@@ -67,8 +67,8 @@ func NewREST(opts generic.RESTOptions, group, kind string) *REST {
}
return
&
REST
{
Etcd
:
store
,
kind
:
kind
,
Store
:
store
,
kind
:
kind
,
}
}
...
...
pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go
View file @
24b42869
...
...
@@ -50,7 +50,7 @@ func validNewThirdPartyResourceData(name string) *extensions.ThirdPartyResourceD
func
TestCreate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
rsrc
:=
validNewThirdPartyResourceData
(
"foo"
)
rsrc
.
ObjectMeta
=
api
.
ObjectMeta
{}
test
.
TestCreate
(
...
...
@@ -64,7 +64,7 @@ func TestCreate(t *testing.T) {
func
TestUpdate
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestUpdate
(
// valid
validNewThirdPartyResourceData
(
"foo"
),
...
...
@@ -80,28 +80,28 @@ func TestUpdate(t *testing.T) {
func
TestDelete
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestDelete
(
validNewThirdPartyResourceData
(
"foo"
))
}
func
TestGet
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestGet
(
validNewThirdPartyResourceData
(
"foo"
))
}
func
TestList
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestList
(
validNewThirdPartyResourceData
(
"foo"
))
}
func
TestWatch
(
t
*
testing
.
T
)
{
storage
,
server
:=
newStorage
(
t
)
defer
server
.
Terminate
(
t
)
test
:=
registrytest
.
New
(
t
,
storage
.
Etcd
)
test
:=
registrytest
.
New
(
t
,
storage
.
Store
)
test
.
TestWatch
(
validNewThirdPartyResourceData
(
"foo"
),
// matching labels
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment