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
e8b24679
Unverified
Commit
e8b24679
authored
Jun 21, 2017
by
Jordan Liggitt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove redirect verb parsing
parent
227f52e0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
20 additions
and
26 deletions
+20
-26
create_role.go
pkg/kubectl/cmd/create_role.go
+1
-1
apiserver_test.go
staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go
+17
-19
requestinfo.go
...src/k8s.io/apiserver/pkg/endpoints/request/requestinfo.go
+2
-4
requestinfo_test.go
...8s.io/apiserver/pkg/endpoints/request/requestinfo_test.go
+0
-2
No files found.
pkg/kubectl/cmd/create_role.go
View file @
e8b24679
...
@@ -52,7 +52,7 @@ var (
...
@@ -52,7 +52,7 @@ var (
kubectl create role foo --verb=get,list,watch --resource=pods,pods/status`
))
kubectl create role foo --verb=get,list,watch --resource=pods,pods/status`
))
// Valid resource verb list for validation.
// Valid resource verb list for validation.
validResourceVerbs
=
[]
string
{
"*"
,
"get"
,
"delete"
,
"list"
,
"create"
,
"update"
,
"patch"
,
"watch"
,
"proxy"
,
"
redirect"
,
"
deletecollection"
,
"use"
,
"bind"
,
"impersonate"
}
validResourceVerbs
=
[]
string
{
"*"
,
"get"
,
"delete"
,
"list"
,
"create"
,
"update"
,
"patch"
,
"watch"
,
"proxy"
,
"deletecollection"
,
"use"
,
"bind"
,
"impersonate"
}
// Specialized verbs and GroupResources
// Specialized verbs and GroupResources
specialVerbs
=
map
[
string
][]
schema
.
GroupResource
{
specialVerbs
=
map
[
string
][]
schema
.
GroupResource
{
...
...
staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go
View file @
e8b24679
...
@@ -905,25 +905,23 @@ func TestUnimplementedRESTStorage(t *testing.T) {
...
@@ -905,25 +905,23 @@ func TestUnimplementedRESTStorage(t *testing.T) {
ErrCode
int
ErrCode
int
}
}
cases
:=
map
[
string
]
T
{
cases
:=
map
[
string
]
T
{
"groupless GET object"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"groupless GET object"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"groupless GET list"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"groupless GET list"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"groupless POST list"
:
{
"POST"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"groupless POST list"
:
{
"POST"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"groupless PUT object"
:
{
"PUT"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"groupless PUT object"
:
{
"PUT"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"groupless DELETE object"
:
{
"DELETE"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"groupless DELETE object"
:
{
"DELETE"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"groupless watch list"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/watch/foo"
,
http
.
StatusNotFound
},
"groupless watch list"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/watch/foo"
,
http
.
StatusNotFound
},
"groupless watch object"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/watch/foo/bar"
,
http
.
StatusNotFound
},
"groupless watch object"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/watch/foo/bar"
,
http
.
StatusNotFound
},
"groupless proxy object"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/proxy/foo/bar"
,
http
.
StatusNotFound
},
"groupless proxy object"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/proxy/foo/bar"
,
http
.
StatusNotFound
},
"groupless redirect object"
:
{
"GET"
,
"/"
+
grouplessPrefix
+
"/"
+
grouplessGroupVersion
.
Version
+
"/redirect/foo/bar"
,
http
.
StatusNotFound
},
"GET object"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"GET object"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"GET list"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"GET list"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"POST list"
:
{
"POST"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"POST list"
:
{
"POST"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo"
,
http
.
StatusNotFound
},
"PUT object"
:
{
"PUT"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"PUT object"
:
{
"PUT"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"DELETE object"
:
{
"DELETE"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"DELETE object"
:
{
"DELETE"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/foo/bar"
,
http
.
StatusNotFound
},
"watch list"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/watch/foo"
,
http
.
StatusNotFound
},
"watch list"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/watch/foo"
,
http
.
StatusNotFound
},
"watch object"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/watch/foo/bar"
,
http
.
StatusNotFound
},
"watch object"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/watch/foo/bar"
,
http
.
StatusNotFound
},
"proxy object"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/proxy/foo/bar"
,
http
.
StatusNotFound
},
"proxy object"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/proxy/foo/bar"
,
http
.
StatusNotFound
},
"redirect object"
:
{
"GET"
,
"/"
+
prefix
+
"/"
+
testGroupVersion
.
Group
+
"/"
+
testGroupVersion
.
Version
+
"/redirect/foo/bar"
,
http
.
StatusNotFound
},
}
}
handler
:=
handle
(
map
[
string
]
rest
.
Storage
{
handler
:=
handle
(
map
[
string
]
rest
.
Storage
{
"foo"
:
UnimplementedRESTStorage
{},
"foo"
:
UnimplementedRESTStorage
{},
...
...
staging/src/k8s.io/apiserver/pkg/endpoints/request/requestinfo.go
View file @
e8b24679
...
@@ -54,10 +54,10 @@ type RequestInfo struct {
...
@@ -54,10 +54,10 @@ type RequestInfo struct {
// CRUDdy GET/POST/PUT/DELETE actions on REST objects.
// CRUDdy GET/POST/PUT/DELETE actions on REST objects.
// TODO: find a way to keep this up to date automatically. Maybe dynamically populate list as handlers added to
// TODO: find a way to keep this up to date automatically. Maybe dynamically populate list as handlers added to
// master's Mux.
// master's Mux.
var
specialVerbs
=
sets
.
NewString
(
"proxy"
,
"
redirect"
,
"
watch"
)
var
specialVerbs
=
sets
.
NewString
(
"proxy"
,
"watch"
)
// specialVerbsNoSubresources contains root verbs which do not allow subresources
// specialVerbsNoSubresources contains root verbs which do not allow subresources
var
specialVerbsNoSubresources
=
sets
.
NewString
(
"proxy"
,
"redirect"
)
var
specialVerbsNoSubresources
=
sets
.
NewString
(
"proxy"
)
// namespaceSubresources contains subresources of namespace
// namespaceSubresources contains subresources of namespace
// this list allows the parser to distinguish between a namespace subresource, and a namespaced resource
// this list allows the parser to distinguish between a namespace subresource, and a namespaced resource
...
@@ -87,8 +87,6 @@ type RequestInfoFactory struct {
...
@@ -87,8 +87,6 @@ type RequestInfoFactory struct {
// Special verbs without subresources:
// Special verbs without subresources:
// /api/{version}/proxy/{resource}/{resourceName}
// /api/{version}/proxy/{resource}/{resourceName}
// /api/{version}/proxy/namespaces/{namespace}/{resource}/{resourceName}
// /api/{version}/proxy/namespaces/{namespace}/{resource}/{resourceName}
// /api/{version}/redirect/namespaces/{namespace}/{resource}/{resourceName}
// /api/{version}/redirect/{resource}/{resourceName}
//
//
// Special verbs with subresources:
// Special verbs with subresources:
// /api/{version}/watch/{resource}
// /api/{version}/watch/{resource}
...
...
staging/src/k8s.io/apiserver/pkg/endpoints/request/requestinfo_test.go
View file @
e8b24679
...
@@ -61,8 +61,6 @@ func TestGetAPIRequestInfo(t *testing.T) {
...
@@ -61,8 +61,6 @@ func TestGetAPIRequestInfo(t *testing.T) {
// special verbs
// special verbs
{
"GET"
,
"/api/v1/proxy/namespaces/other/pods/foo"
,
"proxy"
,
"api"
,
""
,
"v1"
,
"other"
,
"pods"
,
""
,
"foo"
,
[]
string
{
"pods"
,
"foo"
}},
{
"GET"
,
"/api/v1/proxy/namespaces/other/pods/foo"
,
"proxy"
,
"api"
,
""
,
"v1"
,
"other"
,
"pods"
,
""
,
"foo"
,
[]
string
{
"pods"
,
"foo"
}},
{
"GET"
,
"/api/v1/proxy/namespaces/other/pods/foo/subpath/not/a/subresource"
,
"proxy"
,
"api"
,
""
,
"v1"
,
"other"
,
"pods"
,
""
,
"foo"
,
[]
string
{
"pods"
,
"foo"
,
"subpath"
,
"not"
,
"a"
,
"subresource"
}},
{
"GET"
,
"/api/v1/proxy/namespaces/other/pods/foo/subpath/not/a/subresource"
,
"proxy"
,
"api"
,
""
,
"v1"
,
"other"
,
"pods"
,
""
,
"foo"
,
[]
string
{
"pods"
,
"foo"
,
"subpath"
,
"not"
,
"a"
,
"subresource"
}},
{
"GET"
,
"/api/v1/redirect/namespaces/other/pods/foo"
,
"redirect"
,
"api"
,
""
,
"v1"
,
"other"
,
"pods"
,
""
,
"foo"
,
[]
string
{
"pods"
,
"foo"
}},
{
"GET"
,
"/api/v1/redirect/namespaces/other/pods/foo/subpath/not/a/subresource"
,
"redirect"
,
"api"
,
""
,
"v1"
,
"other"
,
"pods"
,
""
,
"foo"
,
[]
string
{
"pods"
,
"foo"
,
"subpath"
,
"not"
,
"a"
,
"subresource"
}},
{
"GET"
,
"/api/v1/watch/pods"
,
"watch"
,
"api"
,
""
,
"v1"
,
namespaceAll
,
"pods"
,
""
,
""
,
[]
string
{
"pods"
}},
{
"GET"
,
"/api/v1/watch/pods"
,
"watch"
,
"api"
,
""
,
"v1"
,
namespaceAll
,
"pods"
,
""
,
""
,
[]
string
{
"pods"
}},
{
"GET"
,
"/api/v1/pods?watch=true"
,
"watch"
,
"api"
,
""
,
"v1"
,
namespaceAll
,
"pods"
,
""
,
""
,
[]
string
{
"pods"
}},
{
"GET"
,
"/api/v1/pods?watch=true"
,
"watch"
,
"api"
,
""
,
"v1"
,
namespaceAll
,
"pods"
,
""
,
""
,
[]
string
{
"pods"
}},
{
"GET"
,
"/api/v1/pods?watch=false"
,
"list"
,
"api"
,
""
,
"v1"
,
namespaceAll
,
"pods"
,
""
,
""
,
[]
string
{
"pods"
}},
{
"GET"
,
"/api/v1/pods?watch=false"
,
"list"
,
"api"
,
""
,
"v1"
,
namespaceAll
,
"pods"
,
""
,
""
,
[]
string
{
"pods"
}},
...
...
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