mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Move RESTStorageProvider interface into pkg/master
This commit is contained in:
		@@ -24,14 +24,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/fields"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/labels"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage/storagebackend"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work with testtype.
 | 
			
		||||
@@ -49,19 +49,19 @@ func NewREST(config *storagebackend.Config, storageDecorator generic.StorageDeco
 | 
			
		||||
	}
 | 
			
		||||
	storageInterface, _ := storageDecorator(
 | 
			
		||||
		config, 100, &testgroup.TestType{}, prefix, strategy, newListFunc, getAttrs, storage.NoTriggerPublisher)
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &testgroup.TestType{} },
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix.
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix.
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of the resource.
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ import (
 | 
			
		||||
	genericoptions "k8s.io/kubernetes/pkg/genericapiserver/options"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/routes"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime/schema"
 | 
			
		||||
	utilerrors "k8s.io/kubernetes/pkg/util/errors"
 | 
			
		||||
@@ -185,7 +185,7 @@ func Run(s *options.ServerRunOptions) error {
 | 
			
		||||
		deleteCollectionWorkers: s.GenericServerRunOptions.DeleteCollectionWorkers,
 | 
			
		||||
	}
 | 
			
		||||
	if s.GenericServerRunOptions.EnableWatchCache {
 | 
			
		||||
		restOptionsFactory.storageDecorator = registry.StorageWithCacher
 | 
			
		||||
		restOptionsFactory.storageDecorator = genericregistry.StorageWithCacher
 | 
			
		||||
	} else {
 | 
			
		||||
		restOptionsFactory.storageDecorator = generic.UndecoratedStorage
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,17 +22,17 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/rest"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
@@ -60,14 +60,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &federation.Cluster{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*federation.Cluster).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -43,14 +43,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/healthz"
 | 
			
		||||
	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/master/thirdparty"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/routes"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime/schema"
 | 
			
		||||
	utilnet "k8s.io/kubernetes/pkg/util/net"
 | 
			
		||||
	nodeutil "k8s.io/kubernetes/pkg/util/node"
 | 
			
		||||
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/routes"
 | 
			
		||||
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	"github.com/prometheus/client_golang/prometheus"
 | 
			
		||||
 | 
			
		||||
@@ -225,7 +225,7 @@ func (c completedConfig) New() (*Master, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if c.EnableWatchCache {
 | 
			
		||||
		restOptionsFactory.storageDecorator = registry.StorageWithCacher
 | 
			
		||||
		restOptionsFactory.storageDecorator = genericregistry.StorageWithCacher
 | 
			
		||||
	} else {
 | 
			
		||||
		restOptionsFactory.storageDecorator = generic.UndecoratedStorage
 | 
			
		||||
	}
 | 
			
		||||
@@ -244,7 +244,7 @@ func (c completedConfig) New() (*Master, error) {
 | 
			
		||||
		m.InstallLegacyAPI(c.Config, restOptionsFactory.NewFor, legacyRESTStorageProvider)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	restStorageProviders := []genericapiserver.RESTStorageProvider{
 | 
			
		||||
	restStorageProviders := []RESTStorageProvider{
 | 
			
		||||
		appsrest.RESTStorageProvider{},
 | 
			
		||||
		authenticationrest.RESTStorageProvider{Authenticator: c.GenericConfig.Authenticator},
 | 
			
		||||
		authorizationrest.RESTStorageProvider{Authorizer: c.GenericConfig.Authorizer},
 | 
			
		||||
@@ -265,7 +265,7 @@ func (c completedConfig) New() (*Master, error) {
 | 
			
		||||
	return m, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *Master) InstallLegacyAPI(c *Config, restOptionsGetter genericapiserver.RESTOptionsGetter, legacyRESTStorageProvider corerest.LegacyRESTStorageProvider) {
 | 
			
		||||
func (m *Master) InstallLegacyAPI(c *Config, restOptionsGetter registry.RESTOptionsGetter, legacyRESTStorageProvider corerest.LegacyRESTStorageProvider) {
 | 
			
		||||
	legacyRESTStorage, apiGroupInfo, err := legacyRESTStorageProvider.NewLegacyRESTStorage(restOptionsGetter)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		glog.Fatalf("Error building core storage: %v", err)
 | 
			
		||||
@@ -293,8 +293,14 @@ func (m *Master) installTunneler(tunneler genericapiserver.Tunneler, nodeClient
 | 
			
		||||
	}, func() float64 { return float64(tunneler.SecondsSinceSync()) })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RESTStorageProvider is a factory type for REST storage.
 | 
			
		||||
type RESTStorageProvider interface {
 | 
			
		||||
	GroupName() string
 | 
			
		||||
	NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// InstallAPIs will install the APIs for the restStorageProviders if they are enabled.
 | 
			
		||||
func (m *Master) InstallAPIs(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter, restStorageProviders ...genericapiserver.RESTStorageProvider) {
 | 
			
		||||
func (m *Master) InstallAPIs(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter, restStorageProviders ...RESTStorageProvider) {
 | 
			
		||||
	apiGroupsInfo := []genericapiserver.APIGroupInfo{}
 | 
			
		||||
 | 
			
		||||
	for _, restStorageBuilder := range restStorageProviders {
 | 
			
		||||
 
 | 
			
		||||
@@ -23,14 +23,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/apps/petset"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// rest implements a RESTStorage for replication controllers against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against replication controllers.
 | 
			
		||||
@@ -49,7 +49,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -57,12 +57,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a statefulSet that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a statefulSet that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a replication controller
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -91,7 +91,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of an statefulSet
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,14 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/apps"
 | 
			
		||||
	appsapiv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	statefulsetetcd "k8s.io/kubernetes/pkg/registry/apps/petset/etcd"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RESTStorageProvider struct{}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apps.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(appsapiv1beta1.SchemeGroupVersion) {
 | 
			
		||||
@@ -39,7 +38,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := appsapiv1beta1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ import (
 | 
			
		||||
	authenticationv1beta1 "k8s.io/kubernetes/pkg/apis/authentication/v1beta1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/auth/authenticator"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/authentication/tokenreview"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -29,9 +30,7 @@ type RESTStorageProvider struct {
 | 
			
		||||
	Authenticator authenticator.Request
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	// TODO figure out how to make the swagger generation stable, while allowing this endpoint to be disabled.
 | 
			
		||||
	// if p.Authenticator == nil {
 | 
			
		||||
	// 	return genericapiserver.APIGroupInfo{}, false
 | 
			
		||||
@@ -47,7 +46,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := authenticationv1beta1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ import (
 | 
			
		||||
	authorizationv1beta1 "k8s.io/kubernetes/pkg/apis/authorization/v1beta1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/auth/authorizer"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/authorization/localsubjectaccessreview"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/authorization/selfsubjectaccessreview"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/authorization/subjectaccessreview"
 | 
			
		||||
@@ -31,9 +32,7 @@ type RESTStorageProvider struct {
 | 
			
		||||
	Authorizer authorizer.Authorizer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	if p.Authorizer == nil {
 | 
			
		||||
		return genericapiserver.APIGroupInfo{}, false
 | 
			
		||||
	}
 | 
			
		||||
@@ -48,7 +47,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := authorizationv1beta1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,13 +23,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
 | 
			
		||||
@@ -48,19 +48,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} },
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of an autoscaler
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -89,7 +89,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a daemonset
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,14 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/autoscaling"
 | 
			
		||||
	autoscalingapiv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	horizontalpodautoscaleretcd "k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/etcd"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RESTStorageProvider struct{}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(autoscaling.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(autoscalingapiv1.SchemeGroupVersion) {
 | 
			
		||||
@@ -39,7 +38,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := autoscalingapiv1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,14 +23,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/batch/cronjob"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for scheduled jobs against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against CronJobs.
 | 
			
		||||
@@ -49,7 +49,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &batch.CronJob{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -57,12 +57,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a scheduled job
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -93,7 +93,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a resourcequota.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -23,14 +23,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/batch/job"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for jobs against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against Jobs.
 | 
			
		||||
@@ -49,7 +49,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &batch.Job{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -57,12 +57,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a job
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -93,7 +93,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a resourcequota.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ import (
 | 
			
		||||
	batchapiv1 "k8s.io/kubernetes/pkg/apis/batch/v1"
 | 
			
		||||
	batchapiv2alpha1 "k8s.io/kubernetes/pkg/apis/batch/v2alpha1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	cronjobetcd "k8s.io/kubernetes/pkg/registry/batch/cronjob/etcd"
 | 
			
		||||
	jobetcd "k8s.io/kubernetes/pkg/registry/batch/job/etcd"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime/schema"
 | 
			
		||||
@@ -29,9 +30,7 @@ import (
 | 
			
		||||
 | 
			
		||||
type RESTStorageProvider struct{}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(batch.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(batchapiv2alpha1.SchemeGroupVersion) {
 | 
			
		||||
@@ -50,7 +49,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := batchapiv1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
@@ -62,7 +61,7 @@ func (p RESTStorageProvider) v1Storage(apiResourceConfigSource genericapiserver.
 | 
			
		||||
	return storage
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v2alpha1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v2alpha1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := batchapiv2alpha1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -25,14 +25,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	csrregistry "k8s.io/kubernetes/pkg/registry/certificates/certificates"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for CertificateSigningRequest against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a registry which will store CertificateSigningRequest in the given helper
 | 
			
		||||
@@ -51,14 +51,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *ApprovalREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &certificates.CertificateSigningRequest{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*certificates.CertificateSigningRequest).Name, nil
 | 
			
		||||
@@ -92,7 +92,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *ApprovalREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a CSR.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
@@ -106,7 +106,7 @@ func (r *StatusREST) Update(ctx api.Context, name string, objInfo rest.UpdatedOb
 | 
			
		||||
 | 
			
		||||
// ApprovalREST implements the REST endpoint for changing the approval state of a CSR.
 | 
			
		||||
type ApprovalREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *ApprovalREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,14 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/certificates"
 | 
			
		||||
	certificatesapiv1alpha1 "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	certificateetcd "k8s.io/kubernetes/pkg/registry/certificates/certificates/etcd"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RESTStorageProvider struct{}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(certificates.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(certificatesapiv1alpha1.SchemeGroupVersion) {
 | 
			
		||||
@@ -39,7 +38,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1alpha1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1alpha1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := certificatesapiv1alpha1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -21,14 +21,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/configmap"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for ConfigMap against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work with ConfigMap objects.
 | 
			
		||||
@@ -46,7 +46,7 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		configmap.GetAttrs,
 | 
			
		||||
		storage.NoTriggerPublisher)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object {
 | 
			
		||||
			return &api.ConfigMap{}
 | 
			
		||||
		},
 | 
			
		||||
@@ -57,13 +57,13 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix.
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		// Retrieves the name field of a ConfigMap object.
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/controller"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
@@ -54,7 +54,7 @@ func NewStorage(opts generic.RESTOptions) ControllerStorage {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against replication controllers.
 | 
			
		||||
@@ -73,7 +73,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &api.ReplicationController{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -81,12 +81,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a replication controller
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -117,7 +117,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a replication controller
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/endpoint"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against endpoints.
 | 
			
		||||
@@ -46,14 +46,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.Endpoints{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.Endpoints).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -20,12 +20,12 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/event"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against events.
 | 
			
		||||
@@ -36,14 +36,14 @@ func NewREST(opts generic.RESTOptions, ttl uint64) *REST {
 | 
			
		||||
	// for events will lead to too high memory consumption.
 | 
			
		||||
	storageInterface, dFunc := generic.NewRawStorage(opts.StorageConfig)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.Event{} },
 | 
			
		||||
		NewListFunc: func() runtime.Object { return &api.EventList{} },
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.Event).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/limitrange"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
 | 
			
		||||
@@ -46,14 +46,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.LimitRange{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.LimitRange).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -27,25 +27,25 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/namespace"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// rest implements a RESTStorage for namespaces against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	status *registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
	status *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a namespace.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FinalizeREST implements the REST endpoint for finalizing a namespace.
 | 
			
		||||
type FinalizeREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against namespaces.
 | 
			
		||||
@@ -64,14 +64,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *FinalizeREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.Namespace{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.Namespace).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/node"
 | 
			
		||||
	noderest "k8s.io/kubernetes/pkg/registry/core/node/rest"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -43,14 +43,14 @@ type NodeStorage struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
	connection     client.ConnectionInfoGetter
 | 
			
		||||
	proxyTransport http.RoundTripper
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a pod.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
@@ -82,14 +82,14 @@ func NewStorage(opts generic.RESTOptions, kubeletClientConfig client.KubeletClie
 | 
			
		||||
		node.GetAttrs,
 | 
			
		||||
		node.NodeNameTriggerFunc)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.Node{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.Node).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -27,14 +27,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/capabilities"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/kubelet/client"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/node"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericrest "k8s.io/kubernetes/pkg/registry/generic/rest"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ProxyREST implements the proxy subresource for a Node
 | 
			
		||||
type ProxyREST struct {
 | 
			
		||||
	Store          *registry.Store
 | 
			
		||||
	Store          *genericregistry.Store
 | 
			
		||||
	Connection     client.ConnectionInfoGetter
 | 
			
		||||
	ProxyTransport http.RoundTripper
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,13 +22,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/persistentvolume"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against persistent volumes.
 | 
			
		||||
@@ -47,14 +47,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.PersistentVolume{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.PersistentVolume).Name, nil
 | 
			
		||||
@@ -81,7 +81,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a persistentvolume.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,13 +22,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against persistent volume claims.
 | 
			
		||||
@@ -47,14 +47,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.PersistentVolumeClaim{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.PersistentVolumeClaim).Name, nil
 | 
			
		||||
@@ -81,7 +81,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a persistentvolumeclaim.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/pod"
 | 
			
		||||
	podrest "k8s.io/kubernetes/pkg/registry/core/pod/rest"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
@@ -53,7 +53,7 @@ type PodStorage struct {
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for pods against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
	proxyTransport http.RoundTripper
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -73,14 +73,14 @@ func NewStorage(opts generic.RESTOptions, k client.ConnectionInfoGetter, proxyTr
 | 
			
		||||
		pod.NodeNameTriggerFunc,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.Pod{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.Pod).Name, nil
 | 
			
		||||
@@ -125,7 +125,7 @@ func (r *REST) ResourceLocation(ctx api.Context, name string) (*url.URL, http.Ro
 | 
			
		||||
 | 
			
		||||
// BindingREST implements the REST endpoint for binding pods to nodes when etcd is in use.
 | 
			
		||||
type BindingREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// New creates a new binding resource
 | 
			
		||||
@@ -199,7 +199,7 @@ func (r *BindingREST) assignPod(ctx api.Context, podID string, machine string, a
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a pod.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// New creates a new pod resource
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ import (
 | 
			
		||||
	policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/client/retry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/labels"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/util/wait"
 | 
			
		||||
)
 | 
			
		||||
@@ -52,13 +52,13 @@ var EvictionsRetry = wait.Backoff{
 | 
			
		||||
	Jitter:   0.1,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func newEvictionStorage(store *registry.Store, podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter) *EvictionREST {
 | 
			
		||||
func newEvictionStorage(store *genericregistry.Store, podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter) *EvictionREST {
 | 
			
		||||
	return &EvictionREST{store: store, podDisruptionBudgetClient: podDisruptionBudgetClient}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EvictionREST implements the REST endpoint for evicting pods from nodes when etcd is in use.
 | 
			
		||||
type EvictionREST struct {
 | 
			
		||||
	store                     *registry.Store
 | 
			
		||||
	store                     *genericregistry.Store
 | 
			
		||||
	podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/validation"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/kubelet/client"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/pod"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericrest "k8s.io/kubernetes/pkg/registry/generic/rest"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
@@ -33,7 +33,7 @@ import (
 | 
			
		||||
// LogREST implements the log endpoint for a Pod
 | 
			
		||||
type LogREST struct {
 | 
			
		||||
	KubeletConn client.ConnectionInfoGetter
 | 
			
		||||
	Store       *registry.Store
 | 
			
		||||
	Store       *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// LogREST implements GetterWithOptions
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/errors"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/registrytest"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -31,7 +31,7 @@ func TestPodLogValidates(t *testing.T) {
 | 
			
		||||
	defer server.Terminate(t)
 | 
			
		||||
	s, destroyFunc := generic.NewRawStorage(config)
 | 
			
		||||
	defer destroyFunc()
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		Storage: s,
 | 
			
		||||
	}
 | 
			
		||||
	logRest := &LogREST{Store: store, KubeletConn: nil}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,14 +27,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/capabilities"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/kubelet/client"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/pod"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericrest "k8s.io/kubernetes/pkg/registry/generic/rest"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ProxyREST implements the proxy subresource for a Pod
 | 
			
		||||
type ProxyREST struct {
 | 
			
		||||
	Store          *registry.Store
 | 
			
		||||
	Store          *genericregistry.Store
 | 
			
		||||
	ProxyTransport http.RoundTripper
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -78,7 +78,7 @@ var upgradeableMethods = []string{"GET", "POST"}
 | 
			
		||||
 | 
			
		||||
// AttachREST implements the attach subresource for a Pod
 | 
			
		||||
type AttachREST struct {
 | 
			
		||||
	Store       *registry.Store
 | 
			
		||||
	Store       *genericregistry.Store
 | 
			
		||||
	KubeletConn client.ConnectionInfoGetter
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -115,7 +115,7 @@ func (r *AttachREST) ConnectMethods() []string {
 | 
			
		||||
 | 
			
		||||
// ExecREST implements the exec subresource for a Pod
 | 
			
		||||
type ExecREST struct {
 | 
			
		||||
	Store       *registry.Store
 | 
			
		||||
	Store       *genericregistry.Store
 | 
			
		||||
	KubeletConn client.ConnectionInfoGetter
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -152,7 +152,7 @@ func (r *ExecREST) ConnectMethods() []string {
 | 
			
		||||
 | 
			
		||||
// PortForwardREST implements the portforward subresource for a Pod
 | 
			
		||||
type PortForwardREST struct {
 | 
			
		||||
	Store       *registry.Store
 | 
			
		||||
	Store       *genericregistry.Store
 | 
			
		||||
	KubeletConn client.ConnectionInfoGetter
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/podtemplate"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against pod templates.
 | 
			
		||||
@@ -46,14 +46,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.PodTemplate{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.PodTemplate).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -22,13 +22,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/resourcequota"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against resource quotas.
 | 
			
		||||
@@ -47,14 +47,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.ResourceQuota{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.ResourceQuota).Name, nil
 | 
			
		||||
@@ -81,7 +81,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a resourcequota.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/master/ports"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/componentstatus"
 | 
			
		||||
	configmapetcd "k8s.io/kubernetes/pkg/registry/core/configmap/etcd"
 | 
			
		||||
	controlleretcd "k8s.io/kubernetes/pkg/registry/core/controller/etcd"
 | 
			
		||||
@@ -59,7 +60,6 @@ import (
 | 
			
		||||
	ipallocator "k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/service/portallocator"
 | 
			
		||||
	serviceaccountetcd "k8s.io/kubernetes/pkg/registry/core/serviceaccount/etcd"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime/schema"
 | 
			
		||||
	etcdutil "k8s.io/kubernetes/pkg/storage/etcd/util"
 | 
			
		||||
	utilnet "k8s.io/kubernetes/pkg/util/net"
 | 
			
		||||
@@ -89,7 +89,7 @@ type LegacyRESTStorage struct {
 | 
			
		||||
	ServiceNodePortAllocator  rangeallocation.RangeRegistry
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c LegacyRESTStorageProvider) NewLegacyRESTStorage(restOptionsGetter genericapiserver.RESTOptionsGetter) (LegacyRESTStorage, genericapiserver.APIGroupInfo, error) {
 | 
			
		||||
func (c LegacyRESTStorageProvider) NewLegacyRESTStorage(restOptionsGetter registry.RESTOptionsGetter) (LegacyRESTStorage, genericapiserver.APIGroupInfo, error) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.APIGroupInfo{
 | 
			
		||||
		GroupMeta:                    *registered.GroupOrDie(api.GroupName),
 | 
			
		||||
		VersionedResourcesStorageMap: map[string]map[string]rest.Storage{},
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/secret"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against secrets.
 | 
			
		||||
@@ -46,14 +46,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.Secret{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.Secret).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -22,13 +22,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/service"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against services.
 | 
			
		||||
@@ -47,14 +47,14 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.Service{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.Service).Name, nil
 | 
			
		||||
@@ -79,7 +79,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a service.
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/core/serviceaccount"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against service accounts.
 | 
			
		||||
@@ -46,14 +46,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &api.ServiceAccount{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*api.ServiceAccount).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -23,14 +23,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/extensions/daemonset"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// rest implements a RESTStorage for DaemonSets against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against DaemonSets.
 | 
			
		||||
@@ -49,7 +49,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -57,12 +57,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a daemon set
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -92,7 +92,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a daemonset
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/extensions/deployment"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
@@ -56,7 +56,7 @@ func NewStorage(opts generic.RESTOptions) DeploymentStorage {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against deployments.
 | 
			
		||||
@@ -75,19 +75,19 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &extensions.Deployment{} },
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix.
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix.
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a deployment.
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -116,7 +116,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST, *RollbackREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a deployment
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
@@ -135,7 +135,7 @@ func (r *StatusREST) Update(ctx api.Context, name string, objInfo rest.UpdatedOb
 | 
			
		||||
 | 
			
		||||
// RollbackREST implements the REST endpoint for initiating the rollback of a deployment
 | 
			
		||||
type RollbackREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// New creates a rollback
 | 
			
		||||
 
 | 
			
		||||
@@ -23,14 +23,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	ingress "k8s.io/kubernetes/pkg/registry/extensions/ingress"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// rest implements a RESTStorage for replication controllers against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against replication controllers.
 | 
			
		||||
@@ -49,7 +49,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &extensions.Ingress{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -57,12 +57,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a ingress that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a ingress that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a replication controller
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -91,7 +91,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of an ingress
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,14 +22,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/extensions/networkpolicy"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// rest implements a RESTStorage for network policies against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against network policies.
 | 
			
		||||
@@ -48,7 +48,7 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -56,12 +56,12 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		// Produces a NetworkPolicy that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a NetworkPolicy that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a network policy
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
 
 | 
			
		||||
@@ -22,14 +22,14 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/extensions/podsecuritypolicy"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for PodSecurityPolicies against etcd.
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against PodSecurityPolicy objects.
 | 
			
		||||
@@ -48,14 +48,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &extensions.PodSecurityPolicy{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*extensions.PodSecurityPolicy).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/extensions/replicaset"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
@@ -53,7 +53,7 @@ func NewStorage(opts generic.RESTOptions) ReplicaSetStorage {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against ReplicaSet.
 | 
			
		||||
@@ -72,7 +72,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -80,12 +80,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a path that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a path that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a ReplicaSet
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -115,7 +115,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of a ReplicaSet
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -28,6 +28,7 @@ import (
 | 
			
		||||
	extensionsapiv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
 | 
			
		||||
	extensionsclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	horizontalpodautoscaleretcd "k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler/etcd"
 | 
			
		||||
	jobetcd "k8s.io/kubernetes/pkg/registry/batch/job/etcd"
 | 
			
		||||
	expcontrolleretcd "k8s.io/kubernetes/pkg/registry/extensions/controller/etcd"
 | 
			
		||||
@@ -46,9 +47,7 @@ type RESTStorageProvider struct {
 | 
			
		||||
	ResourceInterface ResourceInterface
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(extensions.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(extensionsapiv1beta1.SchemeGroupVersion) {
 | 
			
		||||
@@ -59,7 +58,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := extensionsapiv1beta1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/extensions"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresource"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for ThirdPartyResources against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a registry which will store ThirdPartyResource in the given helper
 | 
			
		||||
@@ -37,14 +37,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
	// We explicitly do NOT do any decoration here yet.
 | 
			
		||||
	storageInterface, dFunc := generic.NewRawStorage(opts.StorageConfig)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &extensions.ThirdPartyResource{} },
 | 
			
		||||
		NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*extensions.ThirdPartyResource).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -23,13 +23,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/extensions"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/extensions/thirdpartyresourcedata"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for ThirdPartyResourceDatas against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
	kind string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -40,14 +40,14 @@ func NewREST(opts generic.RESTOptions, group, kind string) *REST {
 | 
			
		||||
	// We explicitly do NOT do any decoration here yet.
 | 
			
		||||
	storageInterface, dFunc := generic.NewRawStorage(opts.StorageConfig)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
 | 
			
		||||
		NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*extensions.ThirdPartyResourceData).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,9 @@ limitations under the License.
 | 
			
		||||
 | 
			
		||||
package generic
 | 
			
		||||
 | 
			
		||||
import "k8s.io/kubernetes/pkg/storage/storagebackend"
 | 
			
		||||
import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage/storagebackend"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RESTOptions is set of configuration options to generic registries.
 | 
			
		||||
type RESTOptions struct {
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ import (
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Store implements generic.Registry.
 | 
			
		||||
// Store implements pkg/api/rest.StandardStorage.
 | 
			
		||||
// It's intended to be embeddable, so that you can implement any
 | 
			
		||||
// non-generic functions if needed.
 | 
			
		||||
// You must supply a value for every field below before use; these are
 | 
			
		||||
@@ -126,6 +126,8 @@ type Store struct {
 | 
			
		||||
	Storage storage.Interface
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ rest.StandardStorage = &Store{}
 | 
			
		||||
 | 
			
		||||
const OptimisticLockErrorMsg = "the object has been modified; please apply your changes to the latest version and try again"
 | 
			
		||||
 | 
			
		||||
// NamespaceKeyRootFunc is the default function for constructing storage paths to resource directories enforcing namespace rules.
 | 
			
		||||
 
 | 
			
		||||
@@ -14,16 +14,12 @@ See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
package genericapiserver
 | 
			
		||||
package registry
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime/schema"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RESTOptionsGetter is a function type for returning RESTOptions for a GroupVersion.
 | 
			
		||||
type RESTOptionsGetter func(resource schema.GroupResource) generic.RESTOptions
 | 
			
		||||
 | 
			
		||||
type RESTStorageProvider interface {
 | 
			
		||||
	GroupName() string
 | 
			
		||||
	NewRESTStorage(apiResourceConfigSource APIResourceConfigSource, restOptionsGetter RESTOptionsGetter) (APIGroupInfo, bool)
 | 
			
		||||
}
 | 
			
		||||
@@ -22,7 +22,7 @@ import (
 | 
			
		||||
	policyapi "k8s.io/kubernetes/pkg/apis/policy"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
@@ -30,7 +30,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// rest implements a RESTStorage for pod disruption budgets against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against pod disruption budgets.
 | 
			
		||||
@@ -49,7 +49,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} },
 | 
			
		||||
 | 
			
		||||
		// NewListFunc returns an object capable of storing results of an etcd list.
 | 
			
		||||
@@ -57,12 +57,12 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
		// Produces a podDisruptionBudget that etcd understands, to the root of the resource
 | 
			
		||||
		// by combining the namespace in the context with the given prefix
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		// Produces a podDisruptionBudget that etcd understands, to the resource by combining
 | 
			
		||||
		// the namespace in the context with the given prefix
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		// Retrieve the name field of a pod disruption budget
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
@@ -91,7 +91,7 @@ func NewREST(opts generic.RESTOptions) (*REST, *StatusREST) {
 | 
			
		||||
 | 
			
		||||
// StatusREST implements the REST endpoint for changing the status of an podDisruptionBudget
 | 
			
		||||
type StatusREST struct {
 | 
			
		||||
	store *registry.Store
 | 
			
		||||
	store *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (r *StatusREST) New() runtime.Object {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,14 +21,13 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/policy"
 | 
			
		||||
	policyapiv1beta1 "k8s.io/kubernetes/pkg/apis/policy/v1beta1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	poddisruptionbudgetetcd "k8s.io/kubernetes/pkg/registry/policy/poddisruptionbudget/etcd"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RESTStorageProvider struct{}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(policy.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(policyapiv1beta1.SchemeGroupVersion) {
 | 
			
		||||
@@ -38,7 +37,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := policyapiv1beta1.SchemeGroupVersion
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
	if apiResourceConfigSource.ResourceEnabled(version.WithResource("poddisruptionbudgets")) {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/rbac"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for ClusterRole against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against ClusterRole objects.
 | 
			
		||||
@@ -48,14 +48,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &rbac.ClusterRole{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*rbac.ClusterRole).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/rbac"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/rbac/clusterrolebinding"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for ClusterRoleBinding against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against ClusterRoleBinding objects.
 | 
			
		||||
@@ -48,14 +48,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &rbac.ClusterRoleBinding{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*rbac.ClusterRoleBinding).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ import (
 | 
			
		||||
	rbacvalidation "k8s.io/kubernetes/pkg/apis/rbac/validation"
 | 
			
		||||
	rbacclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/rbac/clusterrole"
 | 
			
		||||
	clusterroleetcd "k8s.io/kubernetes/pkg/registry/rbac/clusterrole/etcd"
 | 
			
		||||
	clusterrolepolicybased "k8s.io/kubernetes/pkg/registry/rbac/clusterrole/policybased"
 | 
			
		||||
@@ -49,10 +50,9 @@ type RESTStorageProvider struct {
 | 
			
		||||
	AuthorizerRBACSuperUser string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = RESTStorageProvider{}
 | 
			
		||||
var _ genericapiserver.PostStartHookProvider = RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(rbac.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(rbacapiv1alpha1.SchemeGroupVersion) {
 | 
			
		||||
@@ -63,7 +63,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1alpha1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1alpha1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := rbacapiv1alpha1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	once := new(sync.Once)
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/rbac"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/rbac/role"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for Role against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against Role objects.
 | 
			
		||||
@@ -48,14 +48,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &rbac.Role{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*rbac.Role).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apis/rbac"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/rbac/rolebinding"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
@@ -29,7 +29,7 @@ import (
 | 
			
		||||
 | 
			
		||||
// REST implements a RESTStorage for RoleBinding against etcd
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against RoleBinding objects.
 | 
			
		||||
@@ -48,14 +48,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &rbac.RoleBinding{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return registry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
			return genericregistry.NamespaceKeyRootFunc(ctx, prefix)
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, id string) (string, error) {
 | 
			
		||||
			return registry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
			return genericregistry.NamespaceKeyFunc(ctx, prefix, id)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*rbac.RoleBinding).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/apimachinery/registered"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/fields"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/labels"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
 | 
			
		||||
	etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing"
 | 
			
		||||
@@ -44,11 +44,11 @@ func NewEtcdStorage(t *testing.T, group string) (*storagebackend.Config, *etcdte
 | 
			
		||||
 | 
			
		||||
type Tester struct {
 | 
			
		||||
	tester  *resttest.Tester
 | 
			
		||||
	storage *registry.Store
 | 
			
		||||
	storage *genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
type UpdateFunc func(runtime.Object) runtime.Object
 | 
			
		||||
 | 
			
		||||
func New(t *testing.T, storage *registry.Store) *Tester {
 | 
			
		||||
func New(t *testing.T, storage *genericregistry.Store) *Tester {
 | 
			
		||||
	return &Tester{
 | 
			
		||||
		tester:  resttest.New(t, storage),
 | 
			
		||||
		storage: storage,
 | 
			
		||||
 
 | 
			
		||||
@@ -21,15 +21,14 @@ import (
 | 
			
		||||
	storageapi "k8s.io/kubernetes/pkg/apis/storage"
 | 
			
		||||
	storageapiv1beta1 "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry"
 | 
			
		||||
	storageclassetcd "k8s.io/kubernetes/pkg/registry/storage/storageclass/etcd"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type RESTStorageProvider struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _ genericapiserver.RESTStorageProvider = &RESTStorageProvider{}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
 | 
			
		||||
	apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(storageapi.GroupName)
 | 
			
		||||
 | 
			
		||||
	if apiResourceConfigSource.AnyResourcesForVersionEnabled(storageapiv1beta1.SchemeGroupVersion) {
 | 
			
		||||
@@ -40,7 +39,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
 | 
			
		||||
	return apiGroupInfo, true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter genericapiserver.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter registry.RESTOptionsGetter) map[string]rest.Storage {
 | 
			
		||||
	version := storageapiv1beta1.SchemeGroupVersion
 | 
			
		||||
 | 
			
		||||
	storage := map[string]rest.Storage{}
 | 
			
		||||
 
 | 
			
		||||
@@ -21,14 +21,14 @@ import (
 | 
			
		||||
	storageapi "k8s.io/kubernetes/pkg/apis/storage"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/cachesize"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/storage/storageclass"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/storage"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type REST struct {
 | 
			
		||||
	*registry.Store
 | 
			
		||||
	*genericregistry.Store
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewREST returns a RESTStorage object that will work against persistent volumes.
 | 
			
		||||
@@ -47,14 +47,14 @@ func NewREST(opts generic.RESTOptions) *REST {
 | 
			
		||||
		storage.NoTriggerPublisher,
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	store := ®istry.Store{
 | 
			
		||||
	store := &genericregistry.Store{
 | 
			
		||||
		NewFunc:     func() runtime.Object { return &storageapi.StorageClass{} },
 | 
			
		||||
		NewListFunc: newListFunc,
 | 
			
		||||
		KeyRootFunc: func(ctx api.Context) string {
 | 
			
		||||
			return prefix
 | 
			
		||||
		},
 | 
			
		||||
		KeyFunc: func(ctx api.Context, name string) (string, error) {
 | 
			
		||||
			return registry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
			return genericregistry.NoNamespaceKeyFunc(ctx, prefix, name)
 | 
			
		||||
		},
 | 
			
		||||
		ObjectNameFunc: func(obj runtime.Object) (string, error) {
 | 
			
		||||
			return obj.(*storageapi.StorageClass).Name, nil
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/controller"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/kubectl/cmd/util"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/labels"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	genericregistry "k8s.io/kubernetes/pkg/registry/generic/registry"
 | 
			
		||||
	uexec "k8s.io/kubernetes/pkg/util/exec"
 | 
			
		||||
	utilnet "k8s.io/kubernetes/pkg/util/net"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/util/uuid"
 | 
			
		||||
@@ -159,7 +159,7 @@ func runKubectlRetryOrDie(args ...string) string {
 | 
			
		||||
	var output string
 | 
			
		||||
	for i := 0; i < 5; i++ {
 | 
			
		||||
		output, err = framework.RunKubectl(args...)
 | 
			
		||||
		if err == nil || (!strings.Contains(err.Error(), registry.OptimisticLockErrorMsg) && !strings.Contains(err.Error(), "Operation cannot be fulfilled")) {
 | 
			
		||||
		if err == nil || (!strings.Contains(err.Error(), genericregistry.OptimisticLockErrorMsg) && !strings.Contains(err.Error(), "Operation cannot be fulfilled")) {
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
		time.Sleep(time.Second)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user