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
7c10cbc6
Unverified
Commit
7c10cbc6
authored
Nov 01, 2017
by
Mikhail Mazurskiy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Useful helper functions for Unstructured
parent
7aeaedd7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
116 additions
and
52 deletions
+116
-52
BUILD
...c/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD
+11
-3
helpers.go
....io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go
+0
-0
helpers_test.go
...pimachinery/pkg/apis/meta/v1/unstructured/helpers_test.go
+17
-0
unstructured.go
...pimachinery/pkg/apis/meta/v1/unstructured/unstructured.go
+55
-27
unstructured_list.go
...hinery/pkg/apis/meta/v1/unstructured/unstructured_list.go
+1
-1
unstructured_list_test.go
...y/pkg/apis/meta/v1/unstructured/unstructured_list_test.go
+18
-10
converter.go
....io/apimachinery/pkg/conversion/unstructured/converter.go
+6
-4
apis_meta_v1_unstructed_unstructure_test.go
...nery/pkg/test/apis_meta_v1_unstructed_unstructure_test.go
+8
-7
No files found.
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD
View file @
7c10cbc6
...
@@ -8,21 +8,29 @@ load(
...
@@ -8,21 +8,29 @@ load(
go_test(
go_test(
name = "go_default_test",
name = "go_default_test",
srcs = ["unstructured_test.go"],
srcs = [
"helpers_test.go",
"unstructured_list_test.go",
],
importpath = "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
importpath = "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
library = ":go_default_library",
library = ":go_default_library",
deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"],
deps = [
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/github.com/stretchr/testify/require:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
],
)
)
go_library(
go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"helpers.go",
"unstructured.go",
"unstructured.go",
"unstructured_list.go",
"zz_generated.deepcopy.go",
"zz_generated.deepcopy.go",
],
],
importpath = "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
importpath = "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
deps = [
deps = [
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/conversion/unstructured:go_default_library",
...
...
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go
View file @
7c10cbc6
This diff is collapsed.
Click to expand it.
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers_test.go
View file @
7c10cbc6
...
@@ -41,3 +41,20 @@ func TestCodecOfUnstructuredList(t *testing.T) {
...
@@ -41,3 +41,20 @@ func TestCodecOfUnstructuredList(t *testing.T) {
}
}
wg
.
Wait
()
wg
.
Wait
()
}
}
func
TestRemoveNestedField
(
t
*
testing
.
T
)
{
obj
:=
map
[
string
]
interface
{}{
"x"
:
map
[
string
]
interface
{}{
"y"
:
1
,
"a"
:
"foo"
,
},
}
RemoveNestedField
(
obj
,
"x"
,
"a"
)
assert
.
Len
(
t
,
obj
[
"x"
],
1
)
RemoveNestedField
(
obj
,
"x"
,
"y"
)
assert
.
Empty
(
t
,
obj
[
"x"
])
RemoveNestedField
(
obj
,
"x"
)
assert
.
Empty
(
t
,
obj
)
RemoveNestedField
(
obj
,
"x"
)
// Remove of a non-existent field
assert
.
Empty
(
t
,
obj
)
}
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go
View file @
7c10cbc6
...
@@ -20,8 +20,6 @@ import (
...
@@ -20,8 +20,6 @@ import (
"bytes"
"bytes"
"fmt"
"fmt"
"github.com/golang/glog"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/conversion/unstructured"
"k8s.io/apimachinery/pkg/conversion/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
...
@@ -122,40 +120,48 @@ func (u *Unstructured) setNestedField(value interface{}, fields ...string) {
...
@@ -122,40 +120,48 @@ func (u *Unstructured) setNestedField(value interface{}, fields ...string) {
if
u
.
Object
==
nil
{
if
u
.
Object
==
nil
{
u
.
Object
=
make
(
map
[
string
]
interface
{})
u
.
Object
=
make
(
map
[
string
]
interface
{})
}
}
s
etNestedField
(
u
.
Object
,
value
,
fields
...
)
S
etNestedField
(
u
.
Object
,
value
,
fields
...
)
}
}
func
(
u
*
Unstructured
)
setNestedSlice
(
value
[]
string
,
fields
...
string
)
{
func
(
u
*
Unstructured
)
setNestedSlice
(
value
[]
string
,
fields
...
string
)
{
if
u
.
Object
==
nil
{
if
u
.
Object
==
nil
{
u
.
Object
=
make
(
map
[
string
]
interface
{})
u
.
Object
=
make
(
map
[
string
]
interface
{})
}
}
setNested
Slice
(
u
.
Object
,
value
,
fields
...
)
SetNestedString
Slice
(
u
.
Object
,
value
,
fields
...
)
}
}
func
(
u
*
Unstructured
)
setNestedMap
(
value
map
[
string
]
string
,
fields
...
string
)
{
func
(
u
*
Unstructured
)
setNestedMap
(
value
map
[
string
]
string
,
fields
...
string
)
{
if
u
.
Object
==
nil
{
if
u
.
Object
==
nil
{
u
.
Object
=
make
(
map
[
string
]
interface
{})
u
.
Object
=
make
(
map
[
string
]
interface
{})
}
}
setNested
Map
(
u
.
Object
,
value
,
fields
...
)
SetNestedString
Map
(
u
.
Object
,
value
,
fields
...
)
}
}
func
(
u
*
Unstructured
)
GetOwnerReferences
()
[]
metav1
.
OwnerReference
{
func
(
u
*
Unstructured
)
GetOwnerReferences
()
[]
metav1
.
OwnerReference
{
original
,
err
:=
getOwnerReferences
(
u
.
Object
)
field
,
ok
:=
nestedFieldNoCopy
(
u
.
Object
,
"metadata"
,
"ownerReferences"
)
if
err
!=
nil
{
if
!
ok
{
glog
.
V
(
6
)
.
Info
(
err
)
return
nil
}
original
,
ok
:=
field
.
([]
interface
{})
if
!
ok
{
return
nil
return
nil
}
}
ret
:=
make
([]
metav1
.
OwnerReference
,
0
,
len
(
original
))
ret
:=
make
([]
metav1
.
OwnerReference
,
0
,
len
(
original
))
for
i
:=
0
;
i
<
len
(
original
);
i
++
{
for
_
,
obj
:=
range
original
{
ret
=
append
(
ret
,
extractOwnerReference
(
original
[
i
]))
o
,
ok
:=
obj
.
(
map
[
string
]
interface
{})
if
!
ok
{
// expected map[string]interface{}, got something else
return
nil
}
ret
=
append
(
ret
,
extractOwnerReference
(
o
))
}
}
return
ret
return
ret
}
}
func
(
u
*
Unstructured
)
SetOwnerReferences
(
references
[]
metav1
.
OwnerReference
)
{
func
(
u
*
Unstructured
)
SetOwnerReferences
(
references
[]
metav1
.
OwnerReference
)
{
var
newReferences
=
make
([]
map
[
string
]
interface
{},
0
,
len
(
references
))
newReferences
:=
make
([
]
interface
{},
0
,
len
(
references
))
for
i
:=
0
;
i
<
len
(
references
);
i
++
{
for
_
,
reference
:=
range
references
{
newReferences
=
append
(
newReferences
,
setOwnerReference
(
reference
s
[
i
]
))
newReferences
=
append
(
newReferences
,
setOwnerReference
(
reference
))
}
}
u
.
setNestedField
(
newReferences
,
"metadata"
,
"ownerReferences"
)
u
.
setNestedField
(
newReferences
,
"metadata"
,
"ownerReferences"
)
}
}
...
@@ -217,7 +223,11 @@ func (u *Unstructured) SetResourceVersion(version string) {
...
@@ -217,7 +223,11 @@ func (u *Unstructured) SetResourceVersion(version string) {
}
}
func
(
u
*
Unstructured
)
GetGeneration
()
int64
{
func
(
u
*
Unstructured
)
GetGeneration
()
int64
{
return
getNestedInt64
(
u
.
Object
,
"metadata"
,
"generation"
)
val
,
ok
:=
NestedInt64
(
u
.
Object
,
"metadata"
,
"generation"
)
if
!
ok
{
return
0
}
return
val
}
}
func
(
u
*
Unstructured
)
SetGeneration
(
generation
int64
)
{
func
(
u
*
Unstructured
)
SetGeneration
(
generation
int64
)
{
...
@@ -262,7 +272,7 @@ func (u *Unstructured) GetDeletionTimestamp() *metav1.Time {
...
@@ -262,7 +272,7 @@ func (u *Unstructured) GetDeletionTimestamp() *metav1.Time {
func
(
u
*
Unstructured
)
SetDeletionTimestamp
(
timestamp
*
metav1
.
Time
)
{
func
(
u
*
Unstructured
)
SetDeletionTimestamp
(
timestamp
*
metav1
.
Time
)
{
if
timestamp
==
nil
{
if
timestamp
==
nil
{
u
.
setNestedField
(
nil
,
"metadata"
,
"deletionTimestamp"
)
RemoveNestedField
(
u
.
Object
,
"metadata"
,
"deletionTimestamp"
)
return
return
}
}
ts
,
_
:=
timestamp
.
MarshalQueryParameter
()
ts
,
_
:=
timestamp
.
MarshalQueryParameter
()
...
@@ -270,15 +280,27 @@ func (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time) {
...
@@ -270,15 +280,27 @@ func (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time) {
}
}
func
(
u
*
Unstructured
)
GetDeletionGracePeriodSeconds
()
*
int64
{
func
(
u
*
Unstructured
)
GetDeletionGracePeriodSeconds
()
*
int64
{
return
getNestedInt64Pointer
(
u
.
Object
,
"metadata"
,
"deletionGracePeriodSeconds"
)
val
,
ok
:=
NestedInt64
(
u
.
Object
,
"metadata"
,
"deletionGracePeriodSeconds"
)
if
!
ok
{
return
nil
}
return
&
val
}
}
func
(
u
*
Unstructured
)
SetDeletionGracePeriodSeconds
(
deletionGracePeriodSeconds
*
int64
)
{
func
(
u
*
Unstructured
)
SetDeletionGracePeriodSeconds
(
deletionGracePeriodSeconds
*
int64
)
{
u
.
setNestedField
(
deletionGracePeriodSeconds
,
"metadata"
,
"deletionGracePeriodSeconds"
)
if
deletionGracePeriodSeconds
==
nil
{
RemoveNestedField
(
u
.
Object
,
"metadata"
,
"deletionGracePeriodSeconds"
)
return
}
u
.
setNestedField
(
*
deletionGracePeriodSeconds
,
"metadata"
,
"deletionGracePeriodSeconds"
)
}
}
func
(
u
*
Unstructured
)
GetLabels
()
map
[
string
]
string
{
func
(
u
*
Unstructured
)
GetLabels
()
map
[
string
]
string
{
return
getNestedMap
(
u
.
Object
,
"metadata"
,
"labels"
)
m
,
ok
:=
NestedStringMap
(
u
.
Object
,
"metadata"
,
"labels"
)
if
!
ok
{
return
nil
}
return
m
}
}
func
(
u
*
Unstructured
)
SetLabels
(
labels
map
[
string
]
string
)
{
func
(
u
*
Unstructured
)
SetLabels
(
labels
map
[
string
]
string
)
{
...
@@ -286,7 +308,11 @@ func (u *Unstructured) SetLabels(labels map[string]string) {
...
@@ -286,7 +308,11 @@ func (u *Unstructured) SetLabels(labels map[string]string) {
}
}
func
(
u
*
Unstructured
)
GetAnnotations
()
map
[
string
]
string
{
func
(
u
*
Unstructured
)
GetAnnotations
()
map
[
string
]
string
{
return
getNestedMap
(
u
.
Object
,
"metadata"
,
"annotations"
)
m
,
ok
:=
NestedStringMap
(
u
.
Object
,
"metadata"
,
"annotations"
)
if
!
ok
{
return
nil
}
return
m
}
}
func
(
u
*
Unstructured
)
SetAnnotations
(
annotations
map
[
string
]
string
)
{
func
(
u
*
Unstructured
)
SetAnnotations
(
annotations
map
[
string
]
string
)
{
...
@@ -308,12 +334,13 @@ func (u *Unstructured) GroupVersionKind() schema.GroupVersionKind {
...
@@ -308,12 +334,13 @@ func (u *Unstructured) GroupVersionKind() schema.GroupVersionKind {
}
}
func
(
u
*
Unstructured
)
GetInitializers
()
*
metav1
.
Initializers
{
func
(
u
*
Unstructured
)
GetInitializers
()
*
metav1
.
Initializers
{
field
:=
getNestedField
(
u
.
Object
,
"metadata"
,
"initializers"
)
field
,
ok
:=
nestedFieldNoCopy
(
u
.
Object
,
"metadata"
,
"initializers"
)
if
field
==
nil
{
if
!
ok
{
return
nil
return
nil
}
}
obj
,
ok
:=
field
.
(
map
[
string
]
interface
{})
obj
,
ok
:=
field
.
(
map
[
string
]
interface
{})
if
!
ok
{
if
!
ok
{
// expected map[string]interface{}, got something else
return
nil
return
nil
}
}
out
:=
&
metav1
.
Initializers
{}
out
:=
&
metav1
.
Initializers
{}
...
@@ -324,22 +351,23 @@ func (u *Unstructured) GetInitializers() *metav1.Initializers {
...
@@ -324,22 +351,23 @@ func (u *Unstructured) GetInitializers() *metav1.Initializers {
}
}
func
(
u
*
Unstructured
)
SetInitializers
(
initializers
*
metav1
.
Initializers
)
{
func
(
u
*
Unstructured
)
SetInitializers
(
initializers
*
metav1
.
Initializers
)
{
if
u
.
Object
==
nil
{
u
.
Object
=
make
(
map
[
string
]
interface
{})
}
if
initializers
==
nil
{
if
initializers
==
nil
{
setNestedField
(
u
.
Object
,
nil
,
"metadata"
,
"initializers"
)
RemoveNestedField
(
u
.
Object
,
"metadata"
,
"initializers"
)
return
return
}
}
out
,
err
:=
converter
.
ToUnstructured
(
initializers
)
out
,
err
:=
converter
.
ToUnstructured
(
initializers
)
if
err
!=
nil
{
if
err
!=
nil
{
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"unable to retrieve initializers for object: %v"
,
err
))
utilruntime
.
HandleError
(
fmt
.
Errorf
(
"unable to retrieve initializers for object: %v"
,
err
))
}
}
setNestedField
(
u
.
Object
,
out
,
"metadata"
,
"initializers"
)
u
.
setNestedField
(
out
,
"metadata"
,
"initializers"
)
}
}
func
(
u
*
Unstructured
)
GetFinalizers
()
[]
string
{
func
(
u
*
Unstructured
)
GetFinalizers
()
[]
string
{
return
getNestedSlice
(
u
.
Object
,
"metadata"
,
"finalizers"
)
val
,
ok
:=
NestedStringSlice
(
u
.
Object
,
"metadata"
,
"finalizers"
)
if
!
ok
{
return
nil
}
return
val
}
}
func
(
u
*
Unstructured
)
SetFinalizers
(
finalizers
[]
string
)
{
func
(
u
*
Unstructured
)
SetFinalizers
(
finalizers
[]
string
)
{
...
...
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go
View file @
7c10cbc6
...
@@ -161,5 +161,5 @@ func (u *UnstructuredList) setNestedField(value interface{}, fields ...string) {
...
@@ -161,5 +161,5 @@ func (u *UnstructuredList) setNestedField(value interface{}, fields ...string) {
if
u
.
Object
==
nil
{
if
u
.
Object
==
nil
{
u
.
Object
=
make
(
map
[
string
]
interface
{})
u
.
Object
=
make
(
map
[
string
]
interface
{})
}
}
s
etNestedField
(
u
.
Object
,
value
,
fields
...
)
S
etNestedField
(
u
.
Object
,
value
,
fields
...
)
}
}
staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list_test.go
View file @
7c10cbc6
...
@@ -18,6 +18,11 @@ package unstructured
...
@@ -18,6 +18,11 @@ package unstructured
import
(
import
(
"testing"
"testing"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
)
func
TestUnstructuredList
(
t
*
testing
.
T
)
{
func
TestUnstructuredList
(
t
*
testing
.
T
)
{
...
@@ -29,12 +34,10 @@ func TestUnstructuredList(t *testing.T) {
...
@@ -29,12 +34,10 @@ func TestUnstructuredList(t *testing.T) {
}
}
content
:=
list
.
UnstructuredContent
()
content
:=
list
.
UnstructuredContent
()
items
:=
content
[
"items"
]
.
([]
interface
{})
items
:=
content
[
"items"
]
.
([]
interface
{})
if
len
(
items
)
!=
1
{
require
.
Len
(
t
,
items
,
1
)
t
.
Fatalf
(
"unexpected items: %#v"
,
items
)
val
,
ok
:=
NestedFieldCopy
(
items
[
0
]
.
(
map
[
string
]
interface
{}),
"metadata"
,
"name"
)
}
require
.
True
(
t
,
ok
)
if
getNestedField
(
items
[
0
]
.
(
map
[
string
]
interface
{}),
"metadata"
,
"name"
)
!=
"test"
{
assert
.
Equal
(
t
,
"test"
,
val
)
t
.
Fatalf
(
"unexpected fields: %#v"
,
items
[
0
])
}
}
}
func
TestNilDeletionTimestamp
(
t
*
testing
.
T
)
{
func
TestNilDeletionTimestamp
(
t
*
testing
.
T
)
{
...
@@ -48,9 +51,14 @@ func TestNilDeletionTimestamp(t *testing.T) {
...
@@ -48,9 +51,14 @@ func TestNilDeletionTimestamp(t *testing.T) {
if
del
!=
nil
{
if
del
!=
nil
{
t
.
Errorf
(
"unexpected non-nil deletion timestamp: %v"
,
del
)
t
.
Errorf
(
"unexpected non-nil deletion timestamp: %v"
,
del
)
}
}
_
,
ok
:=
u
.
Object
[
"metadata"
]
assert
.
False
(
t
,
ok
)
now
:=
metav1
.
Now
()
u
.
SetDeletionTimestamp
(
&
now
)
assert
.
Equal
(
t
,
now
.
Unix
(),
u
.
GetDeletionTimestamp
()
.
Unix
())
u
.
SetDeletionTimestamp
(
nil
)
metadata
:=
u
.
Object
[
"metadata"
]
.
(
map
[
string
]
interface
{})
metadata
:=
u
.
Object
[
"metadata"
]
.
(
map
[
string
]
interface
{})
deletionTimestamp
:=
metadata
[
"deletionTimestamp"
]
_
,
ok
=
metadata
[
"deletionTimestamp"
]
if
deletionTimestamp
!=
nil
{
assert
.
False
(
t
,
ok
)
t
.
Errorf
(
"unexpected deletion timestamp field: %q"
,
deletionTimestamp
)
}
}
}
staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/converter.go
View file @
7c10cbc6
...
@@ -426,21 +426,23 @@ func (c *converterImpl) ToUnstructured(obj interface{}) (map[string]interface{},
...
@@ -426,21 +426,23 @@ func (c *converterImpl) ToUnstructured(obj interface{}) (map[string]interface{},
// DeepCopyJSON deep copies the passed value, assuming it is a valid JSON representation i.e. only contains
// DeepCopyJSON deep copies the passed value, assuming it is a valid JSON representation i.e. only contains
// types produced by json.Unmarshal().
// types produced by json.Unmarshal().
func
DeepCopyJSON
(
x
map
[
string
]
interface
{})
map
[
string
]
interface
{}
{
func
DeepCopyJSON
(
x
map
[
string
]
interface
{})
map
[
string
]
interface
{}
{
return
deepCopyJSON
(
x
)
.
(
map
[
string
]
interface
{})
return
DeepCopyJSONValue
(
x
)
.
(
map
[
string
]
interface
{})
}
}
func
deepCopyJSON
(
x
interface
{})
interface
{}
{
// DeepCopyJSONValue deep copies the passed value, assuming it is a valid JSON representation i.e. only contains
// types produced by json.Unmarshal().
func
DeepCopyJSONValue
(
x
interface
{})
interface
{}
{
switch
x
:=
x
.
(
type
)
{
switch
x
:=
x
.
(
type
)
{
case
map
[
string
]
interface
{}
:
case
map
[
string
]
interface
{}
:
clone
:=
make
(
map
[
string
]
interface
{},
len
(
x
))
clone
:=
make
(
map
[
string
]
interface
{},
len
(
x
))
for
k
,
v
:=
range
x
{
for
k
,
v
:=
range
x
{
clone
[
k
]
=
deepCopyJSON
(
v
)
clone
[
k
]
=
DeepCopyJSONValue
(
v
)
}
}
return
clone
return
clone
case
[]
interface
{}
:
case
[]
interface
{}
:
clone
:=
make
([]
interface
{},
len
(
x
))
clone
:=
make
([]
interface
{},
len
(
x
))
for
i
,
v
:=
range
x
{
for
i
,
v
:=
range
x
{
clone
[
i
]
=
deepCopyJSON
(
v
)
clone
[
i
]
=
DeepCopyJSONValue
(
v
)
}
}
return
clone
return
clone
case
string
,
int64
,
bool
,
float64
,
nil
,
encodingjson
.
Number
:
case
string
,
int64
,
bool
,
float64
,
nil
,
encodingjson
.
Number
:
...
...
staging/src/k8s.io/apimachinery/pkg/test/apis_meta_v1_unstructed_unstructure_test.go
View file @
7c10cbc6
...
@@ -84,6 +84,7 @@ func TestDecode(t *testing.T) {
...
@@ -84,6 +84,7 @@ func TestDecode(t *testing.T) {
json
:
[]
byte
(
`{"apiVersion": "test", "kind": "test_list", "items": []}`
),
json
:
[]
byte
(
`{"apiVersion": "test", "kind": "test_list", "items": []}`
),
want
:
&
unstructured
.
UnstructuredList
{
want
:
&
unstructured
.
UnstructuredList
{
Object
:
map
[
string
]
interface
{}{
"apiVersion"
:
"test"
,
"kind"
:
"test_list"
},
Object
:
map
[
string
]
interface
{}{
"apiVersion"
:
"test"
,
"kind"
:
"test_list"
},
Items
:
[]
unstructured
.
Unstructured
{},
},
},
},
},
{
{
...
@@ -147,14 +148,14 @@ func TestUnstructuredGetters(t *testing.T) {
...
@@ -147,14 +148,14 @@ func TestUnstructuredGetters(t *testing.T) {
"annotations"
:
map
[
string
]
interface
{}{
"annotations"
:
map
[
string
]
interface
{}{
"test_annotation"
:
"test_value"
,
"test_annotation"
:
"test_value"
,
},
},
"ownerReferences"
:
[]
map
[
string
]
interface
{}{
"ownerReferences"
:
[]
interface
{}{
{
map
[
string
]
interface
{}
{
"kind"
:
"Pod"
,
"kind"
:
"Pod"
,
"name"
:
"poda"
,
"name"
:
"poda"
,
"apiVersion"
:
"v1"
,
"apiVersion"
:
"v1"
,
"uid"
:
"1"
,
"uid"
:
"1"
,
},
},
{
map
[
string
]
interface
{}
{
"kind"
:
"Pod"
,
"kind"
:
"Pod"
,
"name"
:
"podb"
,
"name"
:
"podb"
,
"apiVersion"
:
"v1"
,
"apiVersion"
:
"v1"
,
...
@@ -273,7 +274,7 @@ func TestUnstructuredSetters(t *testing.T) {
...
@@ -273,7 +274,7 @@ func TestUnstructuredSetters(t *testing.T) {
"selfLink"
:
"test_selfLink"
,
"selfLink"
:
"test_selfLink"
,
"creationTimestamp"
:
"2009-11-10T23:00:00Z"
,
"creationTimestamp"
:
"2009-11-10T23:00:00Z"
,
"deletionTimestamp"
:
"2010-11-10T23:00:00Z"
,
"deletionTimestamp"
:
"2010-11-10T23:00:00Z"
,
"deletionGracePeriodSeconds"
:
&
ten
,
"deletionGracePeriodSeconds"
:
ten
,
"generation"
:
ten
,
"generation"
:
ten
,
"labels"
:
map
[
string
]
interface
{}{
"labels"
:
map
[
string
]
interface
{}{
"test_label"
:
"test_value"
,
"test_label"
:
"test_value"
,
...
@@ -281,14 +282,14 @@ func TestUnstructuredSetters(t *testing.T) {
...
@@ -281,14 +282,14 @@ func TestUnstructuredSetters(t *testing.T) {
"annotations"
:
map
[
string
]
interface
{}{
"annotations"
:
map
[
string
]
interface
{}{
"test_annotation"
:
"test_value"
,
"test_annotation"
:
"test_value"
,
},
},
"ownerReferences"
:
[]
map
[
string
]
interface
{}{
"ownerReferences"
:
[]
interface
{}{
{
map
[
string
]
interface
{}
{
"kind"
:
"Pod"
,
"kind"
:
"Pod"
,
"name"
:
"poda"
,
"name"
:
"poda"
,
"apiVersion"
:
"v1"
,
"apiVersion"
:
"v1"
,
"uid"
:
"1"
,
"uid"
:
"1"
,
},
},
{
map
[
string
]
interface
{}
{
"kind"
:
"Pod"
,
"kind"
:
"Pod"
,
"name"
:
"podb"
,
"name"
:
"podb"
,
"apiVersion"
:
"v1"
,
"apiVersion"
:
"v1"
,
...
...
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