make storage enablement, serialization, and location orthogonal

This commit is contained in:
deads2k 2016-03-16 10:17:04 -04:00
parent 3a6ba8a6c2
commit cdcda3cc3c
1 changed files with 11 additions and 15 deletions

View File

@ -24,7 +24,7 @@ import (
testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest" testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/rest" "k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/apimachinery" "k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/apimachinery/registered"
"k8s.io/kubernetes/pkg/genericapiserver" "k8s.io/kubernetes/pkg/genericapiserver"
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd" etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
@ -40,20 +40,14 @@ const (
SecurePort = 6444 SecurePort = 6444
) )
func newStorageDestinations(groupName string, groupMeta *apimachinery.GroupMeta) (*genericapiserver.StorageDestinations, error) { func newStorageFactory() genericapiserver.StorageFactory {
storageDestinations := genericapiserver.NewStorageDestinations() etcdConfig := etcdstorage.EtcdConfig{
var storageConfig etcdstorage.EtcdStorageConfig
storageConfig.Config = etcdstorage.EtcdConfig{
Prefix: genericapiserver.DefaultEtcdPathPrefix, Prefix: genericapiserver.DefaultEtcdPathPrefix,
ServerList: []string{"http://127.0.0.1:4001"}, ServerList: []string{"http://127.0.0.1:4001"},
} }
storageConfig.Codec = groupMeta.Codec storageFactory := genericapiserver.NewDefaultStorageFactory(etcdConfig, api.Codecs, genericapiserver.NewDefaultResourceEncodingConfig(), genericapiserver.NewResourceConfig())
storageInterface, err := storageConfig.NewStorage()
if err != nil { return storageFactory
return nil, err
}
storageDestinations.AddAPIGroup(groupName, storageInterface)
return &storageDestinations, nil
} }
func NewServerRunOptions() *genericapiserver.ServerRunOptions { func NewServerRunOptions() *genericapiserver.ServerRunOptions {
@ -86,12 +80,14 @@ func Run(serverOptions *genericapiserver.ServerRunOptions) error {
if err != nil { if err != nil {
return fmt.Errorf("%v", err) return fmt.Errorf("%v", err)
} }
storageDestinations, err := newStorageDestinations(groupName, groupMeta) storageFactory := newStorageFactory()
storage, err := storageFactory.New(unversioned.GroupResource{Group: groupName, Resource: "testtype"})
if err != nil { if err != nil {
return fmt.Errorf("Unable to init etcd: %v", err) return fmt.Errorf("Unable to get storage: %v", err)
} }
restStorageMap := map[string]rest.Storage{ restStorageMap := map[string]rest.Storage{
"testtypes": testgroupetcd.NewREST(storageDestinations.Get(groupName, "testtype"), s.StorageDecorator()), "testtypes": testgroupetcd.NewREST(storage, s.StorageDecorator()),
} }
apiGroupInfo := genericapiserver.APIGroupInfo{ apiGroupInfo := genericapiserver.APIGroupInfo{
GroupMeta: *groupMeta, GroupMeta: *groupMeta,