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
3550df30
Commit
3550df30
authored
Nov 13, 2015
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #16855 from wojtek-t/pass_versioner
Auto commit by PR queue bot
parents
6b6d5096
a5a87175
Hide whitespace changes
Inline
Side-by-side
Showing
49 changed files
with
218 additions
and
156 deletions
+218
-156
tokengetter.go
pkg/controller/serviceaccount/tokengetter.go
+3
-2
master.go
pkg/master/master.go
+29
-27
etcd.go
pkg/registry/controller/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/controller/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/daemonset/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/daemonset/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/deployment/etcd/etcd.go
+5
-5
etcd_test.go
pkg/registry/deployment/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/endpoint/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/endpoint/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/event/etcd/etcd.go
+1
-1
etcd_test.go
pkg/registry/event/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/experimental/controller/etcd/etcd.go
+3
-2
etcd_test.go
pkg/registry/experimental/controller/etcd/etcd_test.go
+2
-2
storage_factory.go
pkg/registry/generic/etcd/storage_factory.go
+36
-0
storage_decorator.go
pkg/registry/generic/storage_decorator.go
+43
-0
etcd.go
pkg/registry/horizontalpodautoscaler/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/ingress/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/ingress/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/job/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/job/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/limitrange/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/limitrange/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/namespace/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/namespace/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/node/etcd/etcd.go
+4
-3
etcd_test.go
pkg/registry/node/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/persistentvolume/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/persistentvolume/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/persistentvolumeclaim/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/pod/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/pod/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/podtemplate/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/podtemplate/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/resourcequota/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/resourcequota/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/secret/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/secret/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/service/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/service/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/serviceaccount/etcd/etcd.go
+3
-3
etcd_test.go
pkg/registry/serviceaccount/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/thirdpartyresource/etcd/etcd.go
+1
-1
etcd_test.go
pkg/registry/thirdpartyresource/etcd/etcd_test.go
+2
-2
etcd.go
pkg/registry/thirdpartyresourcedata/etcd/etcd.go
+1
-1
etcd_test.go
pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go
+2
-2
cacher.go
pkg/storage/cacher.go
+0
-22
No files found.
pkg/controller/serviceaccount/tokengetter.go
View file @
3550df30
...
...
@@ -19,6 +19,7 @@ package serviceaccount
import
(
"k8s.io/kubernetes/pkg/api"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/secret"
secretetcd
"k8s.io/kubernetes/pkg/registry/secret/etcd"
"k8s.io/kubernetes/pkg/registry/serviceaccount"
...
...
@@ -75,7 +76,7 @@ func (r *registryGetter) GetSecret(namespace, name string) (*api.Secret, error)
// uses the specified storage to retrieve service accounts and secrets.
func
NewGetterFromStorageInterface
(
s
storage
.
Interface
)
ServiceAccountTokenGetter
{
return
NewGetterFromRegistries
(
serviceaccount
.
NewRegistry
(
serviceaccountetcd
.
NewREST
(
s
,
storage
.
NoDecoration
)),
secret
.
NewRegistry
(
secretetcd
.
NewREST
(
s
,
storage
.
NoDecoration
)),
serviceaccount
.
NewRegistry
(
serviceaccountetcd
.
NewREST
(
s
,
generic
.
UndecoratedStorage
)),
secret
.
NewRegistry
(
secretetcd
.
NewREST
(
s
,
generic
.
UndecoratedStorage
)),
)
}
pkg/master/master.go
View file @
3550df30
...
...
@@ -51,6 +51,8 @@ import (
endpointsetcd
"k8s.io/kubernetes/pkg/registry/endpoint/etcd"
eventetcd
"k8s.io/kubernetes/pkg/registry/event/etcd"
expcontrolleretcd
"k8s.io/kubernetes/pkg/registry/experimental/controller/etcd"
"k8s.io/kubernetes/pkg/registry/generic"
genericetcd
"k8s.io/kubernetes/pkg/registry/generic/etcd"
ingressetcd
"k8s.io/kubernetes/pkg/registry/ingress/etcd"
jobetcd
"k8s.io/kubernetes/pkg/registry/job/etcd"
limitrangeetcd
"k8s.io/kubernetes/pkg/registry/limitrange/etcd"
...
...
@@ -268,11 +270,11 @@ type Config struct {
KubernetesServiceNodePort
int
}
func
(
c
*
Config
)
storage
Factory
()
storage
.
StorageFactory
{
func
(
c
*
Config
)
storage
Decorator
()
generic
.
StorageDecorator
{
if
c
.
EnableWatchCache
{
return
storage
.
New
Cacher
return
genericetcd
.
StorageWith
Cacher
}
return
storage
.
NoDecoration
return
generic
.
UndecoratedStorage
}
type
InstallSSHKey
func
(
user
string
,
data
[]
byte
)
error
...
...
@@ -543,31 +545,31 @@ func (m *Master) init(c *Config) {
healthzChecks
:=
[]
healthz
.
HealthzChecker
{}
storage
Factory
:=
c
.
storageFactory
()
storage
Decorator
:=
c
.
storageDecorator
()
dbClient
:=
func
(
resource
string
)
storage
.
Interface
{
return
c
.
StorageDestinations
.
get
(
""
,
resource
)
}
podStorage
:=
podetcd
.
NewStorage
(
dbClient
(
"pods"
),
storage
Factory
,
c
.
KubeletClient
,
m
.
proxyTransport
)
podStorage
:=
podetcd
.
NewStorage
(
dbClient
(
"pods"
),
storage
Decorator
,
c
.
KubeletClient
,
m
.
proxyTransport
)
podTemplateStorage
:=
podtemplateetcd
.
NewREST
(
dbClient
(
"podTemplates"
),
storage
Factory
)
podTemplateStorage
:=
podtemplateetcd
.
NewREST
(
dbClient
(
"podTemplates"
),
storage
Decorator
)
eventStorage
:=
eventetcd
.
NewREST
(
dbClient
(
"events"
),
storage
Factory
,
uint64
(
c
.
EventTTL
.
Seconds
()))
limitRangeStorage
:=
limitrangeetcd
.
NewREST
(
dbClient
(
"limitRanges"
),
storage
Factory
)
eventStorage
:=
eventetcd
.
NewREST
(
dbClient
(
"events"
),
storage
Decorator
,
uint64
(
c
.
EventTTL
.
Seconds
()))
limitRangeStorage
:=
limitrangeetcd
.
NewREST
(
dbClient
(
"limitRanges"
),
storage
Decorator
)
resourceQuotaStorage
,
resourceQuotaStatusStorage
:=
resourcequotaetcd
.
NewREST
(
dbClient
(
"resourceQuotas"
),
storage
Factory
)
secretStorage
:=
secretetcd
.
NewREST
(
dbClient
(
"secrets"
),
storage
Factory
)
serviceAccountStorage
:=
serviceaccountetcd
.
NewREST
(
dbClient
(
"serviceAccounts"
),
storage
Factory
)
persistentVolumeStorage
,
persistentVolumeStatusStorage
:=
pvetcd
.
NewREST
(
dbClient
(
"persistentVolumes"
),
storage
Factory
)
persistentVolumeClaimStorage
,
persistentVolumeClaimStatusStorage
:=
pvcetcd
.
NewREST
(
dbClient
(
"persistentVolumeClaims"
),
storage
Factory
)
resourceQuotaStorage
,
resourceQuotaStatusStorage
:=
resourcequotaetcd
.
NewREST
(
dbClient
(
"resourceQuotas"
),
storage
Decorator
)
secretStorage
:=
secretetcd
.
NewREST
(
dbClient
(
"secrets"
),
storage
Decorator
)
serviceAccountStorage
:=
serviceaccountetcd
.
NewREST
(
dbClient
(
"serviceAccounts"
),
storage
Decorator
)
persistentVolumeStorage
,
persistentVolumeStatusStorage
:=
pvetcd
.
NewREST
(
dbClient
(
"persistentVolumes"
),
storage
Decorator
)
persistentVolumeClaimStorage
,
persistentVolumeClaimStatusStorage
:=
pvcetcd
.
NewREST
(
dbClient
(
"persistentVolumeClaims"
),
storage
Decorator
)
namespaceStorage
,
namespaceStatusStorage
,
namespaceFinalizeStorage
:=
namespaceetcd
.
NewREST
(
dbClient
(
"namespaces"
),
storage
Factory
)
namespaceStorage
,
namespaceStatusStorage
,
namespaceFinalizeStorage
:=
namespaceetcd
.
NewREST
(
dbClient
(
"namespaces"
),
storage
Decorator
)
m
.
namespaceRegistry
=
namespace
.
NewRegistry
(
namespaceStorage
)
endpointsStorage
:=
endpointsetcd
.
NewREST
(
dbClient
(
"endpoints"
),
storage
Factory
)
endpointsStorage
:=
endpointsetcd
.
NewREST
(
dbClient
(
"endpoints"
),
storage
Decorator
)
m
.
endpointRegistry
=
endpoint
.
NewRegistry
(
endpointsStorage
)
nodeStorage
,
nodeStatusStorage
:=
nodeetcd
.
NewREST
(
dbClient
(
"nodes"
),
storage
Factory
,
c
.
KubeletClient
,
m
.
proxyTransport
)
nodeStorage
,
nodeStatusStorage
:=
nodeetcd
.
NewREST
(
dbClient
(
"nodes"
),
storage
Decorator
,
c
.
KubeletClient
,
m
.
proxyTransport
)
m
.
nodeRegistry
=
node
.
NewRegistry
(
nodeStorage
)
serviceStorage
:=
serviceetcd
.
NewREST
(
dbClient
(
"services"
),
storage
Factory
)
serviceStorage
:=
serviceetcd
.
NewREST
(
dbClient
(
"services"
),
storage
Decorator
)
m
.
serviceRegistry
=
service
.
NewRegistry
(
serviceStorage
)
var
serviceClusterIPRegistry
service
.
RangeRegistry
...
...
@@ -588,7 +590,7 @@ func (m *Master) init(c *Config) {
})
m
.
serviceNodePortAllocator
=
serviceNodePortRegistry
controllerStorage
,
controllerStatusStorage
:=
controlleretcd
.
NewREST
(
dbClient
(
"replicationControllers"
),
storage
Factory
)
controllerStorage
,
controllerStatusStorage
:=
controlleretcd
.
NewREST
(
dbClient
(
"replicationControllers"
),
storage
Decorator
)
// TODO: Factor out the core API registration
m
.
storage
=
map
[
string
]
rest
.
Storage
{
...
...
@@ -1008,7 +1010,7 @@ func (m *Master) InstallThirdPartyResource(rsrc *expapi.ThirdPartyResource) erro
}
func
(
m
*
Master
)
thirdpartyapi
(
group
,
kind
,
version
string
)
*
apiserver
.
APIGroupVersion
{
resourceStorage
:=
thirdpartyresourcedataetcd
.
NewREST
(
m
.
thirdPartyStorage
,
storage
.
NoDecoration
,
group
,
kind
)
resourceStorage
:=
thirdpartyresourcedataetcd
.
NewREST
(
m
.
thirdPartyStorage
,
generic
.
UndecoratedStorage
,
group
,
kind
)
apiRoot
:=
makeThirdPartyPath
(
""
)
...
...
@@ -1050,22 +1052,22 @@ func (m *Master) experimental(c *Config) *apiserver.APIGroupVersion {
}
return
enabled
}
storage
Factory
:=
c
.
storageFactory
()
storage
Decorator
:=
c
.
storageDecorator
()
dbClient
:=
func
(
resource
string
)
storage
.
Interface
{
return
c
.
StorageDestinations
.
get
(
"extensions"
,
resource
)
}
storage
:=
map
[
string
]
rest
.
Storage
{}
if
isEnabled
(
"horizontalpodautoscalers"
)
{
autoscalerStorage
,
autoscalerStatusStorage
:=
horizontalpodautoscaleretcd
.
NewREST
(
dbClient
(
"horizontalpodautoscalers"
),
storage
Factory
)
autoscalerStorage
,
autoscalerStatusStorage
:=
horizontalpodautoscaleretcd
.
NewREST
(
dbClient
(
"horizontalpodautoscalers"
),
storage
Decorator
)
storage
[
"horizontalpodautoscalers"
]
=
autoscalerStorage
storage
[
"horizontalpodautoscalers/status"
]
=
autoscalerStatusStorage
controllerStorage
:=
expcontrolleretcd
.
NewStorage
(
c
.
StorageDestinations
.
get
(
""
,
"replicationControllers"
),
storage
Factory
)
controllerStorage
:=
expcontrolleretcd
.
NewStorage
(
c
.
StorageDestinations
.
get
(
""
,
"replicationControllers"
),
storage
Decorator
)
storage
[
"replicationcontrollers"
]
=
controllerStorage
.
ReplicationController
storage
[
"replicationcontrollers/scale"
]
=
controllerStorage
.
Scale
}
if
isEnabled
(
"thirdpartyresources"
)
{
thirdPartyResourceStorage
:=
thirdpartyresourceetcd
.
NewREST
(
dbClient
(
"thirdpartyresources"
),
storage
Factory
)
thirdPartyResourceStorage
:=
thirdpartyresourceetcd
.
NewREST
(
dbClient
(
"thirdpartyresources"
),
storage
Decorator
)
thirdPartyControl
:=
ThirdPartyController
{
master
:
m
,
thirdPartyResourceRegistry
:
thirdPartyResourceStorage
,
...
...
@@ -1082,23 +1084,23 @@ func (m *Master) experimental(c *Config) *apiserver.APIGroupVersion {
}
if
isEnabled
(
"daemonsets"
)
{
daemonSetStorage
,
daemonSetStatusStorage
:=
daemonetcd
.
NewREST
(
dbClient
(
"daemonsets"
),
storage
Factory
)
daemonSetStorage
,
daemonSetStatusStorage
:=
daemonetcd
.
NewREST
(
dbClient
(
"daemonsets"
),
storage
Decorator
)
storage
[
"daemonsets"
]
=
daemonSetStorage
storage
[
"daemonsets/status"
]
=
daemonSetStatusStorage
}
if
isEnabled
(
"deployments"
)
{
deploymentStorage
:=
deploymentetcd
.
NewStorage
(
dbClient
(
"deployments"
),
storage
Factory
)
deploymentStorage
:=
deploymentetcd
.
NewStorage
(
dbClient
(
"deployments"
),
storage
Decorator
)
storage
[
"deployments"
]
=
deploymentStorage
.
Deployment
storage
[
"deployments/status"
]
=
deploymentStorage
.
Status
storage
[
"deployments/scale"
]
=
deploymentStorage
.
Scale
}
if
isEnabled
(
"jobs"
)
{
jobStorage
,
jobStatusStorage
:=
jobetcd
.
NewREST
(
dbClient
(
"jobs"
),
storage
Factory
)
jobStorage
,
jobStatusStorage
:=
jobetcd
.
NewREST
(
dbClient
(
"jobs"
),
storage
Decorator
)
storage
[
"jobs"
]
=
jobStorage
storage
[
"jobs/status"
]
=
jobStatusStorage
}
if
isEnabled
(
"ingresses"
)
{
ingressStorage
,
ingressStatusStorage
:=
ingressetcd
.
NewREST
(
dbClient
(
"ingresses"
),
storage
Factory
)
ingressStorage
,
ingressStatusStorage
:=
ingressetcd
.
NewREST
(
dbClient
(
"ingresses"
),
storage
Decorator
)
storage
[
"ingresses"
]
=
ingressStorage
storage
[
"ingresses/status"
]
=
ingressStatusStorage
}
...
...
pkg/registry/controller/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against replication controllers.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/controllers"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
ReplicationControllerList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
ReplicationController
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
ReplicationController
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ReplicationController
{}
},
...
...
pkg/registry/controller/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -22,15 +22,15 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
controllerStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
controllerStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
controllerStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/daemonset/etcd/etcd.go
View file @
3550df30
...
...
@@ -34,12 +34,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against DaemonSets.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/daemonsets"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
extensions
.
DaemonSetList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
extensions
.
DaemonSet
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
extensions
.
DaemonSet
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
DaemonSet
{}
},
...
...
pkg/registry/daemonset/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -23,15 +23,15 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
"extensions"
)
daemonSetStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
daemonSetStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
daemonSetStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/deployment/etcd/etcd.go
View file @
3550df30
...
...
@@ -39,8 +39,8 @@ type DeploymentStorage struct {
Scale
*
ScaleREST
}
func
NewStorage
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
DeploymentStorage
{
deploymentRest
,
deploymentStatusRest
:=
NewREST
(
s
,
storage
Factory
)
func
NewStorage
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
DeploymentStorage
{
deploymentRest
,
deploymentStatusRest
:=
NewREST
(
s
,
storage
Decorator
)
deploymentRegistry
:=
deployment
.
NewRegistry
(
deploymentRest
)
return
DeploymentStorage
{
...
...
@@ -55,12 +55,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against deployments.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/deployments"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
extensions
.
DeploymentList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
extensions
.
Deployment
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
extensions
.
Deployment
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
Deployment
{}
},
...
...
pkg/registry/deployment/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -24,9 +24,9 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -34,7 +34,7 @@ import (
func
newStorage
(
t
*
testing
.
T
)
(
*
DeploymentStorage
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
"extensions"
)
deploymentStorage
:=
NewStorage
(
etcdStorage
,
storage
.
NoDecoration
)
deploymentStorage
:=
NewStorage
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
&
deploymentStorage
,
fakeClient
}
...
...
pkg/registry/endpoint/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against endpoints.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
*
REST
{
prefix
:=
"/services/endpoints"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
EndpointsList
{}
}
storageInterface
:=
storage
Factory
(
s
,
1000
,
nil
,
&
api
.
Endpoints
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
1000
,
&
api
.
Endpoints
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Endpoints
{}
},
...
...
pkg/registry/endpoint/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -22,15 +22,15 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
),
fakeClient
}
func
validNewEndpoints
()
*
api
.
Endpoints
{
...
...
pkg/registry/event/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,7 +32,7 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against events.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
,
ttl
uint64
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
,
ttl
uint64
)
*
REST
{
prefix
:=
"/events"
// We explicitly do NOT do any decoration here - switching on Cacher
...
...
pkg/registry/event/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -20,9 +20,9 @@ import (
"testing"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
...
...
@@ -31,7 +31,7 @@ var testTTL uint64 = 60
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
fakeClient
.
HideExpires
=
true
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
,
testTTL
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
,
testTTL
),
fakeClient
}
func
validNewEvent
(
namespace
string
)
*
api
.
Event
{
...
...
pkg/registry/experimental/controller/etcd/etcd.go
View file @
3550df30
...
...
@@ -27,6 +27,7 @@ import (
"k8s.io/kubernetes/pkg/registry/controller"
"k8s.io/kubernetes/pkg/registry/controller/etcd"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/apis/extensions"
)
...
...
@@ -37,9 +38,9 @@ type ContainerStorage struct {
Scale
*
ScaleREST
}
func
NewStorage
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
ContainerStorage
{
func
NewStorage
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
ContainerStorage
{
// scale does not set status, only updates spec so we ignore the status
controllerREST
,
_
:=
etcd
.
NewREST
(
s
,
storage
Factory
)
controllerREST
,
_
:=
etcd
.
NewREST
(
s
,
storage
Decorator
)
rcRegistry
:=
controller
.
NewRegistry
(
controllerREST
)
return
ContainerStorage
{
...
...
pkg/registry/experimental/controller/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -22,9 +22,9 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -32,7 +32,7 @@ import (
func
newStorage
(
t
*
testing
.
T
)
(
*
ScaleREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
return
NewStorage
(
etcdStorage
,
storage
.
NoDecoration
)
.
Scale
,
fakeClient
return
NewStorage
(
etcdStorage
,
generic
.
UndecoratedStorage
)
.
Scale
,
fakeClient
}
var
validPodTemplate
=
api
.
PodTemplate
{
...
...
pkg/registry/generic/etcd/storage_factory.go
0 → 100644
View file @
3550df30
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
etcd
import
(
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
etcdstorage
"k8s.io/kubernetes/pkg/storage/etcd"
)
// Creates a cacher on top of the given 'storageInterface'.
func
StorageWithCacher
(
storageInterface
storage
.
Interface
,
capacity
int
,
objectType
runtime
.
Object
,
resourcePrefix
string
,
namespaceScoped
bool
,
newListFunc
func
()
runtime
.
Object
)
storage
.
Interface
{
return
storage
.
NewCacher
(
storageInterface
,
capacity
,
etcdstorage
.
APIObjectVersioner
{},
objectType
,
resourcePrefix
,
namespaceScoped
,
newListFunc
)
}
pkg/registry/generic/storage_decorator.go
0 → 100644
View file @
3550df30
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
generic
import
(
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
)
// StorageDecorator is a function signature for producing
// a storage.Interface from given parameters.
type
StorageDecorator
func
(
storageInterface
storage
.
Interface
,
capacity
int
,
objectType
runtime
.
Object
,
resourcePrefix
string
,
namespaceScoped
bool
,
newListFunc
func
()
runtime
.
Object
)
storage
.
Interface
// Returns given 'storageInterface' without any decoration.
func
UndecoratedStorage
(
storageInterface
storage
.
Interface
,
capacity
int
,
objectType
runtime
.
Object
,
resourcePrefix
string
,
namespaceScoped
bool
,
newListFunc
func
()
runtime
.
Object
)
storage
.
Interface
{
return
storageInterface
}
pkg/registry/horizontalpodautoscaler/etcd/etcd.go
View file @
3550df30
...
...
@@ -33,12 +33,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/horizontalpodautoscalers"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
extensions
.
HorizontalPodAutoscalerList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
extensions
.
HorizontalPodAutoscaler
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
extensions
.
HorizontalPodAutoscaler
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
HorizontalPodAutoscaler
{}
},
...
...
pkg/registry/horizontalpodautoscaler/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -25,15 +25,15 @@ import (
_
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
"extensions"
)
horizontalPodAutoscalerStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
horizontalPodAutoscalerStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
horizontalPodAutoscalerStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/ingress/etcd/etcd.go
View file @
3550df30
...
...
@@ -34,12 +34,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against replication controllers.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/ingress"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
extensions
.
IngressList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
extensions
.
Ingress
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
extensions
.
Ingress
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
Ingress
{}
},
...
...
pkg/registry/ingress/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -23,16 +23,16 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
"extensions"
)
ingressStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
ingressStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
ingressStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/job/etcd/etcd.go
View file @
3550df30
...
...
@@ -34,12 +34,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against Jobs.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/jobs"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
extensions
.
JobList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
extensions
.
Job
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
extensions
.
Job
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
Job
{}
},
...
...
pkg/registry/job/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -25,15 +25,15 @@ import (
_
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
"extensions"
)
jobStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
jobStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
jobStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/limitrange/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
*
REST
{
prefix
:=
"/limitranges"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
LimitRangeList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
LimitRange
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
LimitRange
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
LimitRange
{}
},
...
...
pkg/registry/limitrange/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -23,15 +23,15 @@ import (
"k8s.io/kubernetes/pkg/api/resource"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
),
fakeClient
}
func
validNewLimitRange
()
*
api
.
LimitRange
{
...
...
pkg/registry/namespace/etcd/etcd.go
View file @
3550df30
...
...
@@ -48,12 +48,12 @@ type FinalizeREST struct {
}
// NewREST returns a RESTStorage object that will work against namespaces.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
,
*
FinalizeREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
,
*
FinalizeREST
)
{
prefix
:=
"/namespaces"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
NamespaceList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
Namespace
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
Namespace
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Namespace
{}
},
...
...
pkg/registry/namespace/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -24,16 +24,16 @@ import (
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
namespaceStorage
,
_
,
_
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
namespaceStorage
,
_
,
_
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
namespaceStorage
,
fakeClient
}
...
...
pkg/registry/node/etcd/etcd.go
View file @
3550df30
...
...
@@ -23,6 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/registry/generic"
etcdgeneric
"k8s.io/kubernetes/pkg/registry/generic/etcd"
"k8s.io/kubernetes/pkg/registry/node"
"k8s.io/kubernetes/pkg/runtime"
...
...
@@ -50,12 +51,12 @@ func (r *StatusREST) Update(ctx api.Context, obj runtime.Object) (runtime.Object
}
// NewREST returns a RESTStorage object that will work against nodes.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
,
connection
client
.
ConnectionInfoGetter
,
proxyTransport
http
.
RoundTripper
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
,
connection
client
.
ConnectionInfoGetter
,
proxyTransport
http
.
RoundTripper
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/minions"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
NodeList
{}
}
storageInterface
:=
storage
Factory
(
s
,
1000
,
nil
,
&
api
.
Node
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
1000
,
&
api
.
Node
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Node
{}
},
...
...
pkg/registry/node/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -24,9 +24,9 @@ import (
"k8s.io/kubernetes/pkg/api/resource"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
...
...
@@ -39,7 +39,7 @@ func (fakeConnectionInfoGetter) GetConnectionInfo(host string) (string, uint, ht
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
storage
,
_
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
,
fakeConnectionInfoGetter
{},
nil
)
storage
,
_
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
,
fakeConnectionInfoGetter
{},
nil
)
return
storage
,
fakeClient
}
...
...
pkg/registry/persistentvolume/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against persistent volumes.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/persistentvolumes"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
PersistentVolume
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
PersistentVolume
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolume
{}
},
...
...
pkg/registry/persistentvolume/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -24,9 +24,9 @@ import (
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -34,7 +34,7 @@ import (
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
persistentVolumeStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
persistentVolumeStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
persistentVolumeStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/persistentvolumeclaim/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against persistent volume claims.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/persistentvolumeclaims"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeClaimList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
PersistentVolumeClaim
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
PersistentVolumeClaim
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeClaim
{}
},
...
...
pkg/registry/persistentvolumeclaim/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -24,9 +24,9 @@ import (
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -34,7 +34,7 @@ import (
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
persistentVolumeClaimStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
persistentVolumeClaimStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
persistentVolumeClaimStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/pod/etcd/etcd.go
View file @
3550df30
...
...
@@ -57,12 +57,12 @@ type REST struct {
}
// NewStorage returns a RESTStorage object that will work against pods.
func
NewStorage
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
,
k
client
.
ConnectionInfoGetter
,
proxyTransport
http
.
RoundTripper
)
PodStorage
{
func
NewStorage
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
,
k
client
.
ConnectionInfoGetter
,
proxyTransport
http
.
RoundTripper
)
PodStorage
{
prefix
:=
"/pods"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
PodList
{}
}
storageInterface
:=
storage
Factory
(
s
,
1000
,
nil
,
&
api
.
Pod
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
1000
,
&
api
.
Pod
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Pod
{}
},
...
...
pkg/registry/pod/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -28,10 +28,10 @@ import (
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/securitycontext"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -39,7 +39,7 @@ import (
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
BindingREST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
storage
:=
NewStorage
(
etcdStorage
,
storage
.
NoDecoration
,
nil
,
nil
)
storage
:=
NewStorage
(
etcdStorage
,
generic
.
UndecoratedStorage
,
nil
,
nil
)
return
storage
.
Pod
,
storage
.
Binding
,
storage
.
Status
,
fakeClient
}
...
...
pkg/registry/podtemplate/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against pod templates.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
*
REST
{
prefix
:=
"/podtemplates"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
PodTemplateList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
PodTemplate
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
PodTemplate
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PodTemplate
{}
},
...
...
pkg/registry/podtemplate/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -22,15 +22,15 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
),
fakeClient
}
func
validNewPodTemplate
(
name
string
)
*
api
.
PodTemplate
{
...
...
pkg/registry/resourcequota/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against resource quotas.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
(
*
REST
,
*
StatusREST
)
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
(
*
REST
,
*
StatusREST
)
{
prefix
:=
"/resourcequotas"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
ResourceQuotaList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
ResourceQuota
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
ResourceQuota
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ResourceQuota
{}
},
...
...
pkg/registry/resourcequota/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -25,9 +25,9 @@ import (
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -35,7 +35,7 @@ import (
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
StatusREST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
resourceQuotaStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
storage
.
NoDecoration
)
resourceQuotaStorage
,
statusStorage
:=
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
)
return
resourceQuotaStorage
,
statusStorage
,
fakeClient
}
...
...
pkg/registry/secret/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against secrets.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
*
REST
{
prefix
:=
"/secrets"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
SecretList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
Secret
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
Secret
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Secret
{}
},
...
...
pkg/registry/secret/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -22,15 +22,15 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
),
fakeClient
}
func
validNewSecret
(
name
string
)
*
api
.
Secret
{
...
...
pkg/registry/service/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against services.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
*
REST
{
prefix
:=
"/services/specs"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
ServiceList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
Service
{},
prefix
,
false
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
Service
{},
prefix
,
false
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Service
{}
},
...
...
pkg/registry/service/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -22,16 +22,16 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
),
fakeClient
}
func
validService
()
*
api
.
Service
{
...
...
pkg/registry/serviceaccount/etcd/etcd.go
View file @
3550df30
...
...
@@ -32,12 +32,12 @@ type REST struct {
}
// NewREST returns a RESTStorage object that will work against service accounts.
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
*
REST
{
prefix
:=
"/serviceaccounts"
newListFunc
:=
func
()
runtime
.
Object
{
return
&
api
.
ServiceAccountList
{}
}
storageInterface
:=
storage
Factory
(
s
,
100
,
nil
,
&
api
.
ServiceAccount
{},
prefix
,
true
,
newListFunc
)
storageInterface
:=
storage
Decorator
(
s
,
100
,
&
api
.
ServiceAccount
{},
prefix
,
true
,
newListFunc
)
store
:=
&
etcdgeneric
.
Etcd
{
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ServiceAccount
{}
},
...
...
pkg/registry/serviceaccount/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -22,15 +22,15 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
""
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
),
fakeClient
}
func
validNewServiceAccount
(
name
string
)
*
api
.
ServiceAccount
{
...
...
pkg/registry/thirdpartyresource/etcd/etcd.go
View file @
3550df30
...
...
@@ -34,7 +34,7 @@ type REST struct {
}
// NewREST returns a registry which will store ThirdPartyResource in the given helper
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
)
*
REST
{
prefix
:=
"/thirdpartyresources"
// We explicitly do NOT do any decoration here yet.
...
...
pkg/registry/thirdpartyresource/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -25,15 +25,15 @@ import (
_
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
"extensions"
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
),
fakeClient
}
func
validNewThirdPartyResource
(
name
string
)
*
extensions
.
ThirdPartyResource
{
...
...
pkg/registry/thirdpartyresourcedata/etcd/etcd.go
View file @
3550df30
...
...
@@ -36,7 +36,7 @@ type REST struct {
}
// NewREST returns a registry which will store ThirdPartyResourceData in the given helper
func
NewREST
(
s
storage
.
Interface
,
storage
Factory
storage
.
StorageFactory
,
group
,
kind
string
)
*
REST
{
func
NewREST
(
s
storage
.
Interface
,
storage
Decorator
generic
.
StorageDecorator
,
group
,
kind
string
)
*
REST
{
prefix
:=
"/ThirdPartyResourceData/"
+
group
+
"/"
+
strings
.
ToLower
(
kind
)
+
"s"
// We explicitly do NOT do any decoration here yet.
...
...
pkg/registry/thirdpartyresourcedata/etcd/etcd_test.go
View file @
3550df30
...
...
@@ -25,15 +25,15 @@ import (
_
"k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/registry/generic"
"k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/tools"
)
func
newStorage
(
t
*
testing
.
T
)
(
*
REST
,
*
tools
.
FakeEtcdClient
)
{
etcdStorage
,
fakeClient
:=
registrytest
.
NewEtcdStorage
(
t
,
"extensions"
)
return
NewREST
(
etcdStorage
,
storage
.
NoDecoration
,
"foo"
,
"bar"
),
fakeClient
return
NewREST
(
etcdStorage
,
generic
.
UndecoratedStorage
,
"foo"
,
"bar"
),
fakeClient
}
func
validNewThirdPartyResourceData
(
name
string
)
*
extensions
.
ThirdPartyResourceData
{
...
...
pkg/storage/cacher.go
View file @
3550df30
...
...
@@ -112,28 +112,6 @@ type Cacher struct {
ListFromCache
bool
}
// StorageFactory is a function signature for producing
// a storage.Interface from given parameters.
type
StorageFactory
func
(
storage
Interface
,
capacity
int
,
versioner
Versioner
,
objectType
runtime
.
Object
,
resourcePrefix
string
,
namespaceScoped
bool
,
newListFunc
func
()
runtime
.
Object
)
Interface
func
NoDecoration
(
storage
Interface
,
capacity
int
,
versioner
Versioner
,
objectType
runtime
.
Object
,
resourcePrefix
string
,
namespaceScoped
bool
,
newListFunc
func
()
runtime
.
Object
)
Interface
{
return
storage
}
// Create a new Cacher responsible from service WATCH and LIST requests from its
// internal cache and updating its cache in the background based on the given
// configuration.
...
...
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