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
15e6ca5a
Commit
15e6ca5a
authored
Nov 05, 2015
by
Chao Xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rename to GroupVersion and rename the one in type.go to GroupVersionForDiscovery
parent
fb360bca
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
32 additions
and
32 deletions
+32
-32
group_version.go
pkg/api/unversioned/group_version.go
+11
-11
group_version_test.go
pkg/api/unversioned/group_version_test.go
+7
-7
types.go
pkg/api/unversioned/types.go
+3
-3
client_test.go
pkg/client/unversioned/client_test.go
+1
-1
discovery_client.go
pkg/client/unversioned/discovery_client.go
+2
-2
helper_test.go
pkg/client/unversioned/helper_test.go
+2
-2
master.go
pkg/master/master.go
+4
-4
master_test.go
pkg/master/master_test.go
+2
-2
No files found.
pkg/api/unversioned/group_version.go
View file @
15e6ca5a
...
...
@@ -22,16 +22,16 @@ import (
"strings"
)
// TODO: We need to remove the GroupVersion in types.go. We use the name Group
And
Version here temporarily.
// TODO: We need to remove the GroupVersion in types.go. We use the name GroupVersion here temporarily.
// GroupVersion contains the "group" and the "version", which uniquely identifies the API.
type
Group
And
Version
struct
{
type
GroupVersion
struct
{
Group
string
Version
string
}
// String puts "group" and "version" into a single "group/version" string. For the legacy v1
// it returns "v1".
func
(
gv
*
Group
And
Version
)
String
()
string
{
func
(
gv
*
GroupVersion
)
String
()
string
{
// special case of "v1" for backward compatibility
if
gv
.
Group
==
""
&&
gv
.
Version
==
"v1"
{
return
gv
.
Version
...
...
@@ -42,22 +42,22 @@ func (gv *GroupAndVersion) String() string {
// ParseGroupVersion turns "group/version" string into a GroupVersion struct. It reports error
// if it cannot parse the string.
func
ParseGroupVersion
(
gv
string
)
(
Group
And
Version
,
error
)
{
func
ParseGroupVersion
(
gv
string
)
(
GroupVersion
,
error
)
{
s
:=
strings
.
Split
(
gv
,
"/"
)
// "v1" is the only special case. Otherwise GroupVersion is expected to contain
// one "/" dividing the string into two parts.
switch
{
case
len
(
s
)
==
1
&&
gv
==
"v1"
:
return
Group
And
Version
{
""
,
"v1"
},
nil
return
GroupVersion
{
""
,
"v1"
},
nil
case
len
(
s
)
==
2
:
return
Group
And
Version
{
s
[
0
],
s
[
1
]},
nil
return
GroupVersion
{
s
[
0
],
s
[
1
]},
nil
default
:
return
Group
And
Version
{},
fmt
.
Errorf
(
"Unexpected GroupVersion string: %v"
,
gv
)
return
GroupVersion
{},
fmt
.
Errorf
(
"Unexpected GroupVersion string: %v"
,
gv
)
}
}
// MarshalJSON implements the json.Marshaller interface.
func
(
gv
Group
And
Version
)
MarshalJSON
()
([]
byte
,
error
)
{
func
(
gv
GroupVersion
)
MarshalJSON
()
([]
byte
,
error
)
{
s
:=
gv
.
String
()
if
strings
.
Count
(
s
,
"/"
)
>
1
{
return
[]
byte
{},
fmt
.
Errorf
(
"illegal GroupVersion %v: contains more than one /"
,
s
)
...
...
@@ -65,7 +65,7 @@ func (gv GroupAndVersion) MarshalJSON() ([]byte, error) {
return
json
.
Marshal
(
s
)
}
func
(
gv
*
Group
And
Version
)
unmarshal
(
value
[]
byte
)
error
{
func
(
gv
*
GroupVersion
)
unmarshal
(
value
[]
byte
)
error
{
var
s
string
if
err
:=
json
.
Unmarshal
(
value
,
&
s
);
err
!=
nil
{
return
err
...
...
@@ -79,11 +79,11 @@ func (gv *GroupAndVersion) unmarshal(value []byte) error {
}
// UnmarshalJSON implements the json.Unmarshaller interface.
func
(
gv
*
Group
And
Version
)
UnmarshalJSON
(
value
[]
byte
)
error
{
func
(
gv
*
GroupVersion
)
UnmarshalJSON
(
value
[]
byte
)
error
{
return
gv
.
unmarshal
(
value
)
}
// UnmarshalTEXT implements the Ugorji's encoding.TextUnmarshaler interface.
func
(
gv
*
Group
And
Version
)
UnmarshalText
(
value
[]
byte
)
error
{
func
(
gv
*
GroupVersion
)
UnmarshalText
(
value
[]
byte
)
error
{
return
gv
.
unmarshal
(
value
)
}
pkg/api/unversioned/group_version_test.go
View file @
15e6ca5a
...
...
@@ -25,16 +25,16 @@ import (
)
type
GroupVersionHolder
struct
{
GV
Group
And
Version
`json:"val"`
GV
GroupVersion
`json:"val"`
}
func
TestGroupVersionUnmarshalJSON
(
t
*
testing
.
T
)
{
cases
:=
[]
struct
{
input
[]
byte
expect
Group
And
Version
expect
GroupVersion
}{
{[]
byte
(
`{"val": "v1"}`
),
Group
And
Version
{
""
,
"v1"
}},
{[]
byte
(
`{"val": "extensions/v1beta1"}`
),
Group
And
Version
{
"extensions"
,
"v1beta1"
}},
{[]
byte
(
`{"val": "v1"}`
),
GroupVersion
{
""
,
"v1"
}},
{[]
byte
(
`{"val": "extensions/v1beta1"}`
),
GroupVersion
{
"extensions"
,
"v1beta1"
}},
}
for
_
,
c
:=
range
cases
{
...
...
@@ -58,11 +58,11 @@ func TestGroupVersionUnmarshalJSON(t *testing.T) {
func
TestGroupVersionMarshalJSON
(
t
*
testing
.
T
)
{
cases
:=
[]
struct
{
input
Group
And
Version
input
GroupVersion
expect
[]
byte
}{
{
Group
And
Version
{
""
,
"v1"
},
[]
byte
(
`{"val":"v1"}`
)},
{
Group
And
Version
{
"extensions"
,
"v1beta1"
},
[]
byte
(
`{"val":"extensions/v1beta1"}`
)},
{
GroupVersion
{
""
,
"v1"
},
[]
byte
(
`{"val":"v1"}`
)},
{
GroupVersion
{
"extensions"
,
"v1beta1"
},
[]
byte
(
`{"val":"extensions/v1beta1"}`
)},
}
for
_
,
c
:=
range
cases
{
...
...
pkg/api/unversioned/types.go
View file @
15e6ca5a
...
...
@@ -299,15 +299,15 @@ 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"`
Versions
[]
GroupVersion
ForDiscovery
`json:"versions"`
// preferredVersion is the version preferred by the API server, which
// probably is the storage version.
PreferredVersion
GroupVersion
`json:"preferredVersion,omitempty"`
PreferredVersion
GroupVersion
ForDiscovery
`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
{
type
GroupVersion
ForDiscovery
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
...
...
pkg/client/unversioned/client_test.go
View file @
15e6ca5a
...
...
@@ -400,7 +400,7 @@ func TestGetServerResources(t *testing.T) {
list
=
&
unversioned
.
APIGroupList
{
Groups
:
[]
unversioned
.
APIGroup
{
{
Versions
:
[]
unversioned
.
GroupVersion
{
Versions
:
[]
unversioned
.
GroupVersion
ForDiscovery
{
{
GroupVersion
:
"extensions/v1beta1"
},
},
},
...
...
pkg/client/unversioned/discovery_client.go
View file @
15e6ca5a
...
...
@@ -55,9 +55,9 @@ type DiscoveryClient struct {
// Convert unversioned.APIVersions to unversioned.APIGroup. APIVersions is used by legacy v1, so
// group would be "".
func
apiVersionsToAPIGroup
(
apiVersions
*
unversioned
.
APIVersions
)
(
apiGroup
unversioned
.
APIGroup
)
{
groupVersions
:=
[]
unversioned
.
GroupVersion
{}
groupVersions
:=
[]
unversioned
.
GroupVersion
ForDiscovery
{}
for
_
,
version
:=
range
apiVersions
.
Versions
{
groupVersion
:=
unversioned
.
GroupVersion
{
groupVersion
:=
unversioned
.
GroupVersion
ForDiscovery
{
GroupVersion
:
version
,
Version
:
version
,
}
...
...
pkg/client/unversioned/helper_test.go
View file @
15e6ca5a
...
...
@@ -385,7 +385,7 @@ func TestHelperGetServerAPIVersions(t *testing.T) {
APIGroupList
:=
unversioned
.
APIGroupList
{
Groups
:
[]
unversioned
.
APIGroup
{
{
Versions
:
[]
unversioned
.
GroupVersion
{
Versions
:
[]
unversioned
.
GroupVersion
ForDiscovery
{
{
GroupVersion
:
"group1/v1"
,
},
...
...
@@ -395,7 +395,7 @@ func TestHelperGetServerAPIVersions(t *testing.T) {
},
},
{
Versions
:
[]
unversioned
.
GroupVersion
{
Versions
:
[]
unversioned
.
GroupVersion
ForDiscovery
{
{
GroupVersion
:
"group2/v1"
,
},
...
...
pkg/master/master.go
View file @
15e6ca5a
...
...
@@ -665,7 +665,7 @@ func (m *Master) init(c *Config) {
if
err
!=
nil
{
glog
.
Fatalf
(
"Unable to setup experimental api: %v"
,
err
)
}
expAPIVersions
:=
[]
unversioned
.
GroupVersion
{
expAPIVersions
:=
[]
unversioned
.
GroupVersion
ForDiscovery
{
{
GroupVersion
:
expVersion
.
Version
,
Version
:
apiutil
.
GetVersion
(
expVersion
.
Version
),
...
...
@@ -678,7 +678,7 @@ func (m *Master) init(c *Config) {
group
:=
unversioned
.
APIGroup
{
Name
:
g
.
Group
,
Versions
:
expAPIVersions
,
PreferredVersion
:
unversioned
.
GroupVersion
{
GroupVersion
:
storageVersion
,
Version
:
apiutil
.
GetVersion
(
storageVersion
)},
PreferredVersion
:
unversioned
.
GroupVersion
ForDiscovery
{
GroupVersion
:
storageVersion
,
Version
:
apiutil
.
GetVersion
(
storageVersion
)},
}
apiserver
.
AddGroupWebService
(
m
.
handlerContainer
,
c
.
APIGroupPrefix
+
"/"
+
latest
.
GroupOrDie
(
"extensions"
)
.
Group
,
group
)
allGroups
=
append
(
allGroups
,
group
)
...
...
@@ -992,13 +992,13 @@ func (m *Master) InstallThirdPartyResource(rsrc *expapi.ThirdPartyResource) erro
glog
.
Fatalf
(
"Unable to setup thirdparty api: %v"
,
err
)
}
path
:=
makeThirdPartyPath
(
group
)
groupVersion
:=
unversioned
.
GroupVersion
{
groupVersion
:=
unversioned
.
GroupVersion
ForDiscovery
{
GroupVersion
:
group
+
"/"
+
rsrc
.
Versions
[
0
]
.
Name
,
Version
:
rsrc
.
Versions
[
0
]
.
Name
,
}
apiGroup
:=
unversioned
.
APIGroup
{
Name
:
group
,
Versions
:
[]
unversioned
.
GroupVersion
{
groupVersion
},
Versions
:
[]
unversioned
.
GroupVersion
ForDiscovery
{
groupVersion
},
}
apiserver
.
AddGroupWebService
(
m
.
handlerContainer
,
path
,
apiGroup
)
m
.
addThirdPartyResourceStorage
(
path
,
thirdparty
.
Storage
[
strings
.
ToLower
(
kind
)
+
"s"
]
.
(
*
thirdpartyresourcedataetcd
.
REST
))
...
...
pkg/master/master_test.go
View file @
15e6ca5a
...
...
@@ -399,13 +399,13 @@ func TestDiscoveryAtAPIS(t *testing.T) {
}
expectGroupName
:=
"extensions"
expectVersions
:=
[]
unversioned
.
GroupVersion
{
expectVersions
:=
[]
unversioned
.
GroupVersion
ForDiscovery
{
{
GroupVersion
:
testapi
.
Extensions
.
GroupAndVersion
(),
Version
:
testapi
.
Extensions
.
Version
(),
},
}
expectPreferredVersion
:=
unversioned
.
GroupVersion
{
expectPreferredVersion
:=
unversioned
.
GroupVersion
ForDiscovery
{
GroupVersion
:
config
.
StorageVersions
[
"extensions"
],
Version
:
apiutil
.
GetVersion
(
config
.
StorageVersions
[
"extensions"
]),
}
...
...
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