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
d9f07925
Commit
d9f07925
authored
Jun 20, 2016
by
Chao Xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
let dynamic client handle non-registered ListOptions;
register ListOptions for apis/policy
parent
554b7010
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
50 additions
and
8 deletions
+50
-8
serialization_test.go
pkg/api/serialization_test.go
+14
-0
register.go
pkg/apis/apps/v1alpha1/register.go
+1
-0
register.go
pkg/apis/autoscaling/v1/register.go
+1
-0
register.go
pkg/apis/batch/v1/register.go
+1
-0
register.go
pkg/apis/batch/v2alpha1/register.go
+1
-0
register.go
pkg/apis/policy/v1alpha1/register.go
+3
-0
client.go
pkg/client/typed/dynamic/client.go
+23
-0
garbagecollector.go
pkg/controller/garbagecollector/garbagecollector.go
+6
-8
No files found.
pkg/api/serialization_test.go
View file @
d9f07925
...
@@ -174,6 +174,20 @@ var nonRoundTrippableTypes = sets.NewString(
...
@@ -174,6 +174,20 @@ var nonRoundTrippableTypes = sets.NewString(
"WatchEvent"
,
"WatchEvent"
,
)
)
var
commonKinds
=
[]
string
{
"ListOptions"
,
"DeleteOptions"
}
// verify all external group/versions have the common kinds like the ListOptions, DeleteOptions are registered.
func
TestCommonKindsRegistered
(
t
*
testing
.
T
)
{
for
_
,
kind
:=
range
commonKinds
{
for
_
,
group
:=
range
testapi
.
Groups
{
gv
:=
group
.
GroupVersion
()
if
_
,
err
:=
api
.
Scheme
.
New
(
gv
.
WithKind
(
kind
));
err
!=
nil
{
t
.
Error
(
err
)
}
}
}
}
var
nonInternalRoundTrippableTypes
=
sets
.
NewString
(
"List"
,
"ListOptions"
,
"ExportOptions"
)
var
nonInternalRoundTrippableTypes
=
sets
.
NewString
(
"List"
,
"ListOptions"
,
"ExportOptions"
)
var
nonRoundTrippableTypesByVersion
=
map
[
string
][]
string
{}
var
nonRoundTrippableTypesByVersion
=
map
[
string
][]
string
{}
...
...
pkg/apis/apps/v1alpha1/register.go
View file @
d9f07925
...
@@ -41,6 +41,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
...
@@ -41,6 +41,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
&
PetSet
{},
&
PetSet
{},
&
PetSetList
{},
&
PetSetList
{},
&
v1
.
ListOptions
{},
&
v1
.
ListOptions
{},
&
v1
.
DeleteOptions
{},
)
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
}
}
...
...
pkg/apis/autoscaling/v1/register.go
View file @
d9f07925
...
@@ -41,6 +41,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
...
@@ -41,6 +41,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
&
HorizontalPodAutoscalerList
{},
&
HorizontalPodAutoscalerList
{},
&
Scale
{},
&
Scale
{},
&
v1
.
ListOptions
{},
&
v1
.
ListOptions
{},
&
v1
.
DeleteOptions
{},
)
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
}
}
pkg/apis/batch/v1/register.go
View file @
d9f07925
...
@@ -41,6 +41,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
...
@@ -41,6 +41,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
&
Job
{},
&
Job
{},
&
JobList
{},
&
JobList
{},
&
v1
.
ListOptions
{},
&
v1
.
ListOptions
{},
&
v1
.
DeleteOptions
{},
)
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
}
}
pkg/apis/batch/v2alpha1/register.go
View file @
d9f07925
...
@@ -44,6 +44,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
...
@@ -44,6 +44,7 @@ func addKnownTypes(scheme *runtime.Scheme) {
&
ScheduledJob
{},
&
ScheduledJob
{},
&
ScheduledJobList
{},
&
ScheduledJobList
{},
&
v1
.
ListOptions
{},
&
v1
.
ListOptions
{},
&
v1
.
DeleteOptions
{},
)
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
}
}
pkg/apis/policy/v1alpha1/register.go
View file @
d9f07925
...
@@ -18,6 +18,7 @@ package v1alpha1
...
@@ -18,6 +18,7 @@ package v1alpha1
import
(
import
(
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
versionedwatch
"k8s.io/kubernetes/pkg/watch/versioned"
versionedwatch
"k8s.io/kubernetes/pkg/watch/versioned"
)
)
...
@@ -41,6 +42,8 @@ func addKnownTypes(scheme *runtime.Scheme) {
...
@@ -41,6 +42,8 @@ func addKnownTypes(scheme *runtime.Scheme) {
scheme
.
AddKnownTypes
(
SchemeGroupVersion
,
scheme
.
AddKnownTypes
(
SchemeGroupVersion
,
&
PodDisruptionBudget
{},
&
PodDisruptionBudget
{},
&
PodDisruptionBudgetList
{},
&
PodDisruptionBudgetList
{},
&
v1
.
ListOptions
{},
&
v1
.
DeleteOptions
{},
)
)
// Add the watch version that applies
// Add the watch version that applies
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
versionedwatch
.
AddToGroupVersion
(
scheme
,
SchemeGroupVersion
)
...
...
pkg/client/typed/dynamic/client.go
View file @
d9f07925
...
@@ -270,3 +270,26 @@ func (parameterCodec) DecodeParameters(parameters url.Values, from unversioned.G
...
@@ -270,3 +270,26 @@ func (parameterCodec) DecodeParameters(parameters url.Values, from unversioned.G
}
}
var
defaultParameterEncoder
runtime
.
ParameterCodec
=
parameterCodec
{}
var
defaultParameterEncoder
runtime
.
ParameterCodec
=
parameterCodec
{}
type
versionedParameterEncoderWithV1Fallback
struct
{}
func
(
versionedParameterEncoderWithV1Fallback
)
EncodeParameters
(
obj
runtime
.
Object
,
to
unversioned
.
GroupVersion
)
(
url
.
Values
,
error
)
{
ret
,
err
:=
api
.
ParameterCodec
.
EncodeParameters
(
obj
,
to
)
if
err
!=
nil
&&
runtime
.
IsNotRegisteredError
(
err
)
{
// fallback to v1
return
api
.
ParameterCodec
.
EncodeParameters
(
obj
,
v1
.
SchemeGroupVersion
)
}
return
ret
,
err
}
func
(
versionedParameterEncoderWithV1Fallback
)
DecodeParameters
(
parameters
url
.
Values
,
from
unversioned
.
GroupVersion
,
into
runtime
.
Object
)
error
{
return
errors
.
New
(
"DecodeParameters not implemented on versionedParameterEncoderWithV1Fallback"
)
}
// VersionedParameterEncoderWithV1Fallback is useful for encoding query
// parameters for thirdparty resources. It tries to convert object to the
// specified version before converting it to query parameters, and falls back to
// converting to v1 if the object is not registered in the specified version.
// For the record, currently API server always treats query parameters sent to a
// thirdparty resource endpoint as v1.
var
VersionedParameterEncoderWithV1Fallback
runtime
.
ParameterCodec
=
versionedParameterEncoderWithV1Fallback
{}
pkg/controller/garbagecollector/garbagecollector.go
View file @
d9f07925
...
@@ -443,11 +443,9 @@ func gcListWatcher(client *dynamic.Client, resource unversioned.GroupVersionReso
...
@@ -443,11 +443,9 @@ func gcListWatcher(client *dynamic.Client, resource unversioned.GroupVersionReso
// namespaces if it's namespace scoped, so leave
// namespaces if it's namespace scoped, so leave
// APIResource.Namespaced as false is all right.
// APIResource.Namespaced as false is all right.
apiResource
:=
unversioned
.
APIResource
{
Name
:
resource
.
Resource
}
apiResource
:=
unversioned
.
APIResource
{
Name
:
resource
.
Resource
}
// The default parameter codec used by the dynamic client cannot
return
client
.
ParameterCodec
(
dynamic
.
VersionedParameterEncoderWithV1Fallback
)
.
// encode api.ListOptions.
Resource
(
&
apiResource
,
api
.
NamespaceAll
)
.
// TODO: api.ParameterCodec doesn't support thirdparty objects.
List
(
&
options
)
// We need a generic parameter codec.
return
client
.
ParameterCodec
(
api
.
ParameterCodec
)
.
Resource
(
&
apiResource
,
api
.
NamespaceAll
)
.
List
(
&
options
)
},
},
WatchFunc
:
func
(
options
api
.
ListOptions
)
(
watch
.
Interface
,
error
)
{
WatchFunc
:
func
(
options
api
.
ListOptions
)
(
watch
.
Interface
,
error
)
{
// APIResource.Kind is not used by the dynamic client, so
// APIResource.Kind is not used by the dynamic client, so
...
@@ -455,9 +453,9 @@ func gcListWatcher(client *dynamic.Client, resource unversioned.GroupVersionReso
...
@@ -455,9 +453,9 @@ func gcListWatcher(client *dynamic.Client, resource unversioned.GroupVersionReso
// namespaces if it's namespace scoped, so leave
// namespaces if it's namespace scoped, so leave
// APIResource.Namespaced as false is all right.
// APIResource.Namespaced as false is all right.
apiResource
:=
unversioned
.
APIResource
{
Name
:
resource
.
Resource
}
apiResource
:=
unversioned
.
APIResource
{
Name
:
resource
.
Resource
}
// The default parameter codec used by the dynamic client cannot
return
client
.
ParameterCodec
(
dynamic
.
VersionedParameterEncoderWithV1Fallback
)
.
// encode api.ListOptions
.
Resource
(
&
apiResource
,
api
.
NamespaceAll
)
.
return
client
.
ParameterCodec
(
api
.
ParameterCodec
)
.
Resource
(
&
apiResource
,
api
.
NamespaceAll
)
.
Watch
(
&
options
)
Watch
(
&
options
)
},
},
}
}
}
}
...
...
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