From 83752406d87d80d2f174fe965d5c05189f81b124 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Wed, 21 Dec 2016 14:49:12 -0800 Subject: [PATCH] revert backward compatibility hacks (36004, 32751) that are no-longer needed in 1.6 --- pkg/apiserver/handlers/BUILD | 2 -- pkg/apiserver/handlers/discovery.go | 43 +------------------------- pkg/registry/generic/registry/BUILD | 1 - pkg/registry/generic/registry/store.go | 29 ----------------- 4 files changed, 1 insertion(+), 74 deletions(-) diff --git a/pkg/apiserver/handlers/BUILD b/pkg/apiserver/handlers/BUILD index 8d7f1473ba5..ddfa471a0ba 100644 --- a/pkg/apiserver/handlers/BUILD +++ b/pkg/apiserver/handlers/BUILD @@ -61,9 +61,7 @@ go_library( "//pkg/util/net:go_default_library", "//pkg/util/proxy:go_default_library", "//pkg/util/runtime:go_default_library", - "//pkg/util/sets:go_default_library", "//pkg/util/strategicpatch:go_default_library", - "//pkg/util/version:go_default_library", "//pkg/util/wsstream:go_default_library", "//pkg/watch:go_default_library", "//pkg/watch/versioned:go_default_library", diff --git a/pkg/apiserver/handlers/discovery.go b/pkg/apiserver/handlers/discovery.go index 8f792d60e9c..ab8f2c3388a 100644 --- a/pkg/apiserver/handlers/discovery.go +++ b/pkg/apiserver/handlers/discovery.go @@ -18,14 +18,11 @@ package handlers import ( "net/http" - "strings" metav1 "k8s.io/kubernetes/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/apiserver/handlers/responsewriters" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/runtime/schema" - "k8s.io/kubernetes/pkg/util/sets" - utilversion "k8s.io/kubernetes/pkg/util/version" "github.com/emicklei/go-restful" ) @@ -37,7 +34,7 @@ type APIResourceLister interface { // RootAPIHandler returns a handler which will list the provided groups and versions as available. func RootAPIHandler(s runtime.NegotiatedSerializer, f func(req *restful.Request) []metav1.APIGroup) restful.RouteFunction { return func(req *restful.Request, resp *restful.Response) { - responsewriters.WriteObjectNegotiated(s, schema.GroupVersion{}, resp.ResponseWriter, req.Request, http.StatusOK, &metav1.APIGroupList{Groups: filterAPIGroups(req, f(req))}) + responsewriters.WriteObjectNegotiated(s, schema.GroupVersion{}, resp.ResponseWriter, req.Request, http.StatusOK, &metav1.APIGroupList{Groups: f(req)}) } } @@ -55,41 +52,3 @@ func SupportedResourcesHandler(s runtime.NegotiatedSerializer, groupVersion sche responsewriters.WriteObjectNegotiated(s, schema.GroupVersion{}, resp.ResponseWriter, req.Request, http.StatusOK, &metav1.APIResourceList{GroupVersion: groupVersion.String(), APIResources: lister.ListAPIResources()}) } } - -// TODO: Remove in 1.6. This is for backward compatibility with 1.4 kubectl. -// See https://github.com/kubernetes/kubernetes/issues/35791 -var groupsWithNewVersionsIn1_5 = sets.NewString("apps", "policy") - -// TODO: Remove in 1.6. -func filterAPIGroups(req *restful.Request, groups []metav1.APIGroup) []metav1.APIGroup { - if !isOldKubectl(req.HeaderParameter("User-Agent")) { - return groups - } - // hide API group that has new versions added in 1.5. - var ret []metav1.APIGroup - for _, group := range groups { - if groupsWithNewVersionsIn1_5.Has(group.Name) { - continue - } - ret = append(ret, group) - } - return ret -} - -// TODO: Remove in 1.6. Returns if kubectl is older than v1.5.0 -func isOldKubectl(userAgent string) bool { - // example userAgent string: kubectl-1.3/v1.3.8 (linux/amd64) kubernetes/e328d5b - if !strings.Contains(userAgent, "kubectl") { - return false - } - userAgent = strings.Split(userAgent, " ")[0] - subs := strings.Split(userAgent, "/") - if len(subs) != 2 { - return false - } - kubectlVersion, versionErr := utilversion.ParseSemantic(subs[1]) - if versionErr != nil { - return false - } - return kubectlVersion.LessThan(utilversion.MustParseSemantic("v1.5.0")) -} diff --git a/pkg/registry/generic/registry/BUILD b/pkg/registry/generic/registry/BUILD index ff1eee6104d..cb38bf7f025 100644 --- a/pkg/registry/generic/registry/BUILD +++ b/pkg/registry/generic/registry/BUILD @@ -37,7 +37,6 @@ go_library( "//pkg/storage/storagebackend/factory:go_default_library", "//pkg/util/runtime:go_default_library", "//pkg/util/validation/field:go_default_library", - "//pkg/util/version:go_default_library", "//pkg/watch:go_default_library", "//vendor:github.com/golang/glog", "//vendor:golang.org/x/net/context", diff --git a/pkg/registry/generic/registry/store.go b/pkg/registry/generic/registry/store.go index adb3196e5da..81fa39a35d9 100644 --- a/pkg/registry/generic/registry/store.go +++ b/pkg/registry/generic/registry/store.go @@ -39,7 +39,6 @@ import ( "k8s.io/kubernetes/pkg/storage" utilruntime "k8s.io/kubernetes/pkg/util/runtime" "k8s.io/kubernetes/pkg/util/validation/field" - utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/watch" "github.com/golang/glog" @@ -223,25 +222,6 @@ func (e *Store) ListPredicate(ctx api.Context, p storage.SelectionPredicate, opt return list, storeerr.InterpretListError(err, e.QualifiedResource) } -// TODO: remove this function after 1.6 -// returns if the user agent is is kubectl older than v1.4.0 -func isOldKubectl(userAgent string) bool { - // example userAgent string: kubectl-1.3/v1.3.8 (linux/amd64) kubernetes/e328d5b - if !strings.Contains(userAgent, "kubectl") { - return false - } - userAgent = strings.Split(userAgent, " ")[0] - subs := strings.Split(userAgent, "/") - if len(subs) != 2 { - return false - } - kubectlVersion, versionErr := utilversion.ParseSemantic(subs[1]) - if versionErr != nil { - return false - } - return kubectlVersion.LessThan(utilversion.MustParseSemantic("v1.4.0")) -} - // Create inserts a new item according to the unique key from the object. func (e *Store) Create(ctx api.Context, obj runtime.Object) (runtime.Object, error) { if err := rest.BeforeCreate(e.CreateStrategy, ctx, obj); err != nil { @@ -276,15 +256,6 @@ func (e *Store) Create(ctx api.Context, obj runtime.Object) (runtime.Object, err if accessor.GetDeletionTimestamp() != nil { msg := &err.(*kubeerr.StatusError).ErrStatus.Message *msg = fmt.Sprintf("object is being deleted: %s", *msg) - // TODO: remove this block after 1.6 - userAgent, _ := api.UserAgentFrom(ctx) - if !isOldKubectl(userAgent) { - return nil, err - } - if e.QualifiedResource.Resource != "replicationcontrollers" { - return nil, err - } - *msg = fmt.Sprintf("%s: if you're using \"kubectl rolling-update\" with kubectl version older than v1.4.0, your rolling update has failed, though the pods are correctly updated. Please see https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#kubectl-rolling-update for a workaround", *msg) } return nil, err }