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
0a7921e9
Commit
0a7921e9
authored
Sep 08, 2015
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #13538 from brendandburns/thirdparty
Auto commit by PR queue bot
parents
891cef4e
61f272c8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
40 deletions
+57
-40
master_test.go
pkg/master/master_test.go
+16
-5
codec.go
pkg/registry/thirdpartyresourcedata/codec.go
+29
-35
codec_test.go
pkg/registry/thirdpartyresourcedata/codec_test.go
+12
-0
No files found.
pkg/master/master_test.go
View file @
0a7921e9
...
@@ -237,9 +237,10 @@ func testInstallThirdPartyAPIGetVersion(t *testing.T, version string) {
...
@@ -237,9 +237,10 @@ func testInstallThirdPartyAPIGetVersion(t *testing.T, version string) {
if
err
:=
decodeResponse
(
resp
,
&
item
);
err
!=
nil
{
if
err
:=
decodeResponse
(
resp
,
&
item
);
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
}
// Fill in data that the apiserver injects
expectedObj
.
SelfLink
=
item
.
SelfLink
if
!
reflect
.
DeepEqual
(
item
,
expectedObj
)
{
if
!
reflect
.
DeepEqual
(
item
,
expectedObj
)
{
t
.
Errorf
(
"expected:
\n
%
v
\n
saw:
\n
%
v
\n
"
,
expectedObj
,
item
)
t
.
Errorf
(
"expected:
\n
%
#v
\n
saw:
\n
%#
v
\n
"
,
expectedObj
,
item
)
}
}
}
}
...
@@ -285,8 +286,14 @@ func testInstallThirdPartyAPIPostForVersion(t *testing.T, version string) {
...
@@ -285,8 +286,14 @@ func testInstallThirdPartyAPIPostForVersion(t *testing.T, version string) {
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
}
if
!
reflect
.
DeepEqual
(
item
,
inputObj
)
{
// fill in fields set by the apiserver
t
.
Errorf
(
"expected:
\n
%v
\n
saw:
\n
%v
\n
"
,
inputObj
,
item
)
expectedObj
:=
inputObj
expectedObj
.
SelfLink
=
item
.
SelfLink
expectedObj
.
Namespace
=
item
.
Namespace
expectedObj
.
UID
=
item
.
UID
expectedObj
.
CreationTimestamp
=
item
.
CreationTimestamp
if
!
reflect
.
DeepEqual
(
item
,
expectedObj
)
{
t
.
Errorf
(
"expected:
\n
%v
\n
saw:
\n
%v
\n
"
,
expectedObj
,
item
)
}
}
etcdResp
,
err
:=
fakeClient
.
Get
(
etcdtest
.
PathPrefix
()
+
"/ThirdPartyResourceData/company.com/foos/default/test"
,
false
,
false
)
etcdResp
,
err
:=
fakeClient
.
Get
(
etcdtest
.
PathPrefix
()
+
"/ThirdPartyResourceData/company.com/foos/default/test"
,
false
,
false
)
...
@@ -324,7 +331,8 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
...
@@ -324,7 +331,8 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
expectedObj
:=
Foo
{
expectedObj
:=
Foo
{
ObjectMeta
:
api
.
ObjectMeta
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"test"
,
Name
:
"test"
,
Namespace
:
"default"
,
},
},
TypeMeta
:
api
.
TypeMeta
{
TypeMeta
:
api
.
TypeMeta
{
Kind
:
"Foo"
,
Kind
:
"Foo"
,
...
@@ -353,6 +361,9 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
...
@@ -353,6 +361,9 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
}
}
// Fill in fields set by the apiserver
expectedObj
.
SelfLink
=
item
.
SelfLink
expectedObj
.
Namespace
=
item
.
Namespace
if
!
reflect
.
DeepEqual
(
item
,
expectedObj
)
{
if
!
reflect
.
DeepEqual
(
item
,
expectedObj
)
{
t
.
Errorf
(
"expected:
\n
%v
\n
saw:
\n
%v
\n
"
,
expectedObj
,
item
)
t
.
Errorf
(
"expected:
\n
%v
\n
saw:
\n
%v
\n
"
,
expectedObj
,
item
)
}
}
...
...
pkg/registry/thirdpartyresourcedata/codec.go
View file @
0a7921e9
...
@@ -100,12 +100,12 @@ func (t *thirdPartyResourceDataCodec) populate(objIn *expapi.ThirdPartyResourceD
...
@@ -100,12 +100,12 @@ func (t *thirdPartyResourceDataCodec) populate(objIn *expapi.ThirdPartyResourceD
}
}
func
(
t
*
thirdPartyResourceDataCodec
)
populateFromObject
(
objIn
*
expapi
.
ThirdPartyResourceData
,
mapObj
map
[
string
]
interface
{},
data
[]
byte
)
error
{
func
(
t
*
thirdPartyResourceDataCodec
)
populateFromObject
(
objIn
*
expapi
.
ThirdPartyResourceData
,
mapObj
map
[
string
]
interface
{},
data
[]
byte
)
error
{
kind
,
ok
:=
mapObj
[
"kind"
]
.
(
string
)
typeMeta
:=
api
.
TypeMeta
{}
if
!
ok
{
if
err
:=
json
.
Unmarshal
(
data
,
&
typeMeta
);
err
!=
nil
{
return
fmt
.
Errorf
(
"unexpected object for kind: %#v"
,
mapObj
[
"kind"
])
return
err
}
}
if
k
ind
!=
t
.
kind
{
if
typeMeta
.
K
ind
!=
t
.
kind
{
return
fmt
.
Errorf
(
"unexpected kind: %s, expected
: %s"
,
k
ind
,
t
.
kind
)
return
fmt
.
Errorf
(
"unexpected kind: %s, expected
%s"
,
typeMeta
.
K
ind
,
t
.
kind
)
}
}
metadata
,
ok
:=
mapObj
[
"metadata"
]
.
(
map
[
string
]
interface
{})
metadata
,
ok
:=
mapObj
[
"metadata"
]
.
(
map
[
string
]
interface
{})
...
@@ -113,38 +113,15 @@ func (t *thirdPartyResourceDataCodec) populateFromObject(objIn *expapi.ThirdPart
...
@@ -113,38 +113,15 @@ func (t *thirdPartyResourceDataCodec) populateFromObject(objIn *expapi.ThirdPart
return
fmt
.
Errorf
(
"unexpected object for metadata: %#v"
,
mapObj
[
"metadata"
])
return
fmt
.
Errorf
(
"unexpected object for metadata: %#v"
,
mapObj
[
"metadata"
])
}
}
if
resourceVersion
,
ok
:=
metadata
[
"resourceVersion"
];
ok
{
metadataData
,
err
:=
json
.
Marshal
(
metadata
)
resourceVersionStr
,
ok
:=
resourceVersion
.
(
string
)
if
err
!=
nil
{
if
!
ok
{
return
err
return
fmt
.
Errorf
(
"unexpected object for resourceVersion: %v"
,
resourceVersion
)
}
objIn
.
ResourceVersion
=
resourceVersionStr
}
name
,
ok
:=
metadata
[
"name"
]
.
(
string
)
if
!
ok
{
return
fmt
.
Errorf
(
"unexpected object for name: %#v"
,
metadata
)
}
}
if
labels
,
ok
:=
metadata
[
"labels"
];
ok
{
if
err
:=
json
.
Unmarshal
(
metadataData
,
&
objIn
.
ObjectMeta
);
err
!=
nil
{
labelMap
,
ok
:=
labels
.
(
map
[
string
]
interface
{})
return
err
if
!
ok
{
return
fmt
.
Errorf
(
"unexpected object for labels: %v"
,
labelMap
)
}
for
key
,
value
:=
range
labelMap
{
valueStr
,
ok
:=
value
.
(
string
)
if
!
ok
{
return
fmt
.
Errorf
(
"unexpected label: %v"
,
value
)
}
if
objIn
.
Labels
==
nil
{
objIn
.
Labels
=
map
[
string
]
string
{}
}
objIn
.
Labels
[
key
]
=
valueStr
}
}
}
objIn
.
Name
=
name
objIn
.
Data
=
data
objIn
.
Data
=
data
return
nil
return
nil
}
}
...
@@ -230,16 +207,33 @@ const template = `{
...
@@ -230,16 +207,33 @@ const template = `{
"items": [ %s ]
"items": [ %s ]
}`
}`
func
encodeToJSON
(
obj
*
expapi
.
ThirdPartyResourceData
)
([]
byte
,
error
)
{
var
objOut
interface
{}
if
err
:=
json
.
Unmarshal
(
obj
.
Data
,
&
objOut
);
err
!=
nil
{
return
nil
,
err
}
objMap
,
ok
:=
objOut
.
(
map
[
string
]
interface
{})
if
!
ok
{
return
nil
,
fmt
.
Errorf
(
"unexpected type: %v"
,
objOut
)
}
objMap
[
"metadata"
]
=
obj
.
ObjectMeta
return
json
.
Marshal
(
objMap
)
}
func
(
t
*
thirdPartyResourceDataCodec
)
Encode
(
obj
runtime
.
Object
)
(
data
[]
byte
,
err
error
)
{
func
(
t
*
thirdPartyResourceDataCodec
)
Encode
(
obj
runtime
.
Object
)
(
data
[]
byte
,
err
error
)
{
switch
obj
:=
obj
.
(
type
)
{
switch
obj
:=
obj
.
(
type
)
{
case
*
expapi
.
ThirdPartyResourceData
:
case
*
expapi
.
ThirdPartyResourceData
:
return
obj
.
Data
,
nil
return
encodeToJSON
(
obj
)
case
*
expapi
.
ThirdPartyResourceDataList
:
case
*
expapi
.
ThirdPartyResourceDataList
:
// TODO: There must be a better way to do this...
// TODO: There must be a better way to do this...
buff
:=
&
bytes
.
Buffer
{}
buff
:=
&
bytes
.
Buffer
{}
dataStrings
:=
make
([]
string
,
len
(
obj
.
Items
))
dataStrings
:=
make
([]
string
,
len
(
obj
.
Items
))
for
ix
:=
range
obj
.
Items
{
for
ix
:=
range
obj
.
Items
{
dataStrings
[
ix
]
=
string
(
obj
.
Items
[
ix
]
.
Data
)
data
,
err
:=
encodeToJSON
(
&
obj
.
Items
[
ix
])
if
err
!=
nil
{
return
nil
,
err
}
dataStrings
[
ix
]
=
string
(
data
)
}
}
fmt
.
Fprintf
(
buff
,
template
,
t
.
kind
+
"List"
,
strings
.
Join
(
dataStrings
,
","
))
fmt
.
Fprintf
(
buff
,
template
,
t
.
kind
+
"List"
,
strings
.
Join
(
dataStrings
,
","
))
return
buff
.
Bytes
(),
nil
return
buff
.
Bytes
(),
nil
...
...
pkg/registry/thirdpartyresourcedata/codec_test.go
View file @
0a7921e9
...
@@ -20,9 +20,11 @@ import (
...
@@ -20,9 +20,11 @@ import (
"encoding/json"
"encoding/json"
"reflect"
"reflect"
"testing"
"testing"
"time"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/expapi"
"k8s.io/kubernetes/pkg/expapi"
"k8s.io/kubernetes/pkg/util"
)
)
type
Foo
struct
{
type
Foo
struct
{
...
@@ -62,6 +64,16 @@ func TestCodec(t *testing.T) {
...
@@ -62,6 +64,16 @@ func TestCodec(t *testing.T) {
{
{
obj
:
&
Foo
{
obj
:
&
Foo
{
ObjectMeta
:
api
.
ObjectMeta
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"bar"
,
CreationTimestamp
:
util
.
Time
{
time
.
Unix
(
100
,
0
)},
},
TypeMeta
:
api
.
TypeMeta
{
Kind
:
"Foo"
},
},
name
:
"creation time"
,
},
{
obj
:
&
Foo
{
ObjectMeta
:
api
.
ObjectMeta
{
Name
:
"bar"
,
Name
:
"bar"
,
ResourceVersion
:
"baz"
,
ResourceVersion
:
"baz"
,
Labels
:
map
[
string
]
string
{
"foo"
:
"bar"
,
"baz"
:
"blah"
},
Labels
:
map
[
string
]
string
{
"foo"
:
"bar"
,
"baz"
:
"blah"
},
...
...
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