mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Merge pull request #15351 from caesarxuchao/fix-14584-1
Auto commit by PR queue bot
This commit is contained in:
commit
2dec0826f7
@ -560,7 +560,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -1184,7 +1184,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -1808,7 +1808,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -2392,7 +2392,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -2920,7 +2920,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -3761,7 +3761,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -4404,7 +4404,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -4921,7 +4921,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -7088,7 +7088,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -7712,7 +7712,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -8395,7 +8395,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -9078,7 +9078,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -9702,7 +9702,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -10326,7 +10326,7 @@
|
|||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "api.Patch",
|
"type": "unversioned.Patch",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"description": "",
|
"description": "",
|
||||||
@ -11414,8 +11414,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"api.Patch": {
|
"unversioned.Patch": {
|
||||||
"id": "api.Patch",
|
"id": "unversioned.Patch",
|
||||||
|
"description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
"unversioned.Status": {
|
"unversioned.Status": {
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,106 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2014 The Kubernetes Authors All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package api
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// This file contains API types that are unversioned.
|
|
||||||
|
|
||||||
// APIVersions lists the versions that are available, to allow clients to
|
|
||||||
// discover the API at /api, which is the root path of the legacy v1 API.
|
|
||||||
type APIVersions struct {
|
|
||||||
// versions are the api versions that are available.
|
|
||||||
Versions []string `json:"versions"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// APIGroupList is a list of APIGroup, to allow clients to discover the API at
|
|
||||||
// /apis.
|
|
||||||
type APIGroupList struct {
|
|
||||||
// groups is a list of APIGroup.
|
|
||||||
Groups []APIGroup `json:"groups"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// APIGroup contains the name, the supported versions, and the preferred version
|
|
||||||
// of a group.
|
|
||||||
type APIGroup struct {
|
|
||||||
// name is the name of the group.
|
|
||||||
Name string `json:"name"`
|
|
||||||
// versions are the versions supported in this group.
|
|
||||||
Versions []GroupVersion `json:"versions"`
|
|
||||||
// preferredVersion is the version preferred by the API server, which
|
|
||||||
// probably is the storage version.
|
|
||||||
PreferredVersion GroupVersion `json:"preferredVersion,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// GroupVersion contains the "group/version" and "version" string of a version.
|
|
||||||
// It is made a struct to keep extensiblity.
|
|
||||||
type GroupVersion struct {
|
|
||||||
// groupVersion specifies the API group and version in the form "group/version"
|
|
||||||
GroupVersion string `json:"groupVersion"`
|
|
||||||
// version specifies the version in the form of "version". This is to save
|
|
||||||
// the clients the trouble of splitting the GroupVersion.
|
|
||||||
Version string `json:"version"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// APIResource specifies the name of a resource and whether it is namespaced.
|
|
||||||
type APIResource struct {
|
|
||||||
// name is the name of the resource.
|
|
||||||
Name string `json:"name"`
|
|
||||||
// namespaced indicates if a resource is namespaced or not.
|
|
||||||
Namespaced bool `json:"namespaced"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// APIResourceList is a list of APIResource, it is used to expose the name of the
|
|
||||||
// resources supported in a specific group and version, and if the resource
|
|
||||||
// is namespaced.
|
|
||||||
type APIResourceList struct {
|
|
||||||
// groupVersion is the group and version this APIResourceList is for.
|
|
||||||
GroupVersion string `json:"groupVersion"`
|
|
||||||
// resources contains the name of the resources and if they are namespaced.
|
|
||||||
APIResources []APIResource `json:"resources"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RootPaths lists the paths available at root.
|
|
||||||
// For example: "/healthz", "/apis".
|
|
||||||
type RootPaths struct {
|
|
||||||
// paths are the paths available at root.
|
|
||||||
Paths []string `json:"paths"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: remove me when watch is refactored
|
|
||||||
func LabelSelectorQueryParam(version string) string {
|
|
||||||
return "labelSelector"
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: remove me when watch is refactored
|
|
||||||
func FieldSelectorQueryParam(version string) string {
|
|
||||||
return "fieldSelector"
|
|
||||||
}
|
|
||||||
|
|
||||||
// String returns available api versions as a human-friendly version string.
|
|
||||||
func (apiVersions APIVersions) String() string {
|
|
||||||
return strings.Join(apiVersions.Versions, ",")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (apiVersions APIVersions) GoString() string {
|
|
||||||
return apiVersions.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.
|
|
||||||
type Patch struct{}
|
|
@ -17,6 +17,8 @@ limitations under the License.
|
|||||||
// Package unversioned contains API types that are common to all versions.
|
// Package unversioned contains API types that are common to all versions.
|
||||||
package unversioned
|
package unversioned
|
||||||
|
|
||||||
|
import "strings"
|
||||||
|
|
||||||
// TypeMeta describes an individual object in an API response or request
|
// TypeMeta describes an individual object in an API response or request
|
||||||
// with strings representing the type of the object and its API schema version.
|
// with strings representing the type of the object and its API schema version.
|
||||||
// Structures that are versioned or persisted should inline TypeMeta.
|
// Structures that are versioned or persisted should inline TypeMeta.
|
||||||
@ -269,3 +271,86 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (*Status) IsAnAPIObject() {}
|
func (*Status) IsAnAPIObject() {}
|
||||||
|
|
||||||
|
// APIVersions lists the versions that are available, to allow clients to
|
||||||
|
// discover the API at /api, which is the root path of the legacy v1 API.
|
||||||
|
type APIVersions struct {
|
||||||
|
// versions are the api versions that are available.
|
||||||
|
Versions []string `json:"versions"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// APIGroupList is a list of APIGroup, to allow clients to discover the API at
|
||||||
|
// /apis.
|
||||||
|
type APIGroupList struct {
|
||||||
|
// groups is a list of APIGroup.
|
||||||
|
Groups []APIGroup `json:"groups"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// APIGroup contains the name, the supported versions, and the preferred version
|
||||||
|
// of a group.
|
||||||
|
type APIGroup struct {
|
||||||
|
// name is the name of the group.
|
||||||
|
Name string `json:"name"`
|
||||||
|
// versions are the versions supported in this group.
|
||||||
|
Versions []GroupVersion `json:"versions"`
|
||||||
|
// preferredVersion is the version preferred by the API server, which
|
||||||
|
// probably is the storage version.
|
||||||
|
PreferredVersion GroupVersion `json:"preferredVersion,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupVersion contains the "group/version" and "version" string of a version.
|
||||||
|
// It is made a struct to keep extensiblity.
|
||||||
|
type GroupVersion struct {
|
||||||
|
// groupVersion specifies the API group and version in the form "group/version"
|
||||||
|
GroupVersion string `json:"groupVersion"`
|
||||||
|
// version specifies the version in the form of "version". This is to save
|
||||||
|
// the clients the trouble of splitting the GroupVersion.
|
||||||
|
Version string `json:"version"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// APIResource specifies the name of a resource and whether it is namespaced.
|
||||||
|
type APIResource struct {
|
||||||
|
// name is the name of the resource.
|
||||||
|
Name string `json:"name"`
|
||||||
|
// namespaced indicates if a resource is namespaced or not.
|
||||||
|
Namespaced bool `json:"namespaced"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// APIResourceList is a list of APIResource, it is used to expose the name of the
|
||||||
|
// resources supported in a specific group and version, and if the resource
|
||||||
|
// is namespaced.
|
||||||
|
type APIResourceList struct {
|
||||||
|
// groupVersion is the group and version this APIResourceList is for.
|
||||||
|
GroupVersion string `json:"groupVersion"`
|
||||||
|
// resources contains the name of the resources and if they are namespaced.
|
||||||
|
APIResources []APIResource `json:"resources"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// RootPaths lists the paths available at root.
|
||||||
|
// For example: "/healthz", "/apis".
|
||||||
|
type RootPaths struct {
|
||||||
|
// paths are the paths available at root.
|
||||||
|
Paths []string `json:"paths"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: remove me when watch is refactored
|
||||||
|
func LabelSelectorQueryParam(version string) string {
|
||||||
|
return "labelSelector"
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: remove me when watch is refactored
|
||||||
|
func FieldSelectorQueryParam(version string) string {
|
||||||
|
return "fieldSelector"
|
||||||
|
}
|
||||||
|
|
||||||
|
// String returns available api versions as a human-friendly version string.
|
||||||
|
func (apiVersions APIVersions) String() string {
|
||||||
|
return strings.Join(apiVersions.Versions, ",")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (apiVersions APIVersions) GoString() string {
|
||||||
|
return apiVersions.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.
|
||||||
|
type Patch struct{}
|
||||||
|
@ -27,6 +27,65 @@ package unversioned
|
|||||||
// Those methods can be generated by using hack/update-generated-swagger-docs.sh
|
// Those methods can be generated by using hack/update-generated-swagger-docs.sh
|
||||||
|
|
||||||
// AUTO-GENERATED FUNCTIONS START HERE
|
// AUTO-GENERATED FUNCTIONS START HERE
|
||||||
|
var map_APIGroup = map[string]string{
|
||||||
|
"": "APIGroup contains the name, the supported versions, and the preferred version of a group.",
|
||||||
|
"name": "name is the name of the group.",
|
||||||
|
"versions": "versions are the versions supported in this group.",
|
||||||
|
"preferredVersion": "preferredVersion is the version preferred by the API server, which probably is the storage version.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (APIGroup) SwaggerDoc() map[string]string {
|
||||||
|
return map_APIGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
var map_APIGroupList = map[string]string{
|
||||||
|
"": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.",
|
||||||
|
"groups": "groups is a list of APIGroup.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (APIGroupList) SwaggerDoc() map[string]string {
|
||||||
|
return map_APIGroupList
|
||||||
|
}
|
||||||
|
|
||||||
|
var map_APIResource = map[string]string{
|
||||||
|
"": "APIResource specifies the name of a resource and whether it is namespaced.",
|
||||||
|
"name": "name is the name of the resource.",
|
||||||
|
"namespaced": "namespaced indicates if a resource is namespaced or not.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (APIResource) SwaggerDoc() map[string]string {
|
||||||
|
return map_APIResource
|
||||||
|
}
|
||||||
|
|
||||||
|
var map_APIResourceList = map[string]string{
|
||||||
|
"": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||||
|
"groupVersion": "groupVersion is the group and version this APIResourceList is for.",
|
||||||
|
"resources": "resources contains the name of the resources and if they are namespaced.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (APIResourceList) SwaggerDoc() map[string]string {
|
||||||
|
return map_APIResourceList
|
||||||
|
}
|
||||||
|
|
||||||
|
var map_APIVersions = map[string]string{
|
||||||
|
"": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.",
|
||||||
|
"versions": "versions are the api versions that are available.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (APIVersions) SwaggerDoc() map[string]string {
|
||||||
|
return map_APIVersions
|
||||||
|
}
|
||||||
|
|
||||||
|
var map_GroupVersion = map[string]string{
|
||||||
|
"": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensiblity.",
|
||||||
|
"groupVersion": "groupVersion specifies the API group and version in the form \"group/version\"",
|
||||||
|
"version": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (GroupVersion) SwaggerDoc() map[string]string {
|
||||||
|
return map_GroupVersion
|
||||||
|
}
|
||||||
|
|
||||||
var map_ListMeta = map[string]string{
|
var map_ListMeta = map[string]string{
|
||||||
"": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
|
"": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
|
||||||
"selfLink": "SelfLink is a URL representing this object. Populated by the system. Read-only.",
|
"selfLink": "SelfLink is a URL representing this object. Populated by the system. Read-only.",
|
||||||
@ -37,6 +96,23 @@ func (ListMeta) SwaggerDoc() map[string]string {
|
|||||||
return map_ListMeta
|
return map_ListMeta
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var map_Patch = map[string]string{
|
||||||
|
"": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (Patch) SwaggerDoc() map[string]string {
|
||||||
|
return map_Patch
|
||||||
|
}
|
||||||
|
|
||||||
|
var map_RootPaths = map[string]string{
|
||||||
|
"": "RootPaths lists the paths available at root. For example: \"/healthz\", \"/apis\".",
|
||||||
|
"paths": "paths are the paths available at root.",
|
||||||
|
}
|
||||||
|
|
||||||
|
func (RootPaths) SwaggerDoc() map[string]string {
|
||||||
|
return map_RootPaths
|
||||||
|
}
|
||||||
|
|
||||||
var map_Status = map[string]string{
|
var map_Status = map[string]string{
|
||||||
"": "Status is a return value for calls that don't return other objects.",
|
"": "Status is a return value for calls that don't return other objects.",
|
||||||
"metadata": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds",
|
"metadata": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds",
|
||||||
|
@ -29,6 +29,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
"k8s.io/kubernetes/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/api/meta"
|
||||||
"k8s.io/kubernetes/pkg/api/rest"
|
"k8s.io/kubernetes/pkg/api/rest"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/conversion"
|
"k8s.io/kubernetes/pkg/conversion"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
watchjson "k8s.io/kubernetes/pkg/watch/json"
|
watchjson "k8s.io/kubernetes/pkg/watch/json"
|
||||||
@ -60,7 +61,7 @@ type documentable interface {
|
|||||||
var errEmptyName = errors.NewBadRequest("name must be provided")
|
var errEmptyName = errors.NewBadRequest("name must be provided")
|
||||||
|
|
||||||
// Installs handlers for API resources.
|
// Installs handlers for API resources.
|
||||||
func (a *APIInstaller) Install(ws *restful.WebService) (apiResources []api.APIResource, errors []error) {
|
func (a *APIInstaller) Install(ws *restful.WebService) (apiResources []unversioned.APIResource, errors []error) {
|
||||||
errors = make([]error, 0)
|
errors = make([]error, 0)
|
||||||
|
|
||||||
proxyHandler := (&ProxyHandler{a.prefix + "/proxy/", a.group.Storage, a.group.Codec, a.group.Context, a.info})
|
proxyHandler := (&ProxyHandler{a.prefix + "/proxy/", a.group.Storage, a.group.Codec, a.group.Context, a.info})
|
||||||
@ -99,7 +100,7 @@ func (a *APIInstaller) NewWebService() *restful.WebService {
|
|||||||
return ws
|
return ws
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storage, ws *restful.WebService, proxyHandler http.Handler) (*api.APIResource, error) {
|
func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storage, ws *restful.WebService, proxyHandler http.Handler) (*unversioned.APIResource, error) {
|
||||||
admit := a.group.Admit
|
admit := a.group.Admit
|
||||||
context := a.group.Context
|
context := a.group.Context
|
||||||
|
|
||||||
@ -266,7 +267,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
|||||||
params := []*restful.Parameter{}
|
params := []*restful.Parameter{}
|
||||||
actions := []action{}
|
actions := []action{}
|
||||||
|
|
||||||
var apiResource api.APIResource
|
var apiResource unversioned.APIResource
|
||||||
// Get the list of actions for the given scope.
|
// Get the list of actions for the given scope.
|
||||||
switch scope.Name() {
|
switch scope.Name() {
|
||||||
case meta.RESTScopeNameRoot:
|
case meta.RESTScopeNameRoot:
|
||||||
@ -479,7 +480,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
|||||||
Operation("patch"+namespaced+kind+strings.Title(subresource)).
|
Operation("patch"+namespaced+kind+strings.Title(subresource)).
|
||||||
Produces(append(storageMeta.ProducesMIMETypes(action.Verb), "application/json")...).
|
Produces(append(storageMeta.ProducesMIMETypes(action.Verb), "application/json")...).
|
||||||
Returns(http.StatusOK, "OK", versionedObject).
|
Returns(http.StatusOK, "OK", versionedObject).
|
||||||
Reads(api.Patch{}).
|
Reads(unversioned.Patch{}).
|
||||||
Writes(versionedObject)
|
Writes(versionedObject)
|
||||||
addParams(route, action.Params)
|
addParams(route, action.Params)
|
||||||
ws.Route(route)
|
ws.Route(route)
|
||||||
|
@ -36,6 +36,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api/latest"
|
"k8s.io/kubernetes/pkg/api/latest"
|
||||||
"k8s.io/kubernetes/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/api/meta"
|
||||||
"k8s.io/kubernetes/pkg/api/rest"
|
"k8s.io/kubernetes/pkg/api/rest"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/apiserver/metrics"
|
"k8s.io/kubernetes/pkg/apiserver/metrics"
|
||||||
"k8s.io/kubernetes/pkg/healthz"
|
"k8s.io/kubernetes/pkg/healthz"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
@ -256,7 +257,7 @@ func AddApiWebService(container *restful.Container, apiPrefix string, versions [
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Adds a service to return the supported api versions at /apis.
|
// Adds a service to return the supported api versions at /apis.
|
||||||
func AddApisWebService(container *restful.Container, apiPrefix string, groups []api.APIGroup) {
|
func AddApisWebService(container *restful.Container, apiPrefix string, groups []unversioned.APIGroup) {
|
||||||
rootAPIHandler := RootAPIHandler(groups)
|
rootAPIHandler := RootAPIHandler(groups)
|
||||||
ws := new(restful.WebService)
|
ws := new(restful.WebService)
|
||||||
ws.Path(apiPrefix)
|
ws.Path(apiPrefix)
|
||||||
@ -271,7 +272,7 @@ func AddApisWebService(container *restful.Container, apiPrefix string, groups []
|
|||||||
|
|
||||||
// Adds a service to return the supported versions, preferred version, and name
|
// Adds a service to return the supported versions, preferred version, and name
|
||||||
// of a group. E.g., a such web service will be registered at /apis/extensions.
|
// of a group. E.g., a such web service will be registered at /apis/extensions.
|
||||||
func AddGroupWebService(container *restful.Container, path string, group api.APIGroup) {
|
func AddGroupWebService(container *restful.Container, path string, group unversioned.APIGroup) {
|
||||||
groupHandler := GroupHandler(group)
|
groupHandler := GroupHandler(group)
|
||||||
ws := new(restful.WebService)
|
ws := new(restful.WebService)
|
||||||
ws.Path(path)
|
ws.Path(path)
|
||||||
@ -286,7 +287,7 @@ func AddGroupWebService(container *restful.Container, path string, group api.API
|
|||||||
|
|
||||||
// Adds a service to return the supported resources, E.g., a such web service
|
// Adds a service to return the supported resources, E.g., a such web service
|
||||||
// will be registered at /apis/extensions/v1.
|
// will be registered at /apis/extensions/v1.
|
||||||
func AddSupportedResourcesWebService(ws *restful.WebService, groupVersion string, apiResources []api.APIResource) {
|
func AddSupportedResourcesWebService(ws *restful.WebService, groupVersion string, apiResources []unversioned.APIResource) {
|
||||||
resourceHandler := SupportedResourcesHandler(groupVersion, apiResources)
|
resourceHandler := SupportedResourcesHandler(groupVersion, apiResources)
|
||||||
ws.Route(ws.GET("/").To(resourceHandler).
|
ws.Route(ws.GET("/").To(resourceHandler).
|
||||||
Doc("get available resources").
|
Doc("get available resources").
|
||||||
@ -305,21 +306,21 @@ func handleVersion(req *restful.Request, resp *restful.Response) {
|
|||||||
func APIVersionHandler(versions ...string) restful.RouteFunction {
|
func APIVersionHandler(versions ...string) restful.RouteFunction {
|
||||||
return func(req *restful.Request, resp *restful.Response) {
|
return func(req *restful.Request, resp *restful.Response) {
|
||||||
// TODO: use restful's Response methods
|
// TODO: use restful's Response methods
|
||||||
writeRawJSON(http.StatusOK, api.APIVersions{Versions: versions}, resp.ResponseWriter)
|
writeRawJSON(http.StatusOK, unversioned.APIVersions{Versions: versions}, resp.ResponseWriter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// RootAPIHandler returns a handler which will list the provided groups and versions as available.
|
// RootAPIHandler returns a handler which will list the provided groups and versions as available.
|
||||||
func RootAPIHandler(groups []api.APIGroup) restful.RouteFunction {
|
func RootAPIHandler(groups []unversioned.APIGroup) restful.RouteFunction {
|
||||||
return func(req *restful.Request, resp *restful.Response) {
|
return func(req *restful.Request, resp *restful.Response) {
|
||||||
// TODO: use restful's Response methods
|
// TODO: use restful's Response methods
|
||||||
writeRawJSON(http.StatusOK, api.APIGroupList{Groups: groups}, resp.ResponseWriter)
|
writeRawJSON(http.StatusOK, unversioned.APIGroupList{Groups: groups}, resp.ResponseWriter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupHandler returns a handler which will return the api.GroupAndVersion of
|
// GroupHandler returns a handler which will return the api.GroupAndVersion of
|
||||||
// the group.
|
// the group.
|
||||||
func GroupHandler(group api.APIGroup) restful.RouteFunction {
|
func GroupHandler(group unversioned.APIGroup) restful.RouteFunction {
|
||||||
return func(req *restful.Request, resp *restful.Response) {
|
return func(req *restful.Request, resp *restful.Response) {
|
||||||
// TODO: use restful's Response methods
|
// TODO: use restful's Response methods
|
||||||
writeRawJSON(http.StatusOK, group, resp.ResponseWriter)
|
writeRawJSON(http.StatusOK, group, resp.ResponseWriter)
|
||||||
@ -327,10 +328,10 @@ func GroupHandler(group api.APIGroup) restful.RouteFunction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SupportedResourcesHandler returns a handler which will list the provided resources as available.
|
// SupportedResourcesHandler returns a handler which will list the provided resources as available.
|
||||||
func SupportedResourcesHandler(groupVersion string, apiResources []api.APIResource) restful.RouteFunction {
|
func SupportedResourcesHandler(groupVersion string, apiResources []unversioned.APIResource) restful.RouteFunction {
|
||||||
return func(req *restful.Request, resp *restful.Response) {
|
return func(req *restful.Request, resp *restful.Response) {
|
||||||
// TODO: use restful's Response methods
|
// TODO: use restful's Response methods
|
||||||
writeRawJSON(http.StatusOK, api.APIResourceList{GroupVersion: groupVersion, APIResources: apiResources}, resp.ResponseWriter)
|
writeRawJSON(http.StatusOK, unversioned.APIResourceList{GroupVersion: groupVersion, APIResources: apiResources}, resp.ResponseWriter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
|
|
||||||
"github.com/emicklei/go-restful"
|
"github.com/emicklei/go-restful"
|
||||||
)
|
)
|
||||||
@ -41,6 +41,6 @@ func IndexHandler(container *restful.Container, muxHelper *MuxHelper) func(http.
|
|||||||
// Extract the paths handled using mux handler.
|
// Extract the paths handled using mux handler.
|
||||||
handledPaths = append(handledPaths, muxHelper.RegisteredPaths...)
|
handledPaths = append(handledPaths, muxHelper.RegisteredPaths...)
|
||||||
sort.Strings(handledPaths)
|
sort.Strings(handledPaths)
|
||||||
writeRawJSON(status, api.RootPaths{Paths: handledPaths}, w)
|
writeRawJSON(status, unversioned.RootPaths{Paths: handledPaths}, w)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
5
pkg/client/cache/listwatch_test.go
vendored
5
pkg/client/cache/listwatch_test.go
vendored
@ -23,6 +23,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
@ -54,7 +55,7 @@ func buildLocation(resourcePath string, query url.Values) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestListWatchesCanList(t *testing.T) {
|
func TestListWatchesCanList(t *testing.T) {
|
||||||
fieldSelectorQueryParamName := api.FieldSelectorQueryParam(testapi.Default.Version())
|
fieldSelectorQueryParamName := unversioned.FieldSelectorQueryParam(testapi.Default.Version())
|
||||||
table := []struct {
|
table := []struct {
|
||||||
location string
|
location string
|
||||||
resource string
|
resource string
|
||||||
@ -104,7 +105,7 @@ func TestListWatchesCanList(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestListWatchesCanWatch(t *testing.T) {
|
func TestListWatchesCanWatch(t *testing.T) {
|
||||||
fieldSelectorQueryParamName := api.FieldSelectorQueryParam(testapi.Default.Version())
|
fieldSelectorQueryParamName := unversioned.FieldSelectorQueryParam(testapi.Default.Version())
|
||||||
table := []struct {
|
table := []struct {
|
||||||
rv string
|
rv string
|
||||||
location string
|
location string
|
||||||
|
@ -116,7 +116,7 @@ func (c *Client) ComponentStatuses() ComponentStatusInterface {
|
|||||||
// VersionInterface has a method to retrieve the server version.
|
// VersionInterface has a method to retrieve the server version.
|
||||||
type VersionInterface interface {
|
type VersionInterface interface {
|
||||||
ServerVersion() (*version.Info, error)
|
ServerVersion() (*version.Info, error)
|
||||||
ServerAPIVersions() (*api.APIVersions, error)
|
ServerAPIVersions() (*unversioned.APIVersions, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// APIStatus is exposed by errors that can be converted to an api.Status object
|
// APIStatus is exposed by errors that can be converted to an api.Status object
|
||||||
@ -146,12 +146,12 @@ func (c *Client) ServerVersion() (*version.Info, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ServerAPIVersions retrieves and parses the list of API versions the server supports.
|
// ServerAPIVersions retrieves and parses the list of API versions the server supports.
|
||||||
func (c *Client) ServerAPIVersions() (*api.APIVersions, error) {
|
func (c *Client) ServerAPIVersions() (*unversioned.APIVersions, error) {
|
||||||
body, err := c.Get().UnversionedPath("").Do().Raw()
|
body, err := c.Get().UnversionedPath("").Do().Raw()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var v api.APIVersions
|
var v unversioned.APIVersions
|
||||||
err = json.Unmarshal(body, &v)
|
err = json.Unmarshal(body, &v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("got '%s': %v", string(body), err)
|
return nil, fmt.Errorf("got '%s': %v", string(body), err)
|
||||||
|
@ -30,6 +30,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
@ -149,9 +150,9 @@ func (c *testClient) ValidateCommon(t *testing.T, err error) {
|
|||||||
validator, ok := c.QueryValidator[key]
|
validator, ok := c.QueryValidator[key]
|
||||||
if !ok {
|
if !ok {
|
||||||
switch key {
|
switch key {
|
||||||
case api.LabelSelectorQueryParam(testapi.Default.Version()):
|
case unversioned.LabelSelectorQueryParam(testapi.Default.Version()):
|
||||||
validator = validateLabels
|
validator = validateLabels
|
||||||
case api.FieldSelectorQueryParam(testapi.Default.Version()):
|
case unversioned.FieldSelectorQueryParam(testapi.Default.Version()):
|
||||||
validator = validateFields
|
validator = validateFields
|
||||||
default:
|
default:
|
||||||
validator = func(a, b string) bool { return a == b }
|
validator = func(a, b string) bool { return a == b }
|
||||||
@ -272,7 +273,7 @@ func TestGetServerVersion(t *testing.T) {
|
|||||||
|
|
||||||
func TestGetServerAPIVersions(t *testing.T) {
|
func TestGetServerAPIVersions(t *testing.T) {
|
||||||
versions := []string{"v1", "v2", "v3"}
|
versions := []string{"v1", "v2", "v3"}
|
||||||
expect := api.APIVersions{Versions: versions}
|
expect := unversioned.APIVersions{Versions: versions}
|
||||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
||||||
output, err := json.Marshal(expect)
|
output, err := json.Marshal(expect)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -300,7 +301,7 @@ func swaggerSchemaFakeServer() (*httptest.Server, error) {
|
|||||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
||||||
var resp interface{}
|
var resp interface{}
|
||||||
if request == 1 {
|
if request == 1 {
|
||||||
resp = api.APIVersions{Versions: []string{"v1", "v2", "v3"}}
|
resp = unversioned.APIVersions{Versions: []string{"v1", "v2", "v3"}}
|
||||||
request++
|
request++
|
||||||
} else {
|
} else {
|
||||||
resp = swagger.ApiDeclaration{}
|
resp = swagger.ApiDeclaration{}
|
||||||
|
@ -34,12 +34,12 @@ func TestEventSearch(t *testing.T) {
|
|||||||
Method: "GET",
|
Method: "GET",
|
||||||
Path: testapi.Default.ResourcePath("events", "baz", ""),
|
Path: testapi.Default.ResourcePath("events", "baz", ""),
|
||||||
Query: url.Values{
|
Query: url.Values{
|
||||||
api.FieldSelectorQueryParam(testapi.Default.Version()): []string{
|
unversioned.FieldSelectorQueryParam(testapi.Default.Version()): []string{
|
||||||
getInvolvedObjectNameFieldLabel(testapi.Default.Version()) + "=foo,",
|
getInvolvedObjectNameFieldLabel(testapi.Default.Version()) + "=foo,",
|
||||||
"involvedObject.namespace=baz,",
|
"involvedObject.namespace=baz,",
|
||||||
"involvedObject.kind=Pod",
|
"involvedObject.kind=Pod",
|
||||||
},
|
},
|
||||||
api.LabelSelectorQueryParam(testapi.Default.Version()): []string{},
|
unversioned.LabelSelectorQueryParam(testapi.Default.Version()): []string{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Response: Response{StatusCode: 200, Body: &api.EventList{}},
|
Response: Response{StatusCode: 200, Body: &api.EventList{}},
|
||||||
|
@ -21,8 +21,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/latest"
|
"k8s.io/kubernetes/pkg/api/latest"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/version"
|
"k8s.io/kubernetes/pkg/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -63,12 +63,12 @@ func (c *ExperimentalClient) ServerVersion() (*version.Info, error) {
|
|||||||
|
|
||||||
// ServerAPIVersions retrieves and parses the list of experimental API versions the
|
// ServerAPIVersions retrieves and parses the list of experimental API versions the
|
||||||
// server supports.
|
// server supports.
|
||||||
func (c *ExperimentalClient) ServerAPIVersions() (*api.APIVersions, error) {
|
func (c *ExperimentalClient) ServerAPIVersions() (*unversioned.APIVersions, error) {
|
||||||
body, err := c.Get().UnversionedPath("").Do().Raw()
|
body, err := c.Get().UnversionedPath("").Do().Raw()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var v api.APIVersions
|
var v unversioned.APIVersions
|
||||||
err = json.Unmarshal(body, &v)
|
err = json.Unmarshal(body, &v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("got '%s': %v", string(body), err)
|
return nil, fmt.Errorf("got '%s': %v", string(body), err)
|
||||||
|
@ -34,6 +34,7 @@ import (
|
|||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/latest"
|
"k8s.io/kubernetes/pkg/api/latest"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
"k8s.io/kubernetes/pkg/util/sets"
|
"k8s.io/kubernetes/pkg/util/sets"
|
||||||
@ -179,7 +180,7 @@ func MatchesServerVersion(client *Client, c *Config) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func extractGroupVersions(l *api.APIGroupList) []string {
|
func extractGroupVersions(l *unversioned.APIGroupList) []string {
|
||||||
var groupVersions []string
|
var groupVersions []string
|
||||||
for _, g := range l.Groups {
|
for _, g := range l.Groups {
|
||||||
for _, gv := range g.Versions {
|
for _, gv := range g.Versions {
|
||||||
@ -213,7 +214,7 @@ func ServerAPIVersions(c *Config) (groupVersions []string, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var v api.APIVersions
|
var v unversioned.APIVersions
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
err = json.NewDecoder(resp.Body).Decode(&v)
|
err = json.NewDecoder(resp.Body).Decode(&v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -227,7 +228,7 @@ func ServerAPIVersions(c *Config) (groupVersions []string, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var apiGroupList api.APIGroupList
|
var apiGroupList unversioned.APIGroupList
|
||||||
defer resp2.Body.Close()
|
defer resp2.Body.Close()
|
||||||
err = json.NewDecoder(resp2.Body).Decode(&apiGroupList)
|
err = json.NewDecoder(resp2.Body).Decode(&apiGroupList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -24,8 +24,8 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
unversioned_api "k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/client/unversioned"
|
"k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/client/unversioned/fake"
|
"k8s.io/kubernetes/pkg/client/unversioned/fake"
|
||||||
)
|
)
|
||||||
@ -90,10 +90,10 @@ func TestNegotiateVersion(t *testing.T) {
|
|||||||
Codec: codec,
|
Codec: codec,
|
||||||
Resp: &http.Response{
|
Resp: &http.Response{
|
||||||
StatusCode: 200,
|
StatusCode: 200,
|
||||||
Body: objBody(&api.APIVersions{Versions: test.serverVersions}),
|
Body: objBody(&unversioned_api.APIVersions{Versions: test.serverVersions}),
|
||||||
},
|
},
|
||||||
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
||||||
return &http.Response{StatusCode: 200, Body: objBody(&api.APIVersions{Versions: test.serverVersions})}, nil
|
return &http.Response{StatusCode: 200, Body: objBody(&unversioned_api.APIVersions{Versions: test.serverVersions})}, nil
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
c := unversioned.NewOrDie(test.config)
|
c := unversioned.NewOrDie(test.config)
|
||||||
|
@ -24,8 +24,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -380,12 +380,12 @@ func TestSetKubernetesDefaultsUserAgent(t *testing.T) {
|
|||||||
|
|
||||||
func TestHelperGetServerAPIVersions(t *testing.T) {
|
func TestHelperGetServerAPIVersions(t *testing.T) {
|
||||||
expect := []string{"v1", "v2", "v3"}
|
expect := []string{"v1", "v2", "v3"}
|
||||||
APIVersions := api.APIVersions{Versions: expect}
|
APIVersions := unversioned.APIVersions{Versions: expect}
|
||||||
expect = append(expect, "group1/v1", "group1/v2", "group2/v1", "group2/v2")
|
expect = append(expect, "group1/v1", "group1/v2", "group2/v1", "group2/v2")
|
||||||
APIGroupList := api.APIGroupList{
|
APIGroupList := unversioned.APIGroupList{
|
||||||
Groups: []api.APIGroup{
|
Groups: []unversioned.APIGroup{
|
||||||
{
|
{
|
||||||
Versions: []api.GroupVersion{
|
Versions: []unversioned.GroupVersion{
|
||||||
{
|
{
|
||||||
GroupVersion: "group1/v1",
|
GroupVersion: "group1/v1",
|
||||||
},
|
},
|
||||||
@ -395,7 +395,7 @@ func TestHelperGetServerAPIVersions(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Versions: []api.GroupVersion{
|
Versions: []unversioned.GroupVersion{
|
||||||
{
|
{
|
||||||
GroupVersion: "group2/v1",
|
GroupVersion: "group2/v1",
|
||||||
},
|
},
|
||||||
|
@ -45,7 +45,7 @@ func TestListNodes(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestListNodesLabels(t *testing.T) {
|
func TestListNodesLabels(t *testing.T) {
|
||||||
labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Default.Version())
|
labelSelectorQueryParamName := unversioned.LabelSelectorQueryParam(testapi.Default.Version())
|
||||||
c := &testClient{
|
c := &testClient{
|
||||||
Request: testRequest{
|
Request: testRequest{
|
||||||
Method: "GET",
|
Method: "GET",
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
)
|
)
|
||||||
@ -64,7 +65,7 @@ func TestListPods(t *testing.T) {
|
|||||||
|
|
||||||
func TestListPodsLabels(t *testing.T) {
|
func TestListPodsLabels(t *testing.T) {
|
||||||
ns := api.NamespaceDefault
|
ns := api.NamespaceDefault
|
||||||
labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Default.Version())
|
labelSelectorQueryParamName := unversioned.LabelSelectorQueryParam(testapi.Default.Version())
|
||||||
c := &testClient{
|
c := &testClient{
|
||||||
Request: testRequest{
|
Request: testRequest{
|
||||||
Method: "GET",
|
Method: "GET",
|
||||||
|
@ -30,7 +30,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/client/metrics"
|
"k8s.io/kubernetes/pkg/client/metrics"
|
||||||
@ -372,7 +371,7 @@ func (r *Request) FieldsSelectorParam(s fields.Selector) *Request {
|
|||||||
r.err = err
|
r.err = err
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
return r.setParam(api.FieldSelectorQueryParam(r.apiVersion), s2.String())
|
return r.setParam(unversioned.FieldSelectorQueryParam(r.apiVersion), s2.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
// LabelsSelectorParam adds the given selector as a query parameter
|
// LabelsSelectorParam adds the given selector as a query parameter
|
||||||
@ -386,7 +385,7 @@ func (r *Request) LabelsSelectorParam(s labels.Selector) *Request {
|
|||||||
if s.Empty() {
|
if s.Empty() {
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
return r.setParam(api.LabelSelectorQueryParam(r.apiVersion), s.String())
|
return r.setParam(unversioned.LabelSelectorQueryParam(r.apiVersion), s.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
// UintParam creates a query parameter with the given value.
|
// UintParam creates a query parameter with the given value.
|
||||||
|
@ -777,7 +777,7 @@ func TestDoRequestNewWayReader(t *testing.T) {
|
|||||||
}
|
}
|
||||||
tmpStr := string(reqBodyExpected)
|
tmpStr := string(reqBodyExpected)
|
||||||
requestURL := testapi.Default.ResourcePathWithPrefix("foo", "bar", "", "baz")
|
requestURL := testapi.Default.ResourcePathWithPrefix("foo", "bar", "", "baz")
|
||||||
requestURL += "?" + api.LabelSelectorQueryParam(testapi.Default.Version()) + "=name%3Dfoo&timeout=1s"
|
requestURL += "?" + unversioned.LabelSelectorQueryParam(testapi.Default.Version()) + "=name%3Dfoo&timeout=1s"
|
||||||
fakeHandler.ValidateRequest(t, requestURL, "POST", &tmpStr)
|
fakeHandler.ValidateRequest(t, requestURL, "POST", &tmpStr)
|
||||||
if fakeHandler.RequestReceived.Header["Authorization"] == nil {
|
if fakeHandler.RequestReceived.Header["Authorization"] == nil {
|
||||||
t.Errorf("Request is missing authorization header: %#v", *fakeHandler.RequestReceived)
|
t.Errorf("Request is missing authorization header: %#v", *fakeHandler.RequestReceived)
|
||||||
@ -819,7 +819,7 @@ func TestDoRequestNewWayObj(t *testing.T) {
|
|||||||
}
|
}
|
||||||
tmpStr := string(reqBodyExpected)
|
tmpStr := string(reqBodyExpected)
|
||||||
requestURL := testapi.Default.ResourcePath("foo", "", "bar/baz")
|
requestURL := testapi.Default.ResourcePath("foo", "", "bar/baz")
|
||||||
requestURL += "?" + api.LabelSelectorQueryParam(testapi.Default.Version()) + "=name%3Dfoo&timeout=1s"
|
requestURL += "?" + unversioned.LabelSelectorQueryParam(testapi.Default.Version()) + "=name%3Dfoo&timeout=1s"
|
||||||
fakeHandler.ValidateRequest(t, requestURL, "POST", &tmpStr)
|
fakeHandler.ValidateRequest(t, requestURL, "POST", &tmpStr)
|
||||||
if fakeHandler.RequestReceived.Header["Authorization"] == nil {
|
if fakeHandler.RequestReceived.Header["Authorization"] == nil {
|
||||||
t.Errorf("Request is missing authorization header: %#v", *fakeHandler.RequestReceived)
|
t.Errorf("Request is missing authorization header: %#v", *fakeHandler.RequestReceived)
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/labels"
|
"k8s.io/kubernetes/pkg/labels"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -60,7 +61,7 @@ func TestListServices(t *testing.T) {
|
|||||||
|
|
||||||
func TestListServicesLabels(t *testing.T) {
|
func TestListServicesLabels(t *testing.T) {
|
||||||
ns := api.NamespaceDefault
|
ns := api.NamespaceDefault
|
||||||
labelSelectorQueryParamName := api.LabelSelectorQueryParam(testapi.Default.Version())
|
labelSelectorQueryParamName := unversioned.LabelSelectorQueryParam(testapi.Default.Version())
|
||||||
c := &testClient{
|
c := &testClient{
|
||||||
Request: testRequest{
|
Request: testRequest{
|
||||||
Method: "GET",
|
Method: "GET",
|
||||||
|
@ -24,6 +24,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/registered"
|
"k8s.io/kubernetes/pkg/api/registered"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/version"
|
"k8s.io/kubernetes/pkg/version"
|
||||||
@ -281,13 +282,13 @@ func (c *Fake) ServerVersion() (*version.Info, error) {
|
|||||||
return &versionInfo, nil
|
return &versionInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Fake) ServerAPIVersions() (*api.APIVersions, error) {
|
func (c *Fake) ServerAPIVersions() (*unversioned.APIVersions, error) {
|
||||||
action := ActionImpl{}
|
action := ActionImpl{}
|
||||||
action.Verb = "get"
|
action.Verb = "get"
|
||||||
action.Resource = "apiversions"
|
action.Resource = "apiversions"
|
||||||
|
|
||||||
c.Invokes(action, nil)
|
c.Invokes(action, nil)
|
||||||
return &api.APIVersions{Versions: registered.RegisteredVersions}, nil
|
return &unversioned.APIVersions{Versions: registered.RegisteredVersions}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Fake) ComponentStatuses() client.ComponentStatusInterface {
|
func (c *Fake) ComponentStatuses() client.ComponentStatusInterface {
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ func RunApiVersions(f *cmdutil.Factory, w io.Writer) error {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
var expAPIVersions *api.APIVersions
|
var expAPIVersions *unversioned.APIVersions
|
||||||
expAPIVersions, err = client.Experimental().ServerAPIVersions()
|
expAPIVersions, err = client.Experimental().ServerAPIVersions()
|
||||||
|
|
||||||
fmt.Fprintf(w, "Available Server Api Versions: %#v\n", *apiVersions)
|
fmt.Fprintf(w, "Available Server Api Versions: %#v\n", *apiVersions)
|
||||||
|
@ -25,6 +25,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/kubernetes/pkg/api/testapi"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/client/unversioned/fake"
|
"k8s.io/kubernetes/pkg/client/unversioned/fake"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -416,12 +417,12 @@ func TestDeleteMultipleSelector(t *testing.T) {
|
|||||||
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
||||||
switch p, m := req.URL.Path, req.Method; {
|
switch p, m := req.URL.Path, req.Method; {
|
||||||
case p == "/namespaces/test/pods" && m == "GET":
|
case p == "/namespaces/test/pods" && m == "GET":
|
||||||
if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
if req.URL.Query().Get(unversioned.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
||||||
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
||||||
}
|
}
|
||||||
return &http.Response{StatusCode: 200, Body: objBody(codec, pods)}, nil
|
return &http.Response{StatusCode: 200, Body: objBody(codec, pods)}, nil
|
||||||
case p == "/namespaces/test/services" && m == "GET":
|
case p == "/namespaces/test/services" && m == "GET":
|
||||||
if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
if req.URL.Query().Get(unversioned.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
||||||
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
||||||
}
|
}
|
||||||
return &http.Response{StatusCode: 200, Body: objBody(codec, svc)}, nil
|
return &http.Response{StatusCode: 200, Body: objBody(codec, svc)}, nil
|
||||||
|
@ -507,7 +507,7 @@ func TestGetMultipleTypeObjectsWithSelector(t *testing.T) {
|
|||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
Codec: codec,
|
Codec: codec,
|
||||||
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
||||||
if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
if req.URL.Query().Get(unversioned.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
||||||
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
||||||
}
|
}
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
@ -633,7 +633,7 @@ func TestWatchSelector(t *testing.T) {
|
|||||||
tf.Client = &fake.RESTClient{
|
tf.Client = &fake.RESTClient{
|
||||||
Codec: codec,
|
Codec: codec,
|
||||||
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
Client: fake.HTTPClientFunc(func(req *http.Request) (*http.Response, error) {
|
||||||
if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
if req.URL.Query().Get(unversioned.LabelSelectorQueryParam(testapi.Default.Version())) != "a=b" {
|
||||||
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
t.Fatalf("unexpected request: %#v\n%#v", req.URL, req)
|
||||||
}
|
}
|
||||||
switch req.URL.Path {
|
switch req.URL.Path {
|
||||||
|
@ -504,7 +504,7 @@ func TestResourceByNameAndEmptySelector(t *testing.T) {
|
|||||||
|
|
||||||
func TestSelector(t *testing.T) {
|
func TestSelector(t *testing.T) {
|
||||||
pods, svc := testData()
|
pods, svc := testData()
|
||||||
labelKey := api.LabelSelectorQueryParam(testapi.Default.Version())
|
labelKey := unversioned.LabelSelectorQueryParam(testapi.Default.Version())
|
||||||
b := NewBuilder(testapi.Default.RESTMapper(), api.Scheme, fakeClientWith("", t, map[string]string{
|
b := NewBuilder(testapi.Default.RESTMapper(), api.Scheme, fakeClientWith("", t, map[string]string{
|
||||||
"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods),
|
"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods),
|
||||||
"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc),
|
"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc),
|
||||||
@ -905,7 +905,7 @@ func TestSingularRootScopedObject(t *testing.T) {
|
|||||||
|
|
||||||
func TestListObject(t *testing.T) {
|
func TestListObject(t *testing.T) {
|
||||||
pods, _ := testData()
|
pods, _ := testData()
|
||||||
labelKey := api.LabelSelectorQueryParam(testapi.Default.Version())
|
labelKey := unversioned.LabelSelectorQueryParam(testapi.Default.Version())
|
||||||
b := NewBuilder(testapi.Default.RESTMapper(), api.Scheme, fakeClientWith("", t, map[string]string{
|
b := NewBuilder(testapi.Default.RESTMapper(), api.Scheme, fakeClientWith("", t, map[string]string{
|
||||||
"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods),
|
"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods),
|
||||||
})).
|
})).
|
||||||
@ -938,7 +938,7 @@ func TestListObject(t *testing.T) {
|
|||||||
|
|
||||||
func TestListObjectWithDifferentVersions(t *testing.T) {
|
func TestListObjectWithDifferentVersions(t *testing.T) {
|
||||||
pods, svc := testData()
|
pods, svc := testData()
|
||||||
labelKey := api.LabelSelectorQueryParam(testapi.Default.Version())
|
labelKey := unversioned.LabelSelectorQueryParam(testapi.Default.Version())
|
||||||
obj, err := NewBuilder(testapi.Default.RESTMapper(), api.Scheme, fakeClientWith("", t, map[string]string{
|
obj, err := NewBuilder(testapi.Default.RESTMapper(), api.Scheme, fakeClientWith("", t, map[string]string{
|
||||||
"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods),
|
"/namespaces/test/pods?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), pods),
|
||||||
"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc),
|
"/namespaces/test/services?" + labelKey + "=a%3Db": runtime.EncodeOrDie(testapi.Default.Codec(), svc),
|
||||||
|
@ -328,7 +328,7 @@ func TestHelperList(t *testing.T) {
|
|||||||
t.Errorf("url doesn't contain name: %#v", req.URL)
|
t.Errorf("url doesn't contain name: %#v", req.URL)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if req.URL.Query().Get(api.LabelSelectorQueryParam(testapi.Default.Version())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() {
|
if req.URL.Query().Get(unversioned.LabelSelectorQueryParam(testapi.Default.Version())) != labels.SelectorFromSet(labels.Set{"foo": "baz"}).String() {
|
||||||
t.Errorf("url doesn't contain query parameters: %#v", req.URL)
|
t.Errorf("url doesn't contain query parameters: %#v", req.URL)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -33,6 +33,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api/latest"
|
"k8s.io/kubernetes/pkg/api/latest"
|
||||||
"k8s.io/kubernetes/pkg/api/meta"
|
"k8s.io/kubernetes/pkg/api/meta"
|
||||||
"k8s.io/kubernetes/pkg/api/rest"
|
"k8s.io/kubernetes/pkg/api/rest"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
apiutil "k8s.io/kubernetes/pkg/api/util"
|
apiutil "k8s.io/kubernetes/pkg/api/util"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
expapi "k8s.io/kubernetes/pkg/apis/extensions"
|
expapi "k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
@ -619,7 +620,7 @@ func (m *Master) init(c *Config) {
|
|||||||
apiserver.InstallServiceErrorHandler(m.handlerContainer, m.newAPIRequestInfoResolver(), apiVersions)
|
apiserver.InstallServiceErrorHandler(m.handlerContainer, m.newAPIRequestInfoResolver(), apiVersions)
|
||||||
|
|
||||||
// allGroups records all supported groups at /apis
|
// allGroups records all supported groups at /apis
|
||||||
allGroups := []api.APIGroup{}
|
allGroups := []unversioned.APIGroup{}
|
||||||
if m.exp {
|
if m.exp {
|
||||||
m.thirdPartyStorage = c.StorageDestinations.APIGroups["extensions"].Default
|
m.thirdPartyStorage = c.StorageDestinations.APIGroups["extensions"].Default
|
||||||
m.thirdPartyResources = map[string]*thirdpartyresourcedataetcd.REST{}
|
m.thirdPartyResources = map[string]*thirdpartyresourcedataetcd.REST{}
|
||||||
@ -633,7 +634,7 @@ func (m *Master) init(c *Config) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Fatalf("Unable to setup experimental api: %v", err)
|
glog.Fatalf("Unable to setup experimental api: %v", err)
|
||||||
}
|
}
|
||||||
expAPIVersions := []api.GroupVersion{
|
expAPIVersions := []unversioned.GroupVersion{
|
||||||
{
|
{
|
||||||
GroupVersion: expVersion.Version,
|
GroupVersion: expVersion.Version,
|
||||||
Version: apiutil.GetVersion(expVersion.Version),
|
Version: apiutil.GetVersion(expVersion.Version),
|
||||||
@ -643,10 +644,10 @@ func (m *Master) init(c *Config) {
|
|||||||
if !found {
|
if !found {
|
||||||
glog.Fatalf("Couldn't find storage version of group %v", g.Group)
|
glog.Fatalf("Couldn't find storage version of group %v", g.Group)
|
||||||
}
|
}
|
||||||
group := api.APIGroup{
|
group := unversioned.APIGroup{
|
||||||
Name: g.Group,
|
Name: g.Group,
|
||||||
Versions: expAPIVersions,
|
Versions: expAPIVersions,
|
||||||
PreferredVersion: api.GroupVersion{GroupVersion: storageVersion, Version: apiutil.GetVersion(storageVersion)},
|
PreferredVersion: unversioned.GroupVersion{GroupVersion: storageVersion, Version: apiutil.GetVersion(storageVersion)},
|
||||||
}
|
}
|
||||||
apiserver.AddGroupWebService(m.handlerContainer, c.APIGroupPrefix+"/"+latest.GroupOrDie("extensions").Group+"/", group)
|
apiserver.AddGroupWebService(m.handlerContainer, c.APIGroupPrefix+"/"+latest.GroupOrDie("extensions").Group+"/", group)
|
||||||
allGroups = append(allGroups, group)
|
allGroups = append(allGroups, group)
|
||||||
@ -958,13 +959,13 @@ func (m *Master) InstallThirdPartyResource(rsrc *expapi.ThirdPartyResource) erro
|
|||||||
glog.Fatalf("Unable to setup thirdparty api: %v", err)
|
glog.Fatalf("Unable to setup thirdparty api: %v", err)
|
||||||
}
|
}
|
||||||
path := makeThirdPartyPath(group)
|
path := makeThirdPartyPath(group)
|
||||||
groupVersion := api.GroupVersion{
|
groupVersion := unversioned.GroupVersion{
|
||||||
GroupVersion: group + "/" + rsrc.Versions[0].Name,
|
GroupVersion: group + "/" + rsrc.Versions[0].Name,
|
||||||
Version: rsrc.Versions[0].Name,
|
Version: rsrc.Versions[0].Name,
|
||||||
}
|
}
|
||||||
apiGroup := api.APIGroup{
|
apiGroup := unversioned.APIGroup{
|
||||||
Name: group,
|
Name: group,
|
||||||
Versions: []api.GroupVersion{groupVersion},
|
Versions: []unversioned.GroupVersion{groupVersion},
|
||||||
}
|
}
|
||||||
apiserver.AddGroupWebService(m.handlerContainer, path, apiGroup)
|
apiserver.AddGroupWebService(m.handlerContainer, path, apiGroup)
|
||||||
m.addThirdPartyResourceStorage(path, thirdparty.Storage[strings.ToLower(kind)+"s"].(*thirdpartyresourcedataetcd.REST))
|
m.addThirdPartyResourceStorage(path, thirdparty.Storage[strings.ToLower(kind)+"s"].(*thirdpartyresourcedataetcd.REST))
|
||||||
|
@ -292,7 +292,7 @@ func TestDefaultAPIGroupVersion(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TestExpapi verifies that the unexported exapi creates
|
// TestExpapi verifies that the unexported exapi creates
|
||||||
// the an experimental api APIGroupVersion.
|
// the an experimental unversioned.APIGroupVersion.
|
||||||
func TestExpapi(t *testing.T) {
|
func TestExpapi(t *testing.T) {
|
||||||
master, config, assert := setUp(t)
|
master, config, assert := setUp(t)
|
||||||
|
|
||||||
@ -367,20 +367,20 @@ func TestDiscoveryAtAPIS(t *testing.T) {
|
|||||||
|
|
||||||
assert.Equal(http.StatusOK, resp.StatusCode)
|
assert.Equal(http.StatusOK, resp.StatusCode)
|
||||||
|
|
||||||
groupList := api.APIGroupList{}
|
groupList := unversioned.APIGroupList{}
|
||||||
assert.NoError(decodeResponse(resp, &groupList))
|
assert.NoError(decodeResponse(resp, &groupList))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
expectGroupName := "extensions"
|
expectGroupName := "extensions"
|
||||||
expectVersions := []api.GroupVersion{
|
expectVersions := []unversioned.GroupVersion{
|
||||||
{
|
{
|
||||||
GroupVersion: testapi.Extensions.GroupAndVersion(),
|
GroupVersion: testapi.Extensions.GroupAndVersion(),
|
||||||
Version: testapi.Extensions.Version(),
|
Version: testapi.Extensions.Version(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
expectPreferredVersion := api.GroupVersion{
|
expectPreferredVersion := unversioned.GroupVersion{
|
||||||
GroupVersion: config.StorageVersions["extensions"],
|
GroupVersion: config.StorageVersions["extensions"],
|
||||||
Version: apiutil.GetVersion(config.StorageVersions["extensions"]),
|
Version: apiutil.GetVersion(config.StorageVersions["extensions"]),
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
apierrs "k8s.io/kubernetes/pkg/api/errors"
|
apierrs "k8s.io/kubernetes/pkg/api/errors"
|
||||||
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
client "k8s.io/kubernetes/pkg/client/unversioned"
|
client "k8s.io/kubernetes/pkg/client/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/fields"
|
"k8s.io/kubernetes/pkg/fields"
|
||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
@ -726,12 +727,12 @@ func checkOutput(output string, required [][]string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAPIVersions(apiEndpoint string) (*api.APIVersions, error) {
|
func getAPIVersions(apiEndpoint string) (*unversioned.APIVersions, error) {
|
||||||
body, err := curl(apiEndpoint)
|
body, err := curl(apiEndpoint)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("Failed http.Get of %s: %v", apiEndpoint, err)
|
return nil, fmt.Errorf("Failed http.Get of %s: %v", apiEndpoint, err)
|
||||||
}
|
}
|
||||||
var apiVersions api.APIVersions
|
var apiVersions unversioned.APIVersions
|
||||||
if err := json.Unmarshal([]byte(body), &apiVersions); err != nil {
|
if err := json.Unmarshal([]byte(body), &apiVersions); err != nil {
|
||||||
return nil, fmt.Errorf("Failed to parse /api output %s: %v", body, err)
|
return nil, fmt.Errorf("Failed to parse /api output %s: %v", body, err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user