Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
ef0d1ab8
Commit
ef0d1ab8
authored
Apr 26, 2018
by
David Eads
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove incorrect static restmapper
parent
12a62361
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
202 additions
and
293 deletions
+202
-293
BUILD
pkg/api/testapi/BUILD
+0
-1
testapi.go
pkg/api/testapi/testapi.go
+0
-49
BUILD
pkg/apis/core/install/BUILD
+0
-1
install.go
pkg/apis/core/install/install.go
+0
-12
install_test.go
pkg/apis/core/install/install_test.go
+0
-38
BUILD
pkg/apis/core/validation/BUILD
+0
-3
events.go
pkg/apis/core/validation/events.go
+0
-35
BUILD
pkg/controller/garbagecollector/BUILD
+1
-0
garbagecollector_test.go
pkg/controller/garbagecollector/garbagecollector_test.go
+7
-6
BUILD
pkg/controller/podautoscaler/BUILD
+1
-0
horizontal_test.go
pkg/controller/podautoscaler/horizontal_test.go
+3
-2
legacy_horizontal_test.go
pkg/controller/podautoscaler/legacy_horizontal_test.go
+2
-1
BUILD
pkg/controller/podautoscaler/metrics/BUILD
+1
-0
rest_metrics_client_test.go
...troller/podautoscaler/metrics/rest_metrics_client_test.go
+2
-1
replica_calculator_test.go
pkg/controller/podautoscaler/replica_calculator_test.go
+2
-1
BUILD
pkg/kubectl/cmd/testing/BUILD
+1
-0
fake.go
pkg/kubectl/cmd/testing/fake.go
+2
-1
BUILD
pkg/kubectl/cmd/util/BUILD
+1
-0
factory_object_mapping.go
pkg/kubectl/cmd/util/factory_object_mapping.go
+1
-5
factory_test.go
pkg/kubectl/cmd/util/factory_test.go
+2
-1
shortcut_restmapper_test.go
pkg/kubectl/cmd/util/shortcut_restmapper_test.go
+4
-3
BUILD
pkg/kubectl/explain/BUILD
+1
-0
explain_test.go
pkg/kubectl/explain/explain_test.go
+2
-1
BUILD
pkg/kubectl/resource/BUILD
+1
-0
builder_test.go
pkg/kubectl/resource/builder_test.go
+2
-1
install.go
pkg/kubectl/scheme/install.go
+0
-12
BUILD
plugin/pkg/admission/gc/BUILD
+1
-0
gc_admission_test.go
plugin/pkg/admission/gc/gc_admission_test.go
+2
-1
BUILD
staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD
+1
-0
BUILD
...src/k8s.io/apimachinery/pkg/api/meta/testrestmapper/BUILD
+30
-0
test_restmapper.go
...imachinery/pkg/api/meta/testrestmapper/test_restmapper.go
+132
-0
BUILD
staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD
+0
-1
BUILD
.../src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD
+0
-1
group_factory.go
.../apimachinery/pkg/apimachinery/announced/group_factory.go
+0
-33
BUILD
...src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD
+0
-2
registered.go
...io/apimachinery/pkg/apimachinery/registered/registered.go
+0
-69
types.go
staging/src/k8s.io/apimachinery/pkg/apimachinery/types.go
+0
-5
BUILD
staging/src/k8s.io/apiserver/pkg/server/BUILD
+0
-1
genericapiserver_test.go
.../src/k8s.io/apiserver/pkg/server/genericapiserver_test.go
+0
-6
No files found.
pkg/api/testapi/BUILD
View file @
ef0d1ab8
...
...
@@ -48,7 +48,6 @@ go_library(
"//pkg/apis/settings/install:go_default_library",
"//pkg/apis/storage:go_default_library",
"//pkg/apis/storage/install:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer:go_default_library",
...
...
pkg/api/testapi/testapi.go
View file @
ef0d1ab8
...
...
@@ -30,7 +30,6 @@ import (
"reflect"
"strings"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer/recognizer"
...
...
@@ -473,51 +472,3 @@ func (g TestGroup) SubResourcePath(resource, namespace, name, sub string) string
return
path
}
// RESTMapper returns RESTMapper in legacyscheme.Registry.
func
(
g
TestGroup
)
RESTMapper
()
meta
.
RESTMapper
{
return
legacyscheme
.
Registry
.
RESTMapper
()
}
// ExternalGroupVersions returns all external group versions allowed for the server.
func
ExternalGroupVersions
()
schema
.
GroupVersions
{
versions
:=
[]
schema
.
GroupVersion
{}
for
_
,
g
:=
range
Groups
{
gv
:=
g
.
GroupVersion
()
versions
=
append
(
versions
,
*
gv
)
}
return
versions
}
// GetCodecForObject gets codec based on runtime.Object
func
GetCodecForObject
(
obj
runtime
.
Object
)
(
runtime
.
Codec
,
error
)
{
kinds
,
_
,
err
:=
legacyscheme
.
Scheme
.
ObjectKinds
(
obj
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"unexpected encoding error: %v"
,
err
)
}
kind
:=
kinds
[
0
]
for
_
,
group
:=
range
Groups
{
if
group
.
GroupVersion
()
.
Group
!=
kind
.
Group
{
continue
}
if
legacyscheme
.
Scheme
.
Recognizes
(
kind
)
{
return
group
.
Codec
(),
nil
}
}
// Codec used for unversioned types
if
legacyscheme
.
Scheme
.
Recognizes
(
kind
)
{
serializer
,
ok
:=
runtime
.
SerializerInfoForMediaType
(
legacyscheme
.
Codecs
.
SupportedMediaTypes
(),
runtime
.
ContentTypeJSON
)
if
!
ok
{
return
nil
,
fmt
.
Errorf
(
"no serializer registered for json"
)
}
return
serializer
.
Serializer
,
nil
}
return
nil
,
fmt
.
Errorf
(
"unexpected kind: %v"
,
kind
)
}
// NewTestGroup creates a new TestGroup.
func
NewTestGroup
(
external
,
internal
schema
.
GroupVersion
,
internalTypes
map
[
string
]
reflect
.
Type
,
externalTypes
map
[
string
]
reflect
.
Type
)
TestGroup
{
return
TestGroup
{
external
,
internal
,
internalTypes
,
externalTypes
}
}
pkg/apis/core/install/BUILD
View file @
ef0d1ab8
...
...
@@ -31,7 +31,6 @@ go_test(
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
],
)
...
...
pkg/apis/core/install/install.go
View file @
ef0d1ab8
...
...
@@ -45,18 +45,6 @@ func Install(registry *registered.APIRegistrationManager, scheme *runtime.Scheme
"PersistentVolume"
,
"ComponentStatus"
,
),
IgnoredKinds
:
sets
.
NewString
(
"ListOptions"
,
"DeleteOptions"
,
"Status"
,
"PodLogOptions"
,
"PodExecOptions"
,
"PodAttachOptions"
,
"PodPortForwardOptions"
,
"PodProxyOptions"
,
"NodeProxyOptions"
,
"ServiceProxyOptions"
,
),
},
announced
.
VersionToSchemeFunc
{
v1
.
SchemeGroupVersion
.
Version
:
v1
.
AddToScheme
,
...
...
pkg/apis/core/install/install_test.go
View file @
ef0d1ab8
...
...
@@ -24,7 +24,6 @@ import (
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/api/legacyscheme"
internal
"k8s.io/kubernetes/pkg/apis/core"
)
...
...
@@ -66,43 +65,6 @@ func TestCodec(t *testing.T) {
}
}
func
TestRESTMapper
(
t
*
testing
.
T
)
{
gv
:=
schema
.
GroupVersion
{
Group
:
""
,
Version
:
"v1"
}
rcGVK
:=
gv
.
WithKind
(
"ReplicationController"
)
podTemplateGVK
:=
gv
.
WithKind
(
"PodTemplate"
)
if
gvk
,
err
:=
legacyscheme
.
Registry
.
RESTMapper
()
.
KindFor
(
internal
.
SchemeGroupVersion
.
WithResource
(
"replicationcontrollers"
));
err
!=
nil
||
gvk
!=
rcGVK
{
t
.
Errorf
(
"unexpected version mapping: %v %v"
,
gvk
,
err
)
}
if
m
,
err
:=
legacyscheme
.
Registry
.
GroupOrDie
(
internal
.
GroupName
)
.
RESTMapper
.
RESTMapping
(
podTemplateGVK
.
GroupKind
(),
""
);
err
!=
nil
||
m
.
GroupVersionKind
!=
podTemplateGVK
||
m
.
Resource
!=
"podtemplates"
{
t
.
Errorf
(
"unexpected version mapping: %#v %v"
,
m
,
err
)
}
for
_
,
version
:=
range
legacyscheme
.
Registry
.
GroupOrDie
(
internal
.
GroupName
)
.
GroupVersions
{
mapping
,
err
:=
legacyscheme
.
Registry
.
GroupOrDie
(
internal
.
GroupName
)
.
RESTMapper
.
RESTMapping
(
rcGVK
.
GroupKind
(),
version
.
Version
)
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
if
mapping
.
Resource
!=
"replicationControllers"
&&
mapping
.
Resource
!=
"replicationcontrollers"
{
t
.
Errorf
(
"incorrect resource name: %#v"
,
mapping
)
}
if
mapping
.
GroupVersionKind
.
GroupVersion
()
!=
version
{
t
.
Errorf
(
"incorrect version: %v"
,
mapping
)
}
rc
:=
&
internal
.
ReplicationController
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
}}
name
,
err
:=
meta
.
NewAccessor
()
.
Name
(
rc
)
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
if
name
!=
"foo"
{
t
.
Errorf
(
"bad name: %q"
,
name
)
}
}
}
func
TestUnversioned
(
t
*
testing
.
T
)
{
for
_
,
obj
:=
range
[]
runtime
.
Object
{
&
metav1
.
Status
{},
...
...
pkg/apis/core/validation/BUILD
View file @
ef0d1ab8
...
...
@@ -14,7 +14,6 @@ go_library(
importpath = "k8s.io/kubernetes/pkg/apis/core/validation",
visibility = ["//visibility:public"],
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/api/service:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/apis/core/helper:go_default_library",
...
...
@@ -29,13 +28,11 @@ go_library(
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
...
...
pkg/apis/core/validation/events.go
View file @
ef0d1ab8
...
...
@@ -20,12 +20,9 @@ import (
"fmt"
"time"
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/validation"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/apis/core"
)
...
...
@@ -90,40 +87,8 @@ func ValidateEvent(event *core.Event) field.ErrorList {
}
}
// For kinds we recognize, make sure InvolvedObject.Namespace is set for namespaced kinds
if
namespaced
,
err
:=
isNamespacedKind
(
event
.
InvolvedObject
.
Kind
,
event
.
InvolvedObject
.
APIVersion
);
err
==
nil
{
if
namespaced
&&
len
(
event
.
InvolvedObject
.
Namespace
)
==
0
{
allErrs
=
append
(
allErrs
,
field
.
Required
(
field
.
NewPath
(
"involvedObject"
,
"namespace"
),
fmt
.
Sprintf
(
"required for kind %s"
,
event
.
InvolvedObject
.
Kind
)))
}
if
!
namespaced
&&
len
(
event
.
InvolvedObject
.
Namespace
)
>
0
{
allErrs
=
append
(
allErrs
,
field
.
Invalid
(
field
.
NewPath
(
"involvedObject"
,
"namespace"
),
event
.
InvolvedObject
.
Namespace
,
fmt
.
Sprintf
(
"not allowed for kind %s"
,
event
.
InvolvedObject
.
Kind
)))
}
}
for
_
,
msg
:=
range
validation
.
IsDNS1123Subdomain
(
event
.
Namespace
)
{
allErrs
=
append
(
allErrs
,
field
.
Invalid
(
field
.
NewPath
(
"namespace"
),
event
.
Namespace
,
msg
))
}
return
allErrs
}
// Check whether the kind in groupVersion is scoped at the root of the api hierarchy
func
isNamespacedKind
(
kind
,
groupVersion
string
)
(
bool
,
error
)
{
gv
,
err
:=
schema
.
ParseGroupVersion
(
groupVersion
)
if
err
!=
nil
{
return
false
,
err
}
g
,
err
:=
legacyscheme
.
Registry
.
Group
(
gv
.
Group
)
if
err
!=
nil
{
return
false
,
err
}
restMapping
,
err
:=
g
.
RESTMapper
.
RESTMapping
(
schema
.
GroupKind
{
Group
:
gv
.
Group
,
Kind
:
kind
},
gv
.
Version
)
if
err
!=
nil
{
return
false
,
err
}
scopeName
:=
restMapping
.
Scope
.
Name
()
if
scopeName
==
meta
.
RESTScopeNameNamespace
{
return
true
,
nil
}
return
false
,
nil
}
pkg/controller/garbagecollector/BUILD
View file @
ef0d1ab8
...
...
@@ -58,6 +58,7 @@ go_test(
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
...
...
pkg/controller/garbagecollector/garbagecollector_test.go
View file @
ef0d1ab8
...
...
@@ -32,6 +32,7 @@ import (
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
...
...
@@ -60,7 +61,7 @@ func TestGarbageCollectorConstruction(t *testing.T) {
config
:=
&
restclient
.
Config
{}
config
.
ContentConfig
.
NegotiatedSerializer
=
serializer
.
DirectCodecFactory
{
CodecFactory
:
metaonly
.
NewMetadataCodecFactory
()}
tweakableRM
:=
meta
.
NewDefaultRESTMapper
(
nil
)
rm
:=
&
testRESTMapper
{
meta
.
MultiRESTMapper
{
tweakableRM
,
legacyscheme
.
Registry
.
RESTMapper
(
)}}
rm
:=
&
testRESTMapper
{
meta
.
MultiRESTMapper
{
tweakableRM
,
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
)}}
metaOnlyClientPool
:=
dynamic
.
NewClientPool
(
config
,
rm
,
dynamic
.
LegacyAPIPathResolverFunc
)
config
.
ContentConfig
.
NegotiatedSerializer
=
nil
clientPool
:=
dynamic
.
NewClientPool
(
config
,
rm
,
dynamic
.
LegacyAPIPathResolverFunc
)
...
...
@@ -190,15 +191,15 @@ type garbageCollector struct {
func
setupGC
(
t
*
testing
.
T
,
config
*
restclient
.
Config
)
garbageCollector
{
config
.
ContentConfig
.
NegotiatedSerializer
=
serializer
.
DirectCodecFactory
{
CodecFactory
:
metaonly
.
NewMetadataCodecFactory
()}
metaOnlyClientPool
:=
dynamic
.
NewClientPool
(
config
,
legacyscheme
.
Registry
.
RESTMapper
(
),
dynamic
.
LegacyAPIPathResolverFunc
)
metaOnlyClientPool
:=
dynamic
.
NewClientPool
(
config
,
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
dynamic
.
LegacyAPIPathResolverFunc
)
config
.
ContentConfig
.
NegotiatedSerializer
=
nil
clientPool
:=
dynamic
.
NewClientPool
(
config
,
legacyscheme
.
Registry
.
RESTMapper
(
),
dynamic
.
LegacyAPIPathResolverFunc
)
clientPool
:=
dynamic
.
NewClientPool
(
config
,
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
dynamic
.
LegacyAPIPathResolverFunc
)
podResource
:=
map
[
schema
.
GroupVersionResource
]
struct
{}{{
Version
:
"v1"
,
Resource
:
"pods"
}
:
{}}
client
:=
fake
.
NewSimpleClientset
()
sharedInformers
:=
informers
.
NewSharedInformerFactory
(
client
,
0
)
alwaysStarted
:=
make
(
chan
struct
{})
close
(
alwaysStarted
)
gc
,
err
:=
NewGarbageCollector
(
metaOnlyClientPool
,
clientPool
,
&
testRESTMapper
{
legacyscheme
.
Registry
.
RESTMapper
(
)},
podResource
,
ignoredResources
,
sharedInformers
,
alwaysStarted
)
gc
,
err
:=
NewGarbageCollector
(
metaOnlyClientPool
,
clientPool
,
&
testRESTMapper
{
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
)},
podResource
,
ignoredResources
,
sharedInformers
,
alwaysStarted
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
...
...
@@ -433,7 +434,7 @@ func TestGCListWatcher(t *testing.T) {
testHandler
:=
&
fakeActionHandler
{}
srv
,
clientConfig
:=
testServerAndClientConfig
(
testHandler
.
ServeHTTP
)
defer
srv
.
Close
()
clientPool
:=
dynamic
.
NewClientPool
(
clientConfig
,
legacyscheme
.
Registry
.
RESTMapper
(
),
dynamic
.
LegacyAPIPathResolverFunc
)
clientPool
:=
dynamic
.
NewClientPool
(
clientConfig
,
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
dynamic
.
LegacyAPIPathResolverFunc
)
podResource
:=
schema
.
GroupVersionResource
{
Version
:
"v1"
,
Resource
:
"pods"
}
client
,
err
:=
clientPool
.
ClientForGroupVersionResource
(
podResource
)
if
err
!=
nil
{
...
...
@@ -822,7 +823,7 @@ func TestGarbageCollectorSync(t *testing.T) {
t
.
Fatal
(
err
)
}
rm
:=
&
testRESTMapper
{
legacyscheme
.
Registry
.
RESTMapper
(
)}
rm
:=
&
testRESTMapper
{
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
)}
metaOnlyClientPool
:=
dynamic
.
NewClientPool
(
clientConfig
,
rm
,
dynamic
.
LegacyAPIPathResolverFunc
)
clientPool
:=
dynamic
.
NewClientPool
(
clientConfig
,
rm
,
dynamic
.
LegacyAPIPathResolverFunc
)
podResource
:=
map
[
schema
.
GroupVersionResource
]
struct
{}{
...
...
pkg/controller/podautoscaler/BUILD
View file @
ef0d1ab8
...
...
@@ -69,6 +69,7 @@ go_test(
"//vendor/k8s.io/api/autoscaling/v1:go_default_library",
"//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
...
...
pkg/controller/podautoscaler/horizontal_test.go
View file @
ef0d1ab8
...
...
@@ -27,6 +27,7 @@ import (
autoscalingv1
"k8s.io/api/autoscaling/v1"
autoscalingv2
"k8s.io/api/autoscaling/v2beta1"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
"k8s.io/apimachinery/pkg/api/resource"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
...
...
@@ -511,7 +512,7 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa
}
name
:=
getForAction
.
GetName
()
mapper
:=
legacyscheme
.
Registry
.
RESTMapper
(
)
mapper
:=
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
)
metrics
:=
&
cmapi
.
MetricValueList
{}
var
matchedTarget
*
autoscalingv2
.
MetricSpec
for
i
,
target
:=
range
tc
.
metricsTarget
{
...
...
@@ -649,7 +650,7 @@ func (tc *testCase) setupController(t *testing.T) (*HorizontalController, inform
eventClient
.
Core
(),
testScaleClient
,
testClient
.
Autoscaling
(),
legacyscheme
.
Registry
.
RESTMapper
(
),
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
replicaCalc
,
informerFactory
.
Autoscaling
()
.
V1
()
.
HorizontalPodAutoscalers
(),
controller
.
NoResyncPeriodFunc
(),
...
...
pkg/controller/podautoscaler/legacy_horizontal_test.go
View file @
ef0d1ab8
...
...
@@ -30,6 +30,7 @@ import (
autoscalingv1
"k8s.io/api/autoscaling/v1"
autoscalingv2
"k8s.io/api/autoscaling/v2beta1"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
"k8s.io/apimachinery/pkg/api/resource"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
...
...
@@ -497,7 +498,7 @@ func (tc *legacyTestCase) runTest(t *testing.T) {
eventClient
.
Core
(),
testScaleClient
,
testClient
.
Autoscaling
(),
legacyscheme
.
Registry
.
RESTMapper
(
),
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
replicaCalc
,
informerFactory
.
Autoscaling
()
.
V1
()
.
HorizontalPodAutoscalers
(),
controller
.
NoResyncPeriodFunc
(),
...
...
pkg/controller/podautoscaler/metrics/BUILD
View file @
ef0d1ab8
...
...
@@ -47,6 +47,7 @@ go_test(
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
...
...
pkg/controller/podautoscaler/metrics/rest_metrics_client_test.go
View file @
ef0d1ab8
...
...
@@ -23,6 +23,7 @@ import (
autoscalingapi
"k8s.io/api/autoscaling/v2beta1"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
"k8s.io/apimachinery/pkg/api/resource"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
...
...
@@ -153,7 +154,7 @@ func (tc *restClientTestCase) prepareTestClient(t *testing.T) (*metricsfake.Clie
return
true
,
&
metrics
,
nil
}
else
{
name
:=
getForAction
.
GetName
()
mapper
:=
legacyscheme
.
Registry
.
RESTMapper
(
)
mapper
:=
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
)
assert
.
NotNil
(
t
,
tc
.
singleObject
,
"should have only requested a single-object metric when we asked for metrics for a single object"
)
gk
:=
schema
.
FromAPIVersionAndKind
(
tc
.
singleObject
.
APIVersion
,
tc
.
singleObject
.
Kind
)
.
GroupKind
()
mapping
,
err
:=
mapper
.
RESTMapping
(
gk
)
...
...
pkg/controller/podautoscaler/replica_calculator_test.go
View file @
ef0d1ab8
...
...
@@ -24,6 +24,7 @@ import (
autoscalingv2
"k8s.io/api/autoscaling/v2beta1"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
"k8s.io/apimachinery/pkg/api/resource"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
...
...
@@ -221,7 +222,7 @@ func (tc *replicaCalcTestCase) prepareTestClient(t *testing.T) (*fake.Clientset,
return
true
,
&
metrics
,
nil
}
name
:=
getForAction
.
GetName
()
mapper
:=
legacyscheme
.
Registry
.
RESTMapper
(
)
mapper
:=
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
)
metrics
:=
&
cmapi
.
MetricValueList
{}
assert
.
NotNil
(
t
,
tc
.
metric
.
singleObject
,
"should have only requested a single-object metric when calling GetObjectMetricReplicas"
)
gk
:=
schema
.
FromAPIVersionAndKind
(
tc
.
metric
.
singleObject
.
APIVersion
,
tc
.
metric
.
singleObject
.
Kind
)
.
GroupKind
()
...
...
pkg/kubectl/cmd/testing/BUILD
View file @
ef0d1ab8
...
...
@@ -22,6 +22,7 @@ go_library(
"//pkg/printers:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
...
pkg/kubectl/cmd/testing/fake.go
View file @
ef0d1ab8
...
...
@@ -28,6 +28,7 @@ import (
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
...
...
@@ -433,7 +434,7 @@ func (f *TestFactory) RESTMapper() meta.RESTMapper {
mapper
=
meta
.
FirstHitRESTMapper
{
MultiRESTMapper
:
meta
.
MultiRESTMapper
{
mapper
,
legacyscheme
.
Registry
.
RESTMapper
(
),
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
},
}
...
...
pkg/kubectl/cmd/util/BUILD
View file @
ef0d1ab8
...
...
@@ -104,6 +104,7 @@ go_test(
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
...
pkg/kubectl/cmd/util/factory_object_mapping.go
View file @
ef0d1ab8
...
...
@@ -27,8 +27,6 @@ import (
"sync"
"time"
"github.com/golang/glog"
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
...
...
@@ -37,7 +35,6 @@ import (
"k8s.io/client-go/discovery"
"k8s.io/client-go/dynamic"
restclient
"k8s.io/client-go/rest"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/apis/apps"
"k8s.io/kubernetes/pkg/apis/batch"
api
"k8s.io/kubernetes/pkg/apis/core"
...
...
@@ -79,8 +76,7 @@ func NewObjectMappingFactory(clientAccessFactory ClientAccessFactory) ObjectMapp
func
(
f
*
ring1Factory
)
restMapper
()
(
meta
.
RESTMapper
,
error
)
{
discoveryClient
,
err
:=
f
.
clientAccessFactory
.
DiscoveryClient
()
if
err
!=
nil
{
glog
.
V
(
3
)
.
Infof
(
"Unable to get a discovery client to find server resources, falling back to hardcoded types: %v"
,
err
)
return
legacyscheme
.
Registry
.
RESTMapper
(),
nil
return
nil
,
err
}
// allow conversion between typed and unstructured objects
...
...
pkg/kubectl/cmd/util/factory_test.go
View file @
ef0d1ab8
...
...
@@ -26,6 +26,7 @@ import (
"k8s.io/api/core/v1"
apiequality
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime"
...
...
@@ -470,7 +471,7 @@ func TestDiscoveryReplaceAliases(t *testing.T) {
}
ds
:=
&
fakeDiscoveryClient
{}
mapper
:=
NewShortcutExpander
(
test
api
.
Default
.
RESTMapper
(
),
ds
)
mapper
:=
NewShortcutExpander
(
test
restmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
ds
)
b
:=
resource
.
NewBuilder
(
&
resource
.
Mapper
{
RESTMapper
:
mapper
,
...
...
pkg/kubectl/cmd/util/shortcut_restmapper_test.go
View file @
ef0d1ab8
...
...
@@ -19,9 +19,10 @@ package util
import
(
"testing"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/api/
testapi
"
"k8s.io/kubernetes/pkg/api/
legacyscheme
"
)
func
TestReplaceAliases
(
t
*
testing
.
T
)
{
...
...
@@ -126,7 +127,7 @@ func TestReplaceAliases(t *testing.T) {
}
ds
:=
&
fakeDiscoveryClient
{}
mapper
:=
NewShortcutExpander
(
test
api
.
Default
.
RESTMapper
(
),
ds
)
mapper
:=
NewShortcutExpander
(
test
restmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
ds
)
for
_
,
test
:=
range
tests
{
ds
.
serverResourcesHandler
=
func
()
([]
*
metav1
.
APIResourceList
,
error
)
{
...
...
@@ -178,7 +179,7 @@ func TestKindFor(t *testing.T) {
}
ds
:=
&
fakeDiscoveryClient
{}
mapper
:=
NewShortcutExpander
(
test
api
.
Default
.
RESTMapper
(
),
ds
)
mapper
:=
NewShortcutExpander
(
test
restmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
ds
)
for
i
,
test
:=
range
tests
{
ds
.
serverResourcesHandler
=
func
()
([]
*
metav1
.
APIResourceList
,
error
)
{
...
...
pkg/kubectl/explain/BUILD
View file @
ef0d1ab8
...
...
@@ -51,6 +51,7 @@ go_test(
deps = [
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
],
)
pkg/kubectl/explain/explain_test.go
View file @
ef0d1ab8
...
...
@@ -20,6 +20,7 @@ import (
"reflect"
"testing"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
"k8s.io/kubernetes/pkg/kubectl/scheme"
)
...
...
@@ -56,7 +57,7 @@ func TestSplitAndParseResourceRequest(t *testing.T) {
},
}
mapper
:=
scheme
.
Registry
.
RESTMapper
(
scheme
.
Versions
...
)
mapper
:=
testrestmapper
.
TestOnlyStaticRESTMapper
(
scheme
.
Registry
,
scheme
.
Scheme
,
scheme
.
Versions
...
)
for
_
,
test
:=
range
tests
{
gotInResource
,
gotFieldsPath
,
err
:=
SplitAndParseResourceRequest
(
test
.
inresource
,
mapper
)
if
err
!=
nil
{
...
...
pkg/kubectl/resource/BUILD
View file @
ef0d1ab8
...
...
@@ -65,6 +65,7 @@ go_test(
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
...
...
pkg/kubectl/resource/builder_test.go
View file @
ef0d1ab8
...
...
@@ -34,6 +34,7 @@ import (
"k8s.io/api/core/v1"
apiequality
"k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
"k8s.io/apimachinery/pkg/api/resource"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
...
...
@@ -58,7 +59,7 @@ var (
corev1GV
=
schema
.
GroupVersion
{
Version
:
"v1"
}
corev1Codec
=
scheme
.
Codecs
.
CodecForVersions
(
scheme
.
Codecs
.
LegacyCodec
(
corev1GV
),
scheme
.
Codecs
.
UniversalDecoder
(
corev1GV
),
corev1GV
,
corev1GV
)
metaAccessor
=
meta
.
NewAccessor
()
restmapper
=
scheme
.
Registry
.
RESTMapper
(
)
restmapper
=
testrestmapper
.
TestOnlyStaticRESTMapper
(
scheme
.
Registry
,
scheme
.
Scheme
)
)
func
stringBody
(
body
string
)
io
.
ReadCloser
{
...
...
pkg/kubectl/scheme/install.go
View file @
ef0d1ab8
...
...
@@ -71,18 +71,6 @@ func init() {
"PersistentVolume"
,
"ComponentStatus"
,
),
IgnoredKinds
:
sets
.
NewString
(
"ListOptions"
,
"DeleteOptions"
,
"Status"
,
"PodLogOptions"
,
"PodExecOptions"
,
"PodAttachOptions"
,
"PodPortForwardOptions"
,
"PodProxyOptions"
,
"NodeProxyOptions"
,
"ServiceProxyOptions"
,
),
},
announced
.
VersionToSchemeFunc
{
corev1
.
SchemeGroupVersion
.
Version
:
corev1
.
AddToScheme
,
...
...
plugin/pkg/admission/gc/BUILD
View file @
ef0d1ab8
...
...
@@ -30,6 +30,7 @@ go_test(
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/kubeapiserver/admission:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
...
...
plugin/pkg/admission/gc/gc_admission_test.go
View file @
ef0d1ab8
...
...
@@ -20,6 +20,7 @@ import (
"strings"
"testing"
"k8s.io/apimachinery/pkg/api/meta/testrestmapper"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
...
...
@@ -87,7 +88,7 @@ func newGCPermissionsEnforcement() (*gcPermissionsEnforcement, error) {
}
genericPluginInitializer
:=
initializer
.
New
(
nil
,
nil
,
fakeAuthorizer
{},
nil
)
pluginInitializer
:=
kubeadmission
.
NewPluginInitializer
(
nil
,
nil
,
nil
,
legacyscheme
.
Registry
.
RESTMapper
(
),
nil
)
pluginInitializer
:=
kubeadmission
.
NewPluginInitializer
(
nil
,
nil
,
nil
,
testrestmapper
.
TestOnlyStaticRESTMapper
(
legacyscheme
.
Registry
,
legacyscheme
.
Scheme
),
nil
)
initializersChain
:=
admission
.
PluginInitializers
{}
initializersChain
=
append
(
initializersChain
,
genericPluginInitializer
)
initializersChain
=
append
(
initializersChain
,
pluginInitializer
)
...
...
staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD
View file @
ef0d1ab8
...
...
@@ -65,6 +65,7 @@ filegroup(
srcs = [
":package-srcs",
"//staging/src/k8s.io/apimachinery/pkg/api/meta/table:all-srcs",
"//staging/src/k8s.io/apimachinery/pkg/api/meta/testrestmapper:all-srcs",
],
tags = ["automanaged"],
)
staging/src/k8s.io/apimachinery/pkg/api/meta/testrestmapper/BUILD
0 → 100644
View file @
ef0d1ab8
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["test_restmapper.go"],
importpath = "k8s.io/apimachinery/pkg/api/meta/testrestmapper",
visibility = ["//visibility:public"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
staging/src/k8s.io/apimachinery/pkg/api/meta/testrestmapper/test_restmapper.go
0 → 100644
View file @
ef0d1ab8
/*
Copyright 2018 The Kubernetes Authors.
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
testrestmapper
import
(
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/apimachinery"
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/sets"
)
// TestOnlyStaticRESTMapper returns a union RESTMapper of all known types with priorities chosen in the following order:
// 1. legacy kube group preferred version, extensions preferred version, metrics perferred version, legacy
// kube any version, extensions any version, metrics any version, all other groups alphabetical preferred version,
// all other groups alphabetical.
func
TestOnlyStaticRESTMapper
(
m
*
registered
.
APIRegistrationManager
,
scheme
*
runtime
.
Scheme
,
versionPatterns
...
schema
.
GroupVersion
)
meta
.
RESTMapper
{
unionMapper
:=
meta
.
MultiRESTMapper
{}
unionedGroups
:=
sets
.
NewString
()
for
_
,
enabledVersion
:=
range
m
.
RegisteredGroupVersions
()
{
if
!
unionedGroups
.
Has
(
enabledVersion
.
Group
)
{
unionedGroups
.
Insert
(
enabledVersion
.
Group
)
groupMeta
:=
m
.
GroupOrDie
(
enabledVersion
.
Group
)
if
groupMeta
!=
nil
{
unionMapper
=
append
(
unionMapper
,
newRESTMapper
(
scheme
,
groupMeta
))
}
}
}
if
len
(
versionPatterns
)
!=
0
{
resourcePriority
:=
[]
schema
.
GroupVersionResource
{}
kindPriority
:=
[]
schema
.
GroupVersionKind
{}
for
_
,
versionPriority
:=
range
versionPatterns
{
resourcePriority
=
append
(
resourcePriority
,
versionPriority
.
WithResource
(
meta
.
AnyResource
))
kindPriority
=
append
(
kindPriority
,
versionPriority
.
WithKind
(
meta
.
AnyKind
))
}
return
meta
.
PriorityRESTMapper
{
Delegate
:
unionMapper
,
ResourcePriority
:
resourcePriority
,
KindPriority
:
kindPriority
}
}
prioritizedGroups
:=
[]
string
{
""
,
"extensions"
,
"metrics"
}
resourcePriority
,
kindPriority
:=
prioritiesForGroups
(
m
,
prioritizedGroups
...
)
prioritizedGroupsSet
:=
sets
.
NewString
(
prioritizedGroups
...
)
remainingGroups
:=
sets
.
String
{}
for
_
,
enabledVersion
:=
range
m
.
RegisteredGroupVersions
()
{
if
!
prioritizedGroupsSet
.
Has
(
enabledVersion
.
Group
)
{
remainingGroups
.
Insert
(
enabledVersion
.
Group
)
}
}
remainingResourcePriority
,
remainingKindPriority
:=
prioritiesForGroups
(
m
,
remainingGroups
.
List
()
...
)
resourcePriority
=
append
(
resourcePriority
,
remainingResourcePriority
...
)
kindPriority
=
append
(
kindPriority
,
remainingKindPriority
...
)
return
meta
.
PriorityRESTMapper
{
Delegate
:
unionMapper
,
ResourcePriority
:
resourcePriority
,
KindPriority
:
kindPriority
}
}
// prioritiesForGroups returns the resource and kind priorities for a PriorityRESTMapper, preferring the preferred version of each group first,
// then any non-preferred version of the group second.
func
prioritiesForGroups
(
m
*
registered
.
APIRegistrationManager
,
groups
...
string
)
([]
schema
.
GroupVersionResource
,
[]
schema
.
GroupVersionKind
)
{
resourcePriority
:=
[]
schema
.
GroupVersionResource
{}
kindPriority
:=
[]
schema
.
GroupVersionKind
{}
for
_
,
group
:=
range
groups
{
availableVersions
:=
m
.
RegisteredVersionsForGroup
(
group
)
if
len
(
availableVersions
)
>
0
{
resourcePriority
=
append
(
resourcePriority
,
availableVersions
[
0
]
.
WithResource
(
meta
.
AnyResource
))
kindPriority
=
append
(
kindPriority
,
availableVersions
[
0
]
.
WithKind
(
meta
.
AnyKind
))
}
}
for
_
,
group
:=
range
groups
{
resourcePriority
=
append
(
resourcePriority
,
schema
.
GroupVersionResource
{
Group
:
group
,
Version
:
meta
.
AnyVersion
,
Resource
:
meta
.
AnyResource
})
kindPriority
=
append
(
kindPriority
,
schema
.
GroupVersionKind
{
Group
:
group
,
Version
:
meta
.
AnyVersion
,
Kind
:
meta
.
AnyKind
})
}
return
resourcePriority
,
kindPriority
}
func
newRESTMapper
(
scheme
*
runtime
.
Scheme
,
groupMeta
*
apimachinery
.
GroupMeta
)
meta
.
RESTMapper
{
// the list of kinds that are scoped at the root of the api hierarchy
// if a kind is not enumerated here, it is assumed to have a namespace scope
rootScoped
:=
sets
.
NewString
()
if
groupMeta
.
RootScopedKinds
!=
nil
{
rootScoped
=
groupMeta
.
RootScopedKinds
}
mapper
:=
meta
.
NewDefaultRESTMapper
(
groupMeta
.
GroupVersions
)
for
_
,
gv
:=
range
groupMeta
.
GroupVersions
{
for
kind
:=
range
scheme
.
KnownTypes
(
gv
)
{
if
ignoredKinds
.
Has
(
kind
)
{
continue
}
scope
:=
meta
.
RESTScopeNamespace
if
rootScoped
.
Has
(
kind
)
{
scope
=
meta
.
RESTScopeRoot
}
mapper
.
Add
(
gv
.
WithKind
(
kind
),
scope
)
}
}
return
mapper
}
// hardcoded is good enough for the test we're running
var
ignoredKinds
=
sets
.
NewString
(
"ListOptions"
,
"DeleteOptions"
,
"Status"
,
"PodLogOptions"
,
"PodExecOptions"
,
"PodAttachOptions"
,
"PodPortForwardOptions"
,
"PodProxyOptions"
,
"NodeProxyOptions"
,
"ServiceProxyOptions"
,
)
staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD
View file @
ef0d1ab8
...
...
@@ -13,7 +13,6 @@ go_library(
],
importpath = "k8s.io/apimachinery/pkg/apimachinery",
deps = [
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
],
...
...
staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD
View file @
ef0d1ab8
...
...
@@ -11,7 +11,6 @@ go_library(
importpath = "k8s.io/apimachinery/pkg/apimachinery/announced",
deps = [
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
...
staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/group_factory.go
View file @
ef0d1ab8
...
...
@@ -21,7 +21,6 @@ import (
"github.com/golang/glog"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/apimachinery"
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime"
...
...
@@ -49,7 +48,6 @@ type GroupMetaFactoryArgs struct {
VersionPreferenceOrder
[]
string
// RootScopedKinds are resources that are not namespaced.
RootScopedKinds
sets
.
String
// nil is allowed
IgnoredKinds
sets
.
String
// nil is allowed
// May be nil if there are no internal objects.
AddInternalObjectsToScheme
SchemeFunc
...
...
@@ -154,40 +152,9 @@ func (gmf *GroupMetaFactory) Register(m *registered.APIRegistrationManager, sche
GroupVersions
:
externalVersions
,
RootScopedKinds
:
gmf
.
GroupArgs
.
RootScopedKinds
,
}
groupMeta
.
RESTMapper
=
gmf
.
newRESTMapper
(
scheme
,
externalVersions
,
groupMeta
)
if
err
:=
m
.
RegisterGroup
(
*
groupMeta
);
err
!=
nil
{
return
err
}
return
nil
}
func
(
gmf
*
GroupMetaFactory
)
newRESTMapper
(
scheme
*
runtime
.
Scheme
,
externalVersions
[]
schema
.
GroupVersion
,
groupMeta
*
apimachinery
.
GroupMeta
)
meta
.
RESTMapper
{
// the list of kinds that are scoped at the root of the api hierarchy
// if a kind is not enumerated here, it is assumed to have a namespace scope
rootScoped
:=
sets
.
NewString
()
if
gmf
.
GroupArgs
.
RootScopedKinds
!=
nil
{
rootScoped
=
gmf
.
GroupArgs
.
RootScopedKinds
}
ignoredKinds
:=
sets
.
NewString
()
if
gmf
.
GroupArgs
.
IgnoredKinds
!=
nil
{
ignoredKinds
=
gmf
.
GroupArgs
.
IgnoredKinds
}
mapper
:=
meta
.
NewDefaultRESTMapper
(
externalVersions
)
for
_
,
gv
:=
range
externalVersions
{
for
kind
:=
range
scheme
.
KnownTypes
(
gv
)
{
if
ignoredKinds
.
Has
(
kind
)
{
continue
}
scope
:=
meta
.
RESTScopeNamespace
if
rootScoped
.
Has
(
kind
)
{
scope
=
meta
.
RESTScopeRoot
}
mapper
.
Add
(
gv
.
WithKind
(
kind
),
scope
)
}
}
return
mapper
}
staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD
View file @
ef0d1ab8
...
...
@@ -21,10 +21,8 @@ go_library(
srcs = ["registered.go"],
importpath = "k8s.io/apimachinery/pkg/apimachinery/registered",
deps = [
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
],
)
...
...
staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/registered.go
View file @
ef0d1ab8
...
...
@@ -22,10 +22,8 @@ import (
"sort"
"strings"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/apimachinery"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/sets"
)
// APIRegistrationManager provides the concept of what API groups are enabled.
...
...
@@ -140,73 +138,6 @@ func (m *APIRegistrationManager) GroupOrDie(group string) *apimachinery.GroupMet
return
&
groupMetaCopy
}
// RESTMapper returns a union RESTMapper of all known types with priorities chosen in the following order:
// 1. legacy kube group preferred version, extensions preferred version, metrics perferred version, legacy
// kube any version, extensions any version, metrics any version, all other groups alphabetical preferred version,
// all other groups alphabetical.
func
(
m
*
APIRegistrationManager
)
RESTMapper
(
versionPatterns
...
schema
.
GroupVersion
)
meta
.
RESTMapper
{
unionMapper
:=
meta
.
MultiRESTMapper
{}
unionedGroups
:=
sets
.
NewString
()
for
enabledVersion
:=
range
m
.
registeredVersions
{
if
!
unionedGroups
.
Has
(
enabledVersion
.
Group
)
{
unionedGroups
.
Insert
(
enabledVersion
.
Group
)
groupMeta
:=
m
.
groupMetaMap
[
enabledVersion
.
Group
]
if
groupMeta
!=
nil
{
unionMapper
=
append
(
unionMapper
,
groupMeta
.
RESTMapper
)
}
}
}
if
len
(
versionPatterns
)
!=
0
{
resourcePriority
:=
[]
schema
.
GroupVersionResource
{}
kindPriority
:=
[]
schema
.
GroupVersionKind
{}
for
_
,
versionPriority
:=
range
versionPatterns
{
resourcePriority
=
append
(
resourcePriority
,
versionPriority
.
WithResource
(
meta
.
AnyResource
))
kindPriority
=
append
(
kindPriority
,
versionPriority
.
WithKind
(
meta
.
AnyKind
))
}
return
meta
.
PriorityRESTMapper
{
Delegate
:
unionMapper
,
ResourcePriority
:
resourcePriority
,
KindPriority
:
kindPriority
}
}
prioritizedGroups
:=
[]
string
{
""
,
"extensions"
,
"metrics"
}
resourcePriority
,
kindPriority
:=
m
.
prioritiesForGroups
(
prioritizedGroups
...
)
prioritizedGroupsSet
:=
sets
.
NewString
(
prioritizedGroups
...
)
remainingGroups
:=
sets
.
String
{}
for
enabledVersion
:=
range
m
.
registeredVersions
{
if
!
prioritizedGroupsSet
.
Has
(
enabledVersion
.
Group
)
{
remainingGroups
.
Insert
(
enabledVersion
.
Group
)
}
}
remainingResourcePriority
,
remainingKindPriority
:=
m
.
prioritiesForGroups
(
remainingGroups
.
List
()
...
)
resourcePriority
=
append
(
resourcePriority
,
remainingResourcePriority
...
)
kindPriority
=
append
(
kindPriority
,
remainingKindPriority
...
)
return
meta
.
PriorityRESTMapper
{
Delegate
:
unionMapper
,
ResourcePriority
:
resourcePriority
,
KindPriority
:
kindPriority
}
}
// prioritiesForGroups returns the resource and kind priorities for a PriorityRESTMapper, preferring the preferred version of each group first,
// then any non-preferred version of the group second.
func
(
m
*
APIRegistrationManager
)
prioritiesForGroups
(
groups
...
string
)
([]
schema
.
GroupVersionResource
,
[]
schema
.
GroupVersionKind
)
{
resourcePriority
:=
[]
schema
.
GroupVersionResource
{}
kindPriority
:=
[]
schema
.
GroupVersionKind
{}
for
_
,
group
:=
range
groups
{
availableVersions
:=
m
.
RegisteredVersionsForGroup
(
group
)
if
len
(
availableVersions
)
>
0
{
resourcePriority
=
append
(
resourcePriority
,
availableVersions
[
0
]
.
WithResource
(
meta
.
AnyResource
))
kindPriority
=
append
(
kindPriority
,
availableVersions
[
0
]
.
WithKind
(
meta
.
AnyKind
))
}
}
for
_
,
group
:=
range
groups
{
resourcePriority
=
append
(
resourcePriority
,
schema
.
GroupVersionResource
{
Group
:
group
,
Version
:
meta
.
AnyVersion
,
Resource
:
meta
.
AnyResource
})
kindPriority
=
append
(
kindPriority
,
schema
.
GroupVersionKind
{
Group
:
group
,
Version
:
meta
.
AnyVersion
,
Kind
:
meta
.
AnyKind
})
}
return
resourcePriority
,
kindPriority
}
// AllPreferredGroupVersions returns the preferred versions of all registered
// groups in the form of "group1/version1,group2/version2,..."
func
(
m
*
APIRegistrationManager
)
AllPreferredGroupVersions
()
string
{
...
...
staging/src/k8s.io/apimachinery/pkg/apimachinery/types.go
View file @
ef0d1ab8
...
...
@@ -17,7 +17,6 @@ limitations under the License.
package
apimachinery
import
(
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/util/sets"
)
...
...
@@ -28,8 +27,4 @@ type GroupMeta struct {
GroupVersions
[]
schema
.
GroupVersion
RootScopedKinds
sets
.
String
// RESTMapper provides the default mapping between REST paths and the objects declared in a Scheme and all known
// versions.
RESTMapper
meta
.
RESTMapper
}
staging/src/k8s.io/apiserver/pkg/server/BUILD
View file @
ef0d1ab8
...
...
@@ -16,7 +16,6 @@ go_test(
embed = [":go_default_library"],
deps = [
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apimachinery:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
...
staging/src/k8s.io/apiserver/pkg/server/genericapiserver_test.go
View file @
ef0d1ab8
...
...
@@ -34,7 +34,6 @@ import (
// "github.com/go-openapi/spec"
"github.com/stretchr/testify/assert"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/apimachinery"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
...
...
@@ -153,13 +152,8 @@ func TestInstallAPIGroups(t *testing.T) {
scheme
.
AddKnownTypes
(
v1GroupVersion
,
&
metav1
.
Status
{})
metav1
.
AddToGroupVersion
(
scheme
,
v1GroupVersion
)
mapper
:=
meta
.
NewDefaultRESTMapper
([]
schema
.
GroupVersion
{
gv
})
for
kind
:=
range
scheme
.
KnownTypes
(
gv
)
{
mapper
.
Add
(
gv
.
WithKind
(
kind
),
meta
.
RESTScopeNamespace
)
}
groupMeta
:=
apimachinery
.
GroupMeta
{
GroupVersions
:
[]
schema
.
GroupVersion
{
gv
},
RESTMapper
:
mapper
,
}
return
APIGroupInfo
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment