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
9fb37f3b
Commit
9fb37f3b
authored
Jan 26, 2017
by
deads2k
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove storage dependency on api
parent
0107e93c
Hide whitespace changes
Inline
Side-by-side
Showing
67 changed files
with
165 additions
and
29 deletions
+165
-29
BUILD
cmd/kube-aggregator/pkg/registry/apiservice/etcd/BUILD
+1
-0
etcd.go
cmd/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go
+2
-0
reststorage.go
examples/apiserver/rest/reststorage.go
+1
-0
BUILD
federation/registry/cluster/etcd/BUILD
+1
-0
etcd.go
federation/registry/cluster/etcd/etcd.go
+2
-0
storage_factory.go
...ricapiserver/registry/generic/registry/storage_factory.go
+2
-0
store.go
pkg/genericapiserver/registry/generic/registry/store.go
+4
-0
store_test.go
pkg/genericapiserver/registry/generic/registry/store_test.go
+2
-0
storage_decorator.go
pkg/genericapiserver/registry/generic/storage_decorator.go
+2
-0
BUILD
pkg/registry/apps/petset/storage/BUILD
+1
-0
storage.go
pkg/registry/apps/petset/storage/storage.go
+2
-0
BUILD
...egistry/autoscaling/horizontalpodautoscaler/storage/BUILD
+1
-0
storage.go
...ry/autoscaling/horizontalpodautoscaler/storage/storage.go
+2
-0
BUILD
pkg/registry/batch/cronjob/storage/BUILD
+1
-0
storage.go
pkg/registry/batch/cronjob/storage/storage.go
+2
-0
BUILD
pkg/registry/batch/job/storage/BUILD
+1
-0
storage.go
pkg/registry/batch/job/storage/storage.go
+2
-0
BUILD
pkg/registry/certificates/certificates/storage/BUILD
+1
-0
storage.go
pkg/registry/certificates/certificates/storage/storage.go
+2
-0
storage.go
pkg/registry/core/configmap/storage/storage.go
+1
-0
storage.go
pkg/registry/core/endpoint/storage/storage.go
+1
-0
storage.go
pkg/registry/core/event/storage/storage.go
+1
-0
storage.go
pkg/registry/core/limitrange/storage/storage.go
+1
-0
storage.go
pkg/registry/core/namespace/storage/storage.go
+1
-0
storage.go
pkg/registry/core/node/storage/storage.go
+1
-0
storage.go
pkg/registry/core/persistentvolume/storage/storage.go
+1
-0
storage.go
pkg/registry/core/persistentvolumeclaim/storage/storage.go
+1
-0
storage.go
pkg/registry/core/pod/storage/storage.go
+1
-0
storage.go
pkg/registry/core/podtemplate/storage/storage.go
+1
-0
storage.go
pkg/registry/core/replicationcontroller/storage/storage.go
+1
-0
storage.go
pkg/registry/core/resourcequota/storage/storage.go
+1
-0
storage.go
pkg/registry/core/secret/storage/storage.go
+1
-0
storage.go
pkg/registry/core/service/storage/storage.go
+1
-0
storage.go
pkg/registry/core/serviceaccount/storage/storage.go
+1
-0
BUILD
pkg/registry/extensions/daemonset/storage/BUILD
+1
-0
storage.go
pkg/registry/extensions/daemonset/storage/storage.go
+2
-0
BUILD
pkg/registry/extensions/deployment/storage/BUILD
+1
-0
storage.go
pkg/registry/extensions/deployment/storage/storage.go
+2
-0
BUILD
pkg/registry/extensions/ingress/storage/BUILD
+1
-0
storage.go
pkg/registry/extensions/ingress/storage/storage.go
+2
-0
BUILD
pkg/registry/extensions/networkpolicy/storage/BUILD
+1
-0
storage.go
pkg/registry/extensions/networkpolicy/storage/storage.go
+2
-0
BUILD
pkg/registry/extensions/podsecuritypolicy/storage/BUILD
+1
-0
storage.go
pkg/registry/extensions/podsecuritypolicy/storage/storage.go
+2
-0
BUILD
pkg/registry/extensions/replicaset/storage/BUILD
+1
-0
storage.go
pkg/registry/extensions/replicaset/storage/storage.go
+2
-0
BUILD
pkg/registry/extensions/thirdpartyresource/storage/BUILD
+1
-0
storage.go
...registry/extensions/thirdpartyresource/storage/storage.go
+2
-0
BUILD
pkg/registry/extensions/thirdpartyresourcedata/storage/BUILD
+1
-0
storage.go
...stry/extensions/thirdpartyresourcedata/storage/storage.go
+2
-0
BUILD
pkg/registry/policy/poddisruptionbudget/storage/BUILD
+1
-0
storage.go
pkg/registry/policy/poddisruptionbudget/storage/storage.go
+2
-0
BUILD
pkg/registry/rbac/clusterrole/storage/BUILD
+1
-0
storage.go
pkg/registry/rbac/clusterrole/storage/storage.go
+2
-0
BUILD
pkg/registry/rbac/clusterrolebinding/storage/BUILD
+1
-0
storage.go
pkg/registry/rbac/clusterrolebinding/storage/storage.go
+2
-0
BUILD
pkg/registry/rbac/role/storage/BUILD
+1
-0
storage.go
pkg/registry/rbac/role/storage/storage.go
+2
-0
BUILD
pkg/registry/rbac/rolebinding/storage/BUILD
+1
-0
storage.go
pkg/registry/rbac/rolebinding/storage/storage.go
+2
-0
BUILD
pkg/registry/storage/storageclass/storage/BUILD
+1
-0
storage.go
pkg/registry/storage/storageclass/storage/storage.go
+2
-0
BUILD
pkg/storage/BUILD
+4
-6
cacher.go
pkg/storage/cacher.go
+11
-5
cacher_test.go
pkg/storage/cacher_test.go
+58
-15
cacher_whitebox_test.go
pkg/storage/cacher_whitebox_test.go
+2
-2
watch_cache_test.go
pkg/storage/watch_cache_test.go
+1
-1
No files found.
cmd/kube-aggregator/pkg/registry/apiservice/etcd/BUILD
View file @
9fb37f3b
...
...
@@ -14,6 +14,7 @@ go_library(
deps = [
"//cmd/kube-aggregator/pkg/apis/apiregistration:go_default_library",
"//cmd/kube-aggregator/pkg/registry/apiservice:go_default_library",
"//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime",
...
...
cmd/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/cmd/kube-aggregator/pkg/apis/apiregistration"
"k8s.io/kubernetes/cmd/kube-aggregator/pkg/registry/apiservice"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
)
...
...
@@ -32,6 +33,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against API services.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
apiregistration
.
APIService
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
apiregistration
.
APIServiceList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
examples/apiserver/rest/reststorage.go
View file @
9fb37f3b
...
...
@@ -39,6 +39,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work with testtype.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
testgroup
.
TestType
{}
},
// NewListFunc returns an object capable of storing results of an etcd list.
NewListFunc
:
func
()
runtime
.
Object
{
return
&
testgroup
.
TestTypeList
{}
},
...
...
federation/registry/cluster/etcd/BUILD
View file @
9fb37f3b
...
...
@@ -15,6 +15,7 @@ go_library(
deps = [
"//federation/apis/federation:go_default_library",
"//federation/registry/cluster:go_default_library",
"//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library",
...
...
federation/registry/cluster/etcd/etcd.go
View file @
9fb37f3b
...
...
@@ -21,6 +21,7 @@ import (
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/federation/apis/federation"
"k8s.io/kubernetes/federation/registry/cluster"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
...
...
@@ -46,6 +47,7 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
// NewREST returns a RESTStorage object that will work against clusters.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
federation
.
Cluster
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
federation
.
ClusterList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/genericapiserver/registry/generic/registry/storage_factory.go
View file @
9fb37f3b
...
...
@@ -29,6 +29,7 @@ var _ generic.StorageDecorator = StorageWithCacher
// Creates a cacher based given storageConfig.
func
StorageWithCacher
(
copier
runtime
.
ObjectCopier
,
storageConfig
*
storagebackend
.
Config
,
capacity
int
,
objectType
runtime
.
Object
,
...
...
@@ -45,6 +46,7 @@ func StorageWithCacher(
CacheCapacity
:
capacity
,
Storage
:
s
,
Versioner
:
etcdstorage
.
APIObjectVersioner
{},
Copier
:
copier
,
Type
:
objectType
,
ResourcePrefix
:
resourcePrefix
,
KeyFunc
:
keyFunc
,
...
...
pkg/genericapiserver/registry/generic/registry/store.go
View file @
9fb37f3b
...
...
@@ -67,6 +67,9 @@ type ObjectFunc func(obj runtime.Object) error
//
// TODO: make the default exposed methods exactly match a generic RESTStorage
type
Store
struct
{
// Copier is used to make some storage caching decorators work
Copier
runtime
.
ObjectCopier
// NewFunc returns a new instance of the type this registry returns for a
// GET of a single object, e.g.:
//
...
...
@@ -1116,6 +1119,7 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error {
if
e
.
Storage
==
nil
{
e
.
Storage
,
e
.
DestroyFunc
=
opts
.
Decorator
(
e
.
Copier
,
opts
.
StorageConfig
,
cachesize
.
GetWatchCacheSizeByResource
(
cachesize
.
Resource
(
e
.
QualifiedResource
.
Resource
)),
e
.
NewFunc
(),
...
...
pkg/genericapiserver/registry/generic/registry/store_test.go
View file @
9fb37f3b
...
...
@@ -1251,6 +1251,7 @@ func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (factory.De
CacheCapacity
:
10
,
Storage
:
s
,
Versioner
:
etcdstorage
.
APIObjectVersioner
{},
Copier
:
api
.
Scheme
,
Type
:
&
api
.
Pod
{},
ResourcePrefix
:
podPrefix
,
KeyFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
storage
.
NoNamespaceKeyFunc
(
podPrefix
,
obj
)
},
...
...
@@ -1268,6 +1269,7 @@ func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (factory.De
}
return
destroyFunc
,
&
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Pod
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PodList
{}
},
QualifiedResource
:
api
.
Resource
(
"pods"
),
...
...
pkg/genericapiserver/registry/generic/storage_decorator.go
View file @
9fb37f3b
...
...
@@ -27,6 +27,7 @@ import (
// StorageDecorator is a function signature for producing a storage.Interface
// and an associated DestroyFunc from given parameters.
type
StorageDecorator
func
(
copier
runtime
.
ObjectCopier
,
config
*
storagebackend
.
Config
,
capacity
int
,
objectType
runtime
.
Object
,
...
...
@@ -39,6 +40,7 @@ type StorageDecorator func(
// UndecoratedStorage returns the given a new storage from the given config
// without any decoration.
func
UndecoratedStorage
(
copier
runtime
.
ObjectCopier
,
config
*
storagebackend
.
Config
,
capacity
int
,
objectType
runtime
.
Object
,
...
...
pkg/registry/apps/petset/storage/BUILD
View file @
9fb37f3b
...
...
@@ -32,6 +32,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/apps:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/apps/petset/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
appsapi
"k8s.io/kubernetes/pkg/apis/apps"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -35,6 +36,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against replication controllers.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
appsapi
.
StatefulSet
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
appsapi
.
StatefulSetList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/autoscaling:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/autoscaling"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -34,6 +35,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
autoscaling
.
HorizontalPodAutoscaler
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
autoscaling
.
HorizontalPodAutoscalerList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/batch/cronjob/storage/BUILD
View file @
9fb37f3b
...
...
@@ -33,6 +33,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/batch:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/batch/cronjob/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -35,6 +36,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against CronJobs.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
batch
.
CronJob
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
batch
.
CronJobList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/batch/job/storage/BUILD
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/batch:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/batch/job/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -50,6 +51,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against Jobs.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
batch
.
Job
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
batch
.
JobList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/certificates/certificates/storage/BUILD
View file @
9fb37f3b
...
...
@@ -12,6 +12,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/certificates:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/certificates/certificates/storage/storage.go
View file @
9fb37f3b
...
...
@@ -19,6 +19,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/certificates"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -34,6 +35,7 @@ type REST struct {
// NewREST returns a registry which will store CertificateSigningRequest in the given helper
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
,
*
ApprovalREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
certificates
.
CertificateSigningRequest
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
certificates
.
CertificateSigningRequestList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/configmap/storage/storage.go
View file @
9fb37f3b
...
...
@@ -32,6 +32,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work with ConfigMap objects.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ConfigMap
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ConfigMapList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/endpoint/storage/storage.go
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against endpoints.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Endpoints
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
EndpointsList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/event/storage/storage.go
View file @
9fb37f3b
...
...
@@ -41,6 +41,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST {
opts
.
Decorator
=
generic
.
UndecoratedStorage
// TODO use watchCacheSize=-1 to signal UndecoratedStorage
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Event
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
EventList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/limitrange/storage/storage.go
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
LimitRange
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
LimitRangeList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/namespace/storage/storage.go
View file @
9fb37f3b
...
...
@@ -51,6 +51,7 @@ type FinalizeREST struct {
// NewREST returns a RESTStorage object that will work against namespaces.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
,
*
FinalizeREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Namespace
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
NamespaceList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/node/storage/storage.go
View file @
9fb37f3b
...
...
@@ -71,6 +71,7 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
// NewStorage returns a NodeStorage object that will work against nodes.
func
NewStorage
(
optsGetter
generic
.
RESTOptionsGetter
,
kubeletClientConfig
client
.
KubeletClientConfig
,
proxyTransport
http
.
RoundTripper
)
(
*
NodeStorage
,
error
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Node
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
NodeList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/persistentvolume/storage/storage.go
View file @
9fb37f3b
...
...
@@ -34,6 +34,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against persistent volumes.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolume
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/persistentvolumeclaim/storage/storage.go
View file @
9fb37f3b
...
...
@@ -34,6 +34,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against persistent volume claims.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeClaim
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PersistentVolumeClaimList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/pod/storage/storage.go
View file @
9fb37f3b
...
...
@@ -60,6 +60,7 @@ type REST struct {
// NewStorage returns a RESTStorage object that will work against pods.
func
NewStorage
(
optsGetter
generic
.
RESTOptionsGetter
,
k
client
.
ConnectionInfoGetter
,
proxyTransport
http
.
RoundTripper
,
podDisruptionBudgetClient
policyclient
.
PodDisruptionBudgetsGetter
)
PodStorage
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Pod
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PodList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/podtemplate/storage/storage.go
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against pod templates.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PodTemplate
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PodTemplateList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/replicationcontroller/storage/storage.go
View file @
9fb37f3b
...
...
@@ -60,6 +60,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against replication controllers.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ReplicationController
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ReplicationControllerList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/resourcequota/storage/storage.go
View file @
9fb37f3b
...
...
@@ -34,6 +34,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against resource quotas.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ResourceQuota
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ResourceQuotaList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/secret/storage/storage.go
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against secrets.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Secret
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
SecretList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/service/storage/storage.go
View file @
9fb37f3b
...
...
@@ -34,6 +34,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against services.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
Service
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ServiceList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/core/serviceaccount/storage/storage.go
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against service accounts.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ServiceAccount
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
ServiceAccountList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/daemonset/storage/BUILD
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/extensions/daemonset/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -35,6 +36,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against DaemonSets.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
DaemonSet
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
DaemonSetList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/deployment/storage/BUILD
View file @
9fb37f3b
...
...
@@ -37,6 +37,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/apis/extensions/validation:go_default_library",
...
...
pkg/registry/extensions/deployment/storage/storage.go
View file @
9fb37f3b
...
...
@@ -24,6 +24,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
storeerr
"k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/apis/extensions"
extvalidation
"k8s.io/kubernetes/pkg/apis/extensions/validation"
...
...
@@ -61,6 +62,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against deployments.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
,
*
RollbackREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
Deployment
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
DeploymentList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/ingress/storage/BUILD
View file @
9fb37f3b
...
...
@@ -32,6 +32,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/extensions/ingress/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -35,6 +36,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against replication controllers.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
Ingress
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
IngressList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/networkpolicy/storage/BUILD
View file @
9fb37f3b
...
...
@@ -32,6 +32,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/extensions/networkpolicy/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
extensionsapi
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -32,6 +33,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against network policies.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensionsapi
.
NetworkPolicy
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensionsapi
.
NetworkPolicyList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/podsecuritypolicy/storage/BUILD
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/extensions/podsecuritypolicy/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -32,6 +33,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against PodSecurityPolicy objects.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
PodSecurityPolicy
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
PodSecurityPolicyList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/replicaset/storage/BUILD
View file @
9fb37f3b
...
...
@@ -35,6 +35,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/apis/extensions/validation:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
...
...
pkg/registry/extensions/replicaset/storage/storage.go
View file @
9fb37f3b
...
...
@@ -25,6 +25,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
extvalidation
"k8s.io/kubernetes/pkg/apis/extensions/validation"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
...
...
@@ -58,6 +59,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against ReplicaSet.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ReplicaSet
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ReplicaSetList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/thirdpartyresource/storage/BUILD
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/extensions/thirdpartyresource/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -41,6 +42,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
opts
.
Decorator
=
generic
.
UndecoratedStorage
// TODO use watchCacheSize=-1 to signal UndecoratedStorage
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResource
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResourceList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/extensions/thirdpartyresourcedata/storage/BUILD
View file @
9fb37f3b
...
...
@@ -31,6 +31,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/extensions/thirdpartyresourcedata/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
"strings"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -45,6 +46,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter, group, kind string) *REST {
opts
.
ResourcePrefix
=
"/ThirdPartyResourceData/"
+
group
+
"/"
+
strings
.
ToLower
(
kind
)
+
"s"
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResourceData
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
extensions
.
ThirdPartyResourceDataList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/policy/poddisruptionbudget/storage/BUILD
View file @
9fb37f3b
...
...
@@ -33,6 +33,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/policy:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/policy/poddisruptionbudget/storage/storage.go
View file @
9fb37f3b
...
...
@@ -20,6 +20,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
genericapirequest
"k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api"
policyapi
"k8s.io/kubernetes/pkg/apis/policy"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -35,6 +36,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against pod disruption budgets.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
(
*
REST
,
*
StatusREST
)
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
policyapi
.
PodDisruptionBudget
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
policyapi
.
PodDisruptionBudgetList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/rbac/clusterrole/storage/BUILD
View file @
9fb37f3b
...
...
@@ -12,6 +12,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/rbac:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/rbac/clusterrole/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -32,6 +33,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against ClusterRole objects.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
ClusterRole
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
ClusterRoleList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/rbac/clusterrolebinding/storage/BUILD
View file @
9fb37f3b
...
...
@@ -12,6 +12,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/rbac:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/rbac/clusterrolebinding/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -32,6 +33,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against ClusterRoleBinding objects.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
ClusterRoleBinding
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
ClusterRoleBindingList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/rbac/role/storage/BUILD
View file @
9fb37f3b
...
...
@@ -12,6 +12,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/rbac:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/rbac/role/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -32,6 +33,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against Role objects.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
Role
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
RoleList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/rbac/rolebinding/storage/BUILD
View file @
9fb37f3b
...
...
@@ -12,6 +12,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/rbac:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/rbac/rolebinding/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/rbac"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -32,6 +33,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against RoleBinding objects.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
RoleBinding
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
rbac
.
RoleBindingList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/registry/storage/storageclass/storage/BUILD
View file @
9fb37f3b
...
...
@@ -30,6 +30,7 @@ go_library(
srcs = ["storage.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/apis/storage:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
...
...
pkg/registry/storage/storageclass/storage/storage.go
View file @
9fb37f3b
...
...
@@ -18,6 +18,7 @@ package storage
import
(
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api"
storageapi
"k8s.io/kubernetes/pkg/apis/storage"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
...
...
@@ -31,6 +32,7 @@ type REST struct {
// NewREST returns a RESTStorage object that will work against persistent volumes.
func
NewREST
(
optsGetter
generic
.
RESTOptionsGetter
)
*
REST
{
store
:=
&
genericregistry
.
Store
{
Copier
:
api
.
Scheme
,
NewFunc
:
func
()
runtime
.
Object
{
return
&
storageapi
.
StorageClass
{}
},
NewListFunc
:
func
()
runtime
.
Object
{
return
&
storageapi
.
StorageClassList
{}
},
ObjectNameFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
...
...
pkg/storage/BUILD
View file @
9fb37f3b
...
...
@@ -22,7 +22,6 @@ go_library(
],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/util:go_default_library",
"//vendor:github.com/golang/glog",
"//vendor:golang.org/x/net/context",
...
...
@@ -56,7 +55,6 @@ go_test(
library = ":go_default_library",
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/errors",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/fields",
...
...
@@ -66,6 +64,7 @@ go_test(
"//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/client-go/pkg/api",
"//vendor:k8s.io/client-go/tools/cache",
"//vendor:k8s.io/client-go/util/clock",
],
...
...
@@ -76,10 +75,6 @@ go_test(
srcs = ["cacher_test.go"],
tags = ["automanaged"],
deps = [
"//pkg/api:go_default_library",
"//pkg/api/testapi:go_default_library",
"//pkg/api/testing:go_default_library",
"//pkg/registry/core/pod:go_default_library",
"//pkg/storage:go_default_library",
"//pkg/storage/etcd:go_default_library",
"//pkg/storage/etcd/etcdtest:go_default_library",
...
...
@@ -95,6 +90,9 @@ go_test(
"//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/client-go/pkg/api",
"//vendor:k8s.io/client-go/pkg/api/install",
"//vendor:k8s.io/client-go/pkg/api/v1",
],
)
...
...
pkg/storage/cacher.go
View file @
9fb37f3b
...
...
@@ -35,7 +35,6 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/util"
"github.com/golang/glog"
...
...
@@ -53,6 +52,8 @@ type CacherConfig struct {
// An underlying storage.Versioner.
Versioner
Versioner
Copier
runtime
.
ObjectCopier
// The Cache will be caching objects of a given Type and assumes that they
// are all stored under ResourcePrefix directory in the underlying database.
Type
interface
{}
...
...
@@ -158,6 +159,8 @@ type Cacher struct {
// Underlying storage.Interface.
storage
Interface
copier
runtime
.
ObjectCopier
// Expected type of objects in the underlying cache.
objectType
reflect
.
Type
...
...
@@ -206,6 +209,7 @@ func NewCacherFromConfig(config CacherConfig) *Cacher {
cacher
:=
&
Cacher
{
ready
:
newReady
(),
storage
:
config
.
Storage
,
copier
:
config
.
Copier
,
objectType
:
reflect
.
TypeOf
(
config
.
Type
),
watchCache
:
watchCache
,
reflector
:
cache
.
NewReflector
(
listerWatcher
,
config
.
Type
,
watchCache
,
0
),
...
...
@@ -336,7 +340,7 @@ func (c *Cacher) Watch(ctx context.Context, key string, resourceVersion string,
c
.
Lock
()
defer
c
.
Unlock
()
forget
:=
forgetWatcher
(
c
,
c
.
watcherIdx
,
triggerValue
,
triggerSupported
)
watcher
:=
newCacheWatcher
(
watchRV
,
chanSize
,
initEvents
,
watchFilterFunction
(
key
,
pred
),
forget
)
watcher
:=
newCacheWatcher
(
c
.
copier
,
watchRV
,
chanSize
,
initEvents
,
watchFilterFunction
(
key
,
pred
),
forget
)
c
.
watchers
.
addWatcher
(
watcher
,
c
.
watcherIdx
,
triggerValue
,
triggerSupported
)
c
.
watcherIdx
++
...
...
@@ -520,7 +524,7 @@ func (c *Cacher) GuaranteedUpdate(
if
elem
,
exists
,
err
:=
c
.
watchCache
.
GetByKey
(
key
);
err
!=
nil
{
glog
.
Errorf
(
"GetByKey returned error: %v"
,
err
)
}
else
if
exists
{
currObj
,
copyErr
:=
api
.
Scheme
.
Copy
(
elem
.
(
*
storeElement
)
.
Object
)
currObj
,
copyErr
:=
c
.
copier
.
Copy
(
elem
.
(
*
storeElement
)
.
Object
)
if
copyErr
==
nil
{
return
c
.
storage
.
GuaranteedUpdate
(
ctx
,
key
,
ptrToType
,
ignoreNotFound
,
preconditions
,
tryUpdate
,
currObj
)
}
...
...
@@ -747,6 +751,7 @@ func (c *errWatcher) Stop() {
// cacherWatch implements watch.Interface
type
cacheWatcher
struct
{
sync
.
Mutex
copier
runtime
.
ObjectCopier
input
chan
watchCacheEvent
result
chan
watch
.
Event
done
chan
struct
{}
...
...
@@ -755,8 +760,9 @@ type cacheWatcher struct {
forget
func
(
bool
)
}
func
newCacheWatcher
(
resourceVersion
uint64
,
chanSize
int
,
initEvents
[]
*
watchCacheEvent
,
filter
watchFilterFunc
,
forget
func
(
bool
))
*
cacheWatcher
{
func
newCacheWatcher
(
copier
runtime
.
ObjectCopier
,
resourceVersion
uint64
,
chanSize
int
,
initEvents
[]
*
watchCacheEvent
,
filter
watchFilterFunc
,
forget
func
(
bool
))
*
cacheWatcher
{
watcher
:=
&
cacheWatcher
{
copier
:
copier
,
input
:
make
(
chan
watchCacheEvent
,
chanSize
),
result
:
make
(
chan
watch
.
Event
,
chanSize
),
done
:
make
(
chan
struct
{}),
...
...
@@ -844,7 +850,7 @@ func (c *cacheWatcher) sendWatchCacheEvent(event *watchCacheEvent) {
return
}
object
,
err
:=
api
.
Scheme
.
Copy
(
event
.
Object
)
object
,
err
:=
c
.
copier
.
Copy
(
event
.
Object
)
if
err
!=
nil
{
glog
.
Errorf
(
"unexpected copy error: %v"
,
err
)
return
...
...
pkg/storage/cacher_test.go
View file @
9fb37f3b
...
...
@@ -33,10 +33,8 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
apitesting
"k8s.io/kubernetes/pkg/api/testing"
corepod
"k8s.io/kubernetes/pkg/registry/core/pod"
"k8s.io/client-go/pkg/api"
"k8s.io/client-go/pkg/api/v1"
"k8s.io/kubernetes/pkg/storage"
etcdstorage
"k8s.io/kubernetes/pkg/storage/etcd"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
...
...
@@ -44,8 +42,52 @@ import (
"k8s.io/kubernetes/pkg/storage/etcd3"
"golang.org/x/net/context"
_
"k8s.io/client-go/pkg/api/install"
)
func
DeepEqualSafePodSpec
()
api
.
PodSpec
{
grace
:=
int64
(
30
)
return
api
.
PodSpec
{
RestartPolicy
:
api
.
RestartPolicyAlways
,
DNSPolicy
:
api
.
DNSClusterFirst
,
TerminationGracePeriodSeconds
:
&
grace
,
SecurityContext
:
&
api
.
PodSecurityContext
{},
SchedulerName
:
api
.
DefaultSchedulerName
,
}
}
// GetAttrs returns labels and fields of a given object for filtering purposes.
func
GetAttrs
(
obj
runtime
.
Object
)
(
labels
.
Set
,
fields
.
Set
,
error
)
{
pod
,
ok
:=
obj
.
(
*
api
.
Pod
)
if
!
ok
{
return
nil
,
nil
,
fmt
.
Errorf
(
"not a pod"
)
}
return
labels
.
Set
(
pod
.
ObjectMeta
.
Labels
),
PodToSelectableFields
(
pod
),
nil
}
// PodToSelectableFields returns a field set that represents the object
// TODO: fields are not labels, and the validation rules for them do not apply.
func
PodToSelectableFields
(
pod
*
api
.
Pod
)
fields
.
Set
{
// The purpose of allocation with a given number of elements is to reduce
// amount of allocations needed to create the fields.Set. If you add any
// field here or the number of object-meta related fields changes, this should
// be adjusted.
podSpecificFieldsSet
:=
make
(
fields
.
Set
,
5
)
podSpecificFieldsSet
[
"spec.nodeName"
]
=
pod
.
Spec
.
NodeName
podSpecificFieldsSet
[
"spec.restartPolicy"
]
=
string
(
pod
.
Spec
.
RestartPolicy
)
podSpecificFieldsSet
[
"status.phase"
]
=
string
(
pod
.
Status
.
Phase
)
return
AddObjectMetaFieldsSet
(
podSpecificFieldsSet
,
&
pod
.
ObjectMeta
,
true
)
}
func
AddObjectMetaFieldsSet
(
source
fields
.
Set
,
objectMeta
*
metav1
.
ObjectMeta
,
hasNamespaceField
bool
)
fields
.
Set
{
source
[
"metadata.name"
]
=
objectMeta
.
Name
if
hasNamespaceField
{
source
[
"metadata.namespace"
]
=
objectMeta
.
Namespace
}
return
source
}
func
newEtcdTestStorage
(
t
*
testing
.
T
,
codec
runtime
.
Codec
,
prefix
string
)
(
*
etcdtesting
.
EtcdTestServer
,
storage
.
Interface
)
{
server
,
_
:=
etcdtesting
.
NewUnsecuredEtcd3TestClientServer
(
t
)
storage
:=
etcd3
.
New
(
server
.
V3Client
,
codec
,
prefix
)
...
...
@@ -58,12 +100,13 @@ func newTestCacher(s storage.Interface, cap int) *storage.Cacher {
CacheCapacity
:
cap
,
Storage
:
s
,
Versioner
:
etcdstorage
.
APIObjectVersioner
{},
Copier
:
api
.
Scheme
,
Type
:
&
api
.
Pod
{},
ResourcePrefix
:
prefix
,
KeyFunc
:
func
(
obj
runtime
.
Object
)
(
string
,
error
)
{
return
storage
.
NamespaceKeyFunc
(
prefix
,
obj
)
},
GetAttrsFunc
:
corepod
.
GetAttrs
,
GetAttrsFunc
:
GetAttrs
,
NewListFunc
:
func
()
runtime
.
Object
{
return
&
api
.
PodList
{}
},
Codec
:
testapi
.
Default
.
Codec
(
),
Codec
:
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
}
return
storage
.
NewCacherFromConfig
(
config
)
}
...
...
@@ -71,7 +114,7 @@ func newTestCacher(s storage.Interface, cap int) *storage.Cacher {
func
makeTestPod
(
name
string
)
*
api
.
Pod
{
return
&
api
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Namespace
:
"ns"
,
Name
:
name
},
Spec
:
apitesting
.
DeepEqualSafePodSpec
(),
Spec
:
DeepEqualSafePodSpec
(),
}
}
...
...
@@ -97,7 +140,7 @@ func updatePod(t *testing.T, s storage.Interface, obj, old *api.Pod) *api.Pod {
}
func
TestGet
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
defer
server
.
Terminate
(
t
)
cacher
:=
newTestCacher
(
etcdStorage
,
10
)
defer
cacher
.
Stop
()
...
...
@@ -128,7 +171,7 @@ func TestGet(t *testing.T) {
}
func
TestList
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
defer
server
.
Terminate
(
t
)
cacher
:=
newTestCacher
(
etcdStorage
,
10
)
defer
cacher
.
Stop
()
...
...
@@ -209,7 +252,7 @@ func TestList(t *testing.T) {
}
func
TestInfiniteList
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
defer
server
.
Terminate
(
t
)
cacher
:=
newTestCacher
(
etcdStorage
,
10
)
defer
cacher
.
Stop
()
...
...
@@ -263,7 +306,7 @@ func (self *injectListError) List(ctx context.Context, key string, resourceVersi
}
func
TestWatch
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
// Inject one list error to make sure we test the relist case.
etcdStorage
=
&
injectListError
{
errors
:
1
,
Interface
:
etcdStorage
}
defer
server
.
Terminate
(
t
)
...
...
@@ -340,7 +383,7 @@ func TestWatch(t *testing.T) {
}
func
TestWatcherTimeout
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
defer
server
.
Terminate
(
t
)
cacher
:=
newTestCacher
(
etcdStorage
,
10
)
defer
cacher
.
Stop
()
...
...
@@ -382,7 +425,7 @@ func TestWatcherTimeout(t *testing.T) {
}
func
TestFiltering
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
defer
server
.
Terminate
(
t
)
cacher
:=
newTestCacher
(
etcdStorage
,
10
)
defer
cacher
.
Stop
()
...
...
@@ -444,7 +487,7 @@ func TestFiltering(t *testing.T) {
}
func
TestStartingResourceVersion
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
defer
server
.
Terminate
(
t
)
cacher
:=
newTestCacher
(
etcdStorage
,
10
)
defer
cacher
.
Stop
()
...
...
@@ -492,7 +535,7 @@ func TestStartingResourceVersion(t *testing.T) {
}
func
TestRandomWatchDeliver
(
t
*
testing
.
T
)
{
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
testapi
.
Default
.
Codec
(
),
etcdtest
.
PathPrefix
())
server
,
etcdStorage
:=
newEtcdTestStorage
(
t
,
api
.
Codecs
.
LegacyCodec
(
v1
.
SchemeGroupVersion
),
etcdtest
.
PathPrefix
())
defer
server
.
Terminate
(
t
)
cacher
:=
newTestCacher
(
etcdStorage
,
10
)
defer
cacher
.
Stop
()
...
...
pkg/storage/cacher_whitebox_test.go
View file @
9fb37f3b
...
...
@@ -24,7 +24,7 @@ import (
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/
kubernetes
/pkg/api"
"k8s.io/
client-go
/pkg/api"
)
// verifies the cacheWatcher.process goroutine is properly cleaned up even if
...
...
@@ -44,7 +44,7 @@ func TestCacheWatcherCleanupNotBlockedByResult(t *testing.T) {
}
// set the size of the buffer of w.result to 0, so that the writes to
// w.result is blocked.
w
:=
newCacheWatcher
(
0
,
0
,
initEvents
,
filter
,
forget
)
w
:=
newCacheWatcher
(
api
.
Scheme
,
0
,
0
,
initEvents
,
filter
,
forget
)
w
.
Stop
()
if
err
:=
wait
.
PollImmediate
(
1
*
time
.
Second
,
5
*
time
.
Second
,
func
()
(
bool
,
error
)
{
lock
.
RLock
()
...
...
pkg/storage/watch_cache_test.go
View file @
9fb37f3b
...
...
@@ -29,9 +29,9 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/pkg/api"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/clock"
"k8s.io/kubernetes/pkg/api"
)
func
makeTestPod
(
name
string
,
resourceVersion
uint64
)
*
api
.
Pod
{
...
...
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