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
f7de1b91
Commit
f7de1b91
authored
Feb 14, 2016
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #20968 from deads2k/fix-resource-partial-match
Auto commit by PR queue bot
parents
d28ac1f8
58229557
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
59 additions
and
43 deletions
+59
-43
restmapper.go
pkg/api/meta/restmapper.go
+18
-9
restmapper_test.go
pkg/api/meta/restmapper_test.go
+41
-34
No files found.
pkg/api/meta/restmapper.go
View file @
f7de1b91
...
...
@@ -221,23 +221,32 @@ func (m *DefaultRESTMapper) ResourcesFor(resource unversioned.GroupVersionResour
case
hasGroup
:
requestedGroupResource
:=
resource
.
GroupResource
()
for
currResource
:=
range
m
.
pluralToSingular
{
if
currResource
.
GroupResource
()
==
requestedGroupResource
{
ret
=
append
(
ret
,
currResource
)
for
plural
,
singular
:=
range
m
.
pluralToSingular
{
if
singular
.
GroupResource
()
==
requestedGroupResource
{
ret
=
append
(
ret
,
plural
)
}
if
plural
.
GroupResource
()
==
requestedGroupResource
{
ret
=
append
(
ret
,
plural
)
}
}
case
hasVersion
:
for
currResource
:=
range
m
.
pluralToSingular
{
if
currResource
.
Version
==
resource
.
Version
&&
currResource
.
Resource
==
resource
.
Resource
{
ret
=
append
(
ret
,
currResource
)
for
plural
,
singular
:=
range
m
.
pluralToSingular
{
if
singular
.
Version
==
resource
.
Version
&&
singular
.
Resource
==
resource
.
Resource
{
ret
=
append
(
ret
,
plural
)
}
if
plural
.
Version
==
resource
.
Version
&&
plural
.
Resource
==
resource
.
Resource
{
ret
=
append
(
ret
,
plural
)
}
}
default
:
for
currResource
:=
range
m
.
pluralToSingular
{
if
currResource
.
Resource
==
resource
.
Resource
{
ret
=
append
(
ret
,
currResource
)
for
plural
,
singular
:=
range
m
.
pluralToSingular
{
if
singular
.
Resource
==
resource
.
Resource
{
ret
=
append
(
ret
,
plural
)
}
if
plural
.
Resource
==
resource
.
Resource
{
ret
=
append
(
ret
,
plural
)
}
}
}
...
...
pkg/api/meta/restmapper_test.go
View file @
f7de1b91
...
...
@@ -234,10 +234,11 @@ func TestRESTMapperKindsFor(t *testing.T) {
func
TestRESTMapperResourcesFor
(
t
*
testing
.
T
)
{
testCases
:=
[]
struct
{
Name
string
PreferredOrder
[]
unversioned
.
GroupVersion
KindsToRegister
[]
unversioned
.
GroupVersionKind
PartialResourceToRequest
unversioned
.
GroupVersionResource
Name
string
PreferredOrder
[]
unversioned
.
GroupVersion
KindsToRegister
[]
unversioned
.
GroupVersionKind
PluralPartialResourceToRequest
unversioned
.
GroupVersionResource
SingularPartialResourceToRequest
unversioned
.
GroupVersionResource
ExpectedResources
[]
unversioned
.
GroupVersionResource
ExpectedResourceErr
string
...
...
@@ -254,7 +255,8 @@ func TestRESTMapperResourcesFor(t *testing.T) {
{
Group
:
"second-group"
,
Version
:
"first-version"
,
Kind
:
"my-kind"
},
{
Group
:
"second-group"
,
Version
:
"first-version"
,
Kind
:
"your-kind"
},
},
PartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Resource
:
"my-kinds"
},
PluralPartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Resource
:
"my-kinds"
},
SingularPartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Resource
:
"my-kind"
},
ExpectedResources
:
[]
unversioned
.
GroupVersionResource
{
{
Group
:
"second-group"
,
Version
:
"first-version"
,
Resource
:
"my-kinds"
},
...
...
@@ -275,7 +277,8 @@ func TestRESTMapperResourcesFor(t *testing.T) {
{
Group
:
"second-group"
,
Version
:
"first-version"
,
Kind
:
"my-kind"
},
{
Group
:
"second-group"
,
Version
:
"first-version"
,
Kind
:
"your-kind"
},
},
PartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Group
:
"first-group"
,
Resource
:
"my-kinds"
},
PluralPartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Group
:
"first-group"
,
Resource
:
"my-kinds"
},
SingularPartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Group
:
"first-group"
,
Resource
:
"my-kind"
},
ExpectedResources
:
[]
unversioned
.
GroupVersionResource
{
{
Group
:
"first-group"
,
Version
:
"first-version"
,
Resource
:
"my-kinds"
},
...
...
@@ -294,7 +297,8 @@ func TestRESTMapperResourcesFor(t *testing.T) {
{
Group
:
"second-group"
,
Version
:
"first-version"
,
Kind
:
"my-kind"
},
{
Group
:
"second-group"
,
Version
:
"first-version"
,
Kind
:
"your-kind"
},
},
PartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Version
:
"first-version"
,
Resource
:
"my-kinds"
},
PluralPartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Version
:
"first-version"
,
Resource
:
"my-kinds"
},
SingularPartialResourceToRequest
:
unversioned
.
GroupVersionResource
{
Version
:
"first-version"
,
Resource
:
"my-kind"
},
ExpectedResources
:
[]
unversioned
.
GroupVersionResource
{
{
Group
:
"first-group"
,
Version
:
"first-version"
,
Resource
:
"my-kinds"
},
...
...
@@ -305,41 +309,44 @@ func TestRESTMapperResourcesFor(t *testing.T) {
}
for
_
,
testCase
:=
range
testCases
{
tcName
:=
testCase
.
Name
mapper
:=
NewDefaultRESTMapper
(
testCase
.
PreferredOrder
,
fakeInterfaces
)
for
_
,
kind
:=
range
testCase
.
KindsToRegister
{
mapper
.
Add
(
kind
,
RESTScopeNamespace
)
}
actualResources
,
err
:=
mapper
.
ResourcesFor
(
testCase
.
PartialResourceToRequest
)
if
err
!=
nil
{
t
.
Errorf
(
"%s: unexpected error: %v"
,
tcName
,
err
)
continue
}
if
!
reflect
.
DeepEqual
(
testCase
.
ExpectedResources
,
actualResources
)
{
t
.
Errorf
(
"%s: expected %v, got %v"
,
tcName
,
testCase
.
ExpectedResources
,
actualResources
)
}
for
_
,
partialResource
:=
range
[]
unversioned
.
GroupVersionResource
{
testCase
.
PluralPartialResourceToRequest
,
testCase
.
SingularPartialResourceToRequest
}
{
mapper
:=
NewDefaultRESTMapper
(
testCase
.
PreferredOrder
,
fakeInterfaces
)
for
_
,
kind
:=
range
testCase
.
KindsToRegister
{
mapper
.
Add
(
kind
,
RESTScopeNamespace
)
}
singleResource
,
err
:=
mapper
.
ResourceFor
(
testCase
.
PartialResourceToRequest
)
if
err
==
nil
&&
len
(
testCase
.
ExpectedResourceErr
)
!=
0
{
t
.
Errorf
(
"%s: expected error: %v"
,
tcName
,
testCase
.
ExpectedResourceErr
)
continue
}
if
err
!=
nil
{
if
len
(
testCase
.
ExpectedResourceErr
)
==
0
{
actualResources
,
err
:=
mapper
.
ResourcesFor
(
partialResource
)
if
err
!=
nil
{
t
.
Errorf
(
"%s: unexpected error: %v"
,
tcName
,
err
)
continue
}
else
{
if
!
strings
.
Contains
(
err
.
Error
(),
testCase
.
ExpectedResourceErr
)
{
t
.
Errorf
(
"%s: expected %v, got %v"
,
tcName
,
testCase
.
ExpectedResourceErr
,
err
)
continue
}
}
if
!
reflect
.
DeepEqual
(
testCase
.
ExpectedResources
,
actualResources
)
{
t
.
Errorf
(
"%s: expected %v, got %v"
,
tcName
,
testCase
.
ExpectedResources
,
actualResources
)
}
}
else
{
if
testCase
.
ExpectedResources
[
0
]
!=
singleResource
{
t
.
Errorf
(
"%s: expected %v, got %v"
,
tcName
,
testCase
.
ExpectedResources
[
0
],
singleResource
)
singleResource
,
err
:=
mapper
.
ResourceFor
(
partialResource
)
if
err
==
nil
&&
len
(
testCase
.
ExpectedResourceErr
)
!=
0
{
t
.
Errorf
(
"%s: expected error: %v"
,
tcName
,
testCase
.
ExpectedResourceErr
)
continue
}
if
err
!=
nil
{
if
len
(
testCase
.
ExpectedResourceErr
)
==
0
{
t
.
Errorf
(
"%s: unexpected error: %v"
,
tcName
,
err
)
continue
}
else
{
if
!
strings
.
Contains
(
err
.
Error
(),
testCase
.
ExpectedResourceErr
)
{
t
.
Errorf
(
"%s: expected %v, got %v"
,
tcName
,
testCase
.
ExpectedResourceErr
,
err
)
continue
}
}
}
else
{
if
testCase
.
ExpectedResources
[
0
]
!=
singleResource
{
t
.
Errorf
(
"%s: expected %v, got %v"
,
tcName
,
testCase
.
ExpectedResources
[
0
],
singleResource
)
}
}
}
}
}
...
...
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