Fix self linking of objects returned in lists.

This commit is contained in:
Daniel Smith
2014-10-30 15:04:11 -07:00
parent b2b090c8f4
commit b28234fac6
4 changed files with 97 additions and 1 deletions

View File

@@ -23,6 +23,11 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/conversion"
)
func IsListType(obj Object) bool {
_, err := GetItemsPtr(obj)
return err == nil
}
// GetItemsPtr returns a pointer to the list object's Items member.
// If 'list' doesn't have an Items member, it's not really a list type
// and an error will be returned.

View File

@@ -26,6 +26,21 @@ import (
"github.com/google/gofuzz"
)
func TestIsList(t *testing.T) {
tests := []struct {
obj runtime.Object
isList bool
}{
{&api.PodList{}, true},
{&api.Pod{}, false},
}
for _, item := range tests {
if e, a := item.isList, runtime.IsListType(item.obj); e != a {
t.Errorf("%v: Expected %v, got %v", reflect.TypeOf(item.obj), e, a)
}
}
}
func TestExtractList(t *testing.T) {
pl := &api.PodList{
Items: []api.Pod{