Merge pull request #17922 from smarterclayton/split_codec
Auto commit by PR queue bot
This commit is contained in:
@@ -61,7 +61,7 @@ func pkgPath(group, version string) string {
|
||||
group = "api"
|
||||
}
|
||||
gv := group
|
||||
if version != "" {
|
||||
if version != "__internal" {
|
||||
gv = path.Join(group, version)
|
||||
}
|
||||
switch {
|
||||
@@ -104,7 +104,7 @@ func main() {
|
||||
} else {
|
||||
pkgname = gv.Group
|
||||
}
|
||||
if len(gv.Version) != 0 {
|
||||
if len(gv.Version) != 0 && gv.Version != kruntime.APIVersionInternal {
|
||||
pkgname = gv.Version
|
||||
}
|
||||
|
||||
|
@@ -26,7 +26,7 @@ import (
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"reflect"
|
||||
"runtime"
|
||||
gruntime "runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
@@ -52,6 +52,7 @@ import (
|
||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/master"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util"
|
||||
utilnet "k8s.io/kubernetes/pkg/util/net"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
@@ -444,7 +445,7 @@ func runReplicationControllerTest(c *client.Client) {
|
||||
glog.Infof("Done reading config file, took %v", time.Since(t))
|
||||
t = time.Now()
|
||||
var controller api.ReplicationController
|
||||
if err := api.Scheme.DecodeInto(data, &controller); err != nil {
|
||||
if err := runtime.DecodeInto(testapi.Default.Codec(), data, &controller); err != nil {
|
||||
glog.Fatalf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
@@ -958,7 +959,7 @@ func addFlags(fs *pflag.FlagSet) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||
gruntime.GOMAXPROCS(gruntime.NumCPU())
|
||||
addFlags(pflag.CommandLine)
|
||||
|
||||
util.InitFlags()
|
||||
|
@@ -34,7 +34,6 @@ import (
|
||||
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
|
||||
"k8s.io/kubernetes/pkg/admission"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/meta"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
apiutil "k8s.io/kubernetes/pkg/api/util"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
@@ -48,6 +47,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/genericapiserver"
|
||||
kubeletclient "k8s.io/kubernetes/pkg/kubelet/client"
|
||||
"k8s.io/kubernetes/pkg/master"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/serviceaccount"
|
||||
"k8s.io/kubernetes/pkg/storage"
|
||||
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
|
||||
@@ -82,9 +82,9 @@ func verifyClusterIPFlags(s *options.APIServer) {
|
||||
}
|
||||
}
|
||||
|
||||
type newEtcdFunc func([]string, meta.VersionInterfacesFunc, string, string) (storage.Interface, error)
|
||||
type newEtcdFunc func([]string, runtime.NegotiatedSerializer, string, string) (storage.Interface, error)
|
||||
|
||||
func newEtcd(etcdServerList []string, interfacesFunc meta.VersionInterfacesFunc, storageGroupVersionString, pathPrefix string) (etcdStorage storage.Interface, err error) {
|
||||
func newEtcd(etcdServerList []string, ns runtime.NegotiatedSerializer, storageGroupVersionString, pathPrefix string) (etcdStorage storage.Interface, err error) {
|
||||
if storageGroupVersionString == "" {
|
||||
return etcdStorage, fmt.Errorf("storageVersion is required to create a etcd storage")
|
||||
}
|
||||
@@ -96,11 +96,11 @@ func newEtcd(etcdServerList []string, interfacesFunc meta.VersionInterfacesFunc,
|
||||
var storageConfig etcdstorage.EtcdConfig
|
||||
storageConfig.ServerList = etcdServerList
|
||||
storageConfig.Prefix = pathPrefix
|
||||
versionedInterface, err := interfacesFunc(storageVersion)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
s, ok := ns.SerializerForMediaType("application/json", nil)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unable to find serializer for JSON")
|
||||
}
|
||||
storageConfig.Codec = versionedInterface.Codec
|
||||
storageConfig.Codec = runtime.NewCodec(ns.EncoderForVersion(s, storageVersion), ns.DecoderToVersion(s, unversioned.GroupVersion{Group: storageVersion.Group, Version: runtime.APIVersionInternal}))
|
||||
return storageConfig.NewStorage()
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ func updateEtcdOverrides(overrides []string, storageVersions map[string]string,
|
||||
}
|
||||
|
||||
servers := strings.Split(tokens[1], ";")
|
||||
etcdOverrideStorage, err := newEtcdFn(servers, apigroup.InterfacesFor, storageVersions[apigroup.GroupVersion.Group], prefix)
|
||||
etcdOverrideStorage, err := newEtcdFn(servers, api.Codecs, storageVersions[apigroup.GroupVersion.Group], prefix)
|
||||
if err != nil {
|
||||
glog.Fatalf("Invalid storage version or misconfigured etcd for %s: %v", tokens[0], err)
|
||||
}
|
||||
@@ -260,7 +260,7 @@ func Run(s *options.APIServer) error {
|
||||
if _, found := storageVersions[legacyV1Group.GroupVersion.Group]; !found {
|
||||
glog.Fatalf("Couldn't find the storage version for group: %q in storageVersions: %v", legacyV1Group.GroupVersion.Group, storageVersions)
|
||||
}
|
||||
etcdStorage, err := newEtcd(s.EtcdServerList, legacyV1Group.InterfacesFor, storageVersions[legacyV1Group.GroupVersion.Group], s.EtcdPathPrefix)
|
||||
etcdStorage, err := newEtcd(s.EtcdServerList, api.Codecs, storageVersions[legacyV1Group.GroupVersion.Group], s.EtcdPathPrefix)
|
||||
if err != nil {
|
||||
glog.Fatalf("Invalid storage version or misconfigured etcd: %v", err)
|
||||
}
|
||||
@@ -274,7 +274,7 @@ func Run(s *options.APIServer) error {
|
||||
if _, found := storageVersions[expGroup.GroupVersion.Group]; !found {
|
||||
glog.Fatalf("Couldn't find the storage version for group: %q in storageVersions: %v", expGroup.GroupVersion.Group, storageVersions)
|
||||
}
|
||||
expEtcdStorage, err := newEtcd(s.EtcdServerList, expGroup.InterfacesFor, storageVersions[expGroup.GroupVersion.Group], s.EtcdPathPrefix)
|
||||
expEtcdStorage, err := newEtcd(s.EtcdServerList, api.Codecs, storageVersions[expGroup.GroupVersion.Group], s.EtcdPathPrefix)
|
||||
if err != nil {
|
||||
glog.Fatalf("Invalid extensions storage version or misconfigured etcd: %v", err)
|
||||
}
|
||||
@@ -381,6 +381,7 @@ func Run(s *options.APIServer) error {
|
||||
ProxyTLSClientConfig: proxyTLSClientConfig,
|
||||
ServiceNodePortRange: s.ServiceNodePortRange,
|
||||
KubernetesServiceNodePort: s.KubernetesServiceNodePort,
|
||||
Serializer: api.Codecs,
|
||||
},
|
||||
EnableCoreControllers: true,
|
||||
EventTTL: s.EventTTL,
|
||||
|
@@ -24,9 +24,9 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/cmd/kube-apiserver/app/options"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/meta"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/genericapiserver"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/storage"
|
||||
)
|
||||
|
||||
@@ -133,7 +133,7 @@ func TestUpdateEtcdOverrides(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, test := range testCases {
|
||||
newEtcd := func(serverList []string, _ meta.VersionInterfacesFunc, _, _ string) (storage.Interface, error) {
|
||||
newEtcd := func(serverList []string, _ runtime.NegotiatedSerializer, _, _ string) (storage.Interface, error) {
|
||||
if !reflect.DeepEqual(test.servers, serverList) {
|
||||
t.Errorf("unexpected server list, expected: %#v, got: %#v", test.servers, serverList)
|
||||
}
|
||||
|
@@ -48,13 +48,14 @@ func (g *genGroup) Namers(c *generator.Context) namer.NameSystems {
|
||||
}
|
||||
|
||||
func (g *genGroup) Imports(c *generator.Context) (imports []string) {
|
||||
return append(g.imports.ImportLines(), "fmt")
|
||||
return g.imports.ImportLines()
|
||||
}
|
||||
|
||||
func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||
const pkgUnversioned = "k8s.io/kubernetes/pkg/client/unversioned"
|
||||
const pkgRegistered = "k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
const pkgAPI = "k8s.io/kubernetes/pkg/api"
|
||||
apiPath := func(group string) string {
|
||||
if group == "legacy" {
|
||||
return `"/api"`
|
||||
@@ -81,6 +82,7 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
|
||||
"latestGroup": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "Group"}),
|
||||
"GroupOrDie": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "GroupOrDie"}),
|
||||
"apiPath": apiPath(g.group),
|
||||
"latestCodecs": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Codecs"}),
|
||||
}
|
||||
sw.Do(groupInterfaceTemplate, m)
|
||||
sw.Do(groupClientTemplate, m)
|
||||
@@ -181,12 +183,7 @@ func setConfigDefaults(config *$.Config|raw$) error {
|
||||
config.GroupVersion = ©GroupVersion
|
||||
//}
|
||||
|
||||
versionInterfaces, err := g.InterfacesFor(*config.GroupVersion)
|
||||
if err != nil {
|
||||
return fmt.Errorf("$.Group$ API version '%s' is not recognized (valid values: %s)",
|
||||
config.GroupVersion, g.GroupVersions)
|
||||
}
|
||||
config.Codec = versionInterfaces.Codec
|
||||
config.Codec = $.latestCodecs|raw$.LegacyCodec(*config.GroupVersion)
|
||||
if config.QPS == 0 {
|
||||
config.QPS = 5
|
||||
}
|
||||
|
@@ -68,7 +68,6 @@ func enableVersions(externalVersions []unversioned.GroupVersion) error {
|
||||
groupMeta := apimachinery.GroupMeta{
|
||||
GroupVersion: preferredExternalVersion,
|
||||
GroupVersions: externalVersions,
|
||||
Codec: runtime.CodecFor(api.Scheme, preferredExternalVersion),
|
||||
RESTMapper: newRESTMapper(externalVersions),
|
||||
SelfLinker: runtime.SelfLinker(accessor),
|
||||
InterfacesFor: interfacesFor,
|
||||
@@ -97,7 +96,6 @@ func interfacesFor(version unversioned.GroupVersion) (*meta.VersionInterfaces, e
|
||||
switch version {
|
||||
case v1.SchemeGroupVersion:
|
||||
return &meta.VersionInterfaces{
|
||||
Codec: v1.Codec,
|
||||
ObjectConvertor: api.Scheme,
|
||||
MetadataAccessor: accessor,
|
||||
}, nil
|
||||
|
@@ -22,7 +22,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup", Version: ""}
|
||||
var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup", Version: runtime.APIVersionInternal}
|
||||
|
||||
func AddToScheme(scheme *runtime.Scheme) {
|
||||
// Add the API to Scheme.
|
||||
|
@@ -17,7 +17,6 @@ limitations under the License.
|
||||
package v1
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
@@ -25,8 +24,6 @@ import (
|
||||
|
||||
var SchemeGroupVersion = unversioned.GroupVersion{Group: "testgroup", Version: "v1"}
|
||||
|
||||
var Codec = runtime.CodecFor(api.Scheme, SchemeGroupVersion)
|
||||
|
||||
func AddToScheme(scheme *runtime.Scheme) {
|
||||
// Add the API to Scheme.
|
||||
addKnownTypes(scheme)
|
||||
|
@@ -17,7 +17,7 @@ limitations under the License.
|
||||
package unversioned
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
registered "k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
unversioned "k8s.io/kubernetes/pkg/client/unversioned"
|
||||
)
|
||||
@@ -79,12 +79,7 @@ func setConfigDefaults(config *unversioned.Config) error {
|
||||
config.GroupVersion = ©GroupVersion
|
||||
//}
|
||||
|
||||
versionInterfaces, err := g.InterfacesFor(*config.GroupVersion)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Testgroup API version '%s' is not recognized (valid values: %s)",
|
||||
config.GroupVersion, g.GroupVersions)
|
||||
}
|
||||
config.Codec = versionInterfaces.Codec
|
||||
config.Codec = api.Codecs.LegacyCodec(*config.GroupVersion)
|
||||
if config.QPS == 0 {
|
||||
config.QPS = 5
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ func init() {
|
||||
return
|
||||
}
|
||||
testapi.Groups[testgroup.SchemeGroupVersion.Group] = testapi.NewTestGroup(
|
||||
unversioned.GroupVersion{Group: testgroup.SchemeGroupVersion.Group, Version: registered.GroupOrDie(testgroup.SchemeGroupVersion.Group).GroupVersion.Version},
|
||||
registered.GroupOrDie(testgroup.SchemeGroupVersion.Group).GroupVersion,
|
||||
testgroup.SchemeGroupVersion)
|
||||
testHelper = testapi.Groups[testgroup.SchemeGroupVersion.Group]
|
||||
}
|
||||
|
Reference in New Issue
Block a user