Merge pull request #17559 from wojtek-t/remove_etcdclient_from_master_test

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2015-11-20 17:07:40 -08:00
commit 18e0516f1e

View File

@ -44,15 +44,17 @@ import (
"k8s.io/kubernetes/pkg/registry/namespace" "k8s.io/kubernetes/pkg/registry/namespace"
"k8s.io/kubernetes/pkg/registry/registrytest" "k8s.io/kubernetes/pkg/registry/registrytest"
thirdpartyresourcedatastorage "k8s.io/kubernetes/pkg/registry/thirdpartyresourcedata/etcd" thirdpartyresourcedatastorage "k8s.io/kubernetes/pkg/registry/thirdpartyresourcedata/etcd"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd" etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest" "k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing"
"k8s.io/kubernetes/pkg/tools"
"k8s.io/kubernetes/pkg/util" "k8s.io/kubernetes/pkg/util"
"k8s.io/kubernetes/pkg/util/intstr" "k8s.io/kubernetes/pkg/util/intstr"
"github.com/emicklei/go-restful" "github.com/emicklei/go-restful"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"golang.org/x/net/context"
) )
// setUp is a convience function for setting up for (most) tests. // setUp is a convience function for setting up for (most) tests.
@ -527,13 +529,12 @@ func testInstallThirdPartyAPIListVersion(t *testing.T, version string) {
} }
for _, test := range tests { for _, test := range tests {
func() { func() {
_, etcdserver, server, assert := initThirdParty(t, version) master, etcdserver, server, assert := initThirdParty(t, version)
defer server.Close() defer server.Close()
defer etcdserver.Terminate(t) defer etcdserver.Terminate(t)
client := etcdserver.Client
if test.items != nil { if test.items != nil {
setupEtcdList(client, "/ThirdPartyResourceData/company.com/foos/default", test.items) storeThirdPartyList(master.thirdPartyStorage, "/ThirdPartyResourceData/company.com/foos/default", test.items)
} }
resp, err := http.Get(server.URL + "/apis/company.com/" + version + "/namespaces/default/foos") resp, err := http.Get(server.URL + "/apis/company.com/" + version + "/namespaces/default/foos")
@ -587,7 +588,7 @@ func testInstallThirdPartyAPIListVersion(t *testing.T, version string) {
} }
} }
func encodeToThirdParty(name string, obj interface{}) ([]byte, error) { func encodeToThirdParty(name string, obj interface{}) (runtime.Object, error) {
serial, err := json.Marshal(obj) serial, err := json.Marshal(obj)
if err != nil { if err != nil {
return nil, err return nil, err
@ -596,23 +597,20 @@ func encodeToThirdParty(name string, obj interface{}) ([]byte, error) {
ObjectMeta: api.ObjectMeta{Name: name}, ObjectMeta: api.ObjectMeta{Name: name},
Data: serial, Data: serial,
} }
return testapi.Extensions.Codec().Encode(&thirdPartyData) return &thirdPartyData, nil
} }
// TODO: Convert to storage.Interface. func storeThirdPartyObject(s storage.Interface, path, name string, obj interface{}) error {
func storeToEtcd(client tools.EtcdClient, path, name string, obj interface{}) error {
data, err := encodeToThirdParty(name, obj) data, err := encodeToThirdParty(name, obj)
if err != nil { if err != nil {
return err return err
} }
_, err = client.Set(etcdtest.PathPrefix()+path, string(data), 0) return s.Set(context.TODO(), etcdtest.AddPrefix(path), data, nil, 0)
return err
} }
// TODO: Convert to storage.Interface. func storeThirdPartyList(s storage.Interface, path string, list []Foo) error {
func setupEtcdList(client tools.EtcdClient, path string, list []Foo) error {
for _, obj := range list { for _, obj := range list {
if err := storeToEtcd(client, path+"/"+obj.Name, obj.Name, obj); err != nil { if err := storeThirdPartyObject(s, path+"/"+obj.Name, obj.Name, obj); err != nil {
return err return err
} }
} }
@ -640,11 +638,10 @@ func TestInstallThirdPartyAPIGet(t *testing.T) {
} }
func testInstallThirdPartyAPIGetVersion(t *testing.T, version string) { func testInstallThirdPartyAPIGetVersion(t *testing.T, version string) {
_, etcdserver, server, assert := initThirdParty(t, version) master, etcdserver, server, assert := initThirdParty(t, version)
defer server.Close() defer server.Close()
defer etcdserver.Terminate(t) defer etcdserver.Terminate(t)
client := etcdserver.Client
expectedObj := Foo{ expectedObj := Foo{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Name: "test", Name: "test",
@ -656,7 +653,7 @@ func testInstallThirdPartyAPIGetVersion(t *testing.T, version string) {
SomeField: "test field", SomeField: "test field",
OtherField: 10, OtherField: 10,
} }
if !assert.NoError(storeToEtcd(client, "/ThirdPartyResourceData/company.com/foos/default/test", "test", expectedObj)) { if !assert.NoError(storeThirdPartyObject(master.thirdPartyStorage, "/ThirdPartyResourceData/company.com/foos/default/test", "test", expectedObj)) {
t.FailNow() t.FailNow()
return return
} }
@ -688,11 +685,10 @@ func TestInstallThirdPartyAPIPost(t *testing.T) {
} }
func testInstallThirdPartyAPIPostForVersion(t *testing.T, version string) { func testInstallThirdPartyAPIPostForVersion(t *testing.T, version string) {
_, etcdserver, server, assert := initThirdParty(t, version) master, etcdserver, server, assert := initThirdParty(t, version)
defer server.Close() defer server.Close()
defer etcdserver.Terminate(t) defer etcdserver.Terminate(t)
client := etcdserver.Client
inputObj := Foo{ inputObj := Foo{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Name: "test", Name: "test",
@ -731,19 +727,14 @@ func testInstallThirdPartyAPIPostForVersion(t *testing.T, version string) {
t.Errorf("expected:\n%v\nsaw:\n%v\n", expectedObj, item) t.Errorf("expected:\n%v\nsaw:\n%v\n", expectedObj, item)
} }
etcdResp, err := client.Get(etcdtest.PathPrefix()+"/ThirdPartyResourceData/company.com/foos/default/test", false, false) thirdPartyObj := extensions.ThirdPartyResourceData{}
err = master.thirdPartyStorage.Get(
context.TODO(), etcdtest.AddPrefix("/ThirdPartyResourceData/company.com/foos/default/test"),
&thirdPartyObj, false)
if !assert.NoError(err) { if !assert.NoError(err) {
t.FailNow() t.FailNow()
} }
obj, err := testapi.Extensions.Codec().Decode([]byte(etcdResp.Node.Value))
if err != nil {
t.Errorf("unexpected error: %v", err)
}
thirdPartyObj, ok := obj.(*extensions.ThirdPartyResourceData)
if !ok {
t.Errorf("unexpected object: %v", obj)
}
item = Foo{} item = Foo{}
assert.NoError(json.Unmarshal(thirdPartyObj.Data, &item)) assert.NoError(json.Unmarshal(thirdPartyObj.Data, &item))
@ -759,11 +750,10 @@ func TestInstallThirdPartyAPIDelete(t *testing.T) {
} }
func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) { func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
_, etcdserver, server, assert := initThirdParty(t, version) master, etcdserver, server, assert := initThirdParty(t, version)
defer server.Close() defer server.Close()
defer etcdserver.Terminate(t) defer etcdserver.Terminate(t)
client := etcdserver.Client
expectedObj := Foo{ expectedObj := Foo{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Name: "test", Name: "test",
@ -775,7 +765,7 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
SomeField: "test field", SomeField: "test field",
OtherField: 10, OtherField: 10,
} }
if !assert.NoError(storeToEtcd(client, "/ThirdPartyResourceData/company.com/foos/default/test", "test", expectedObj)) { if !assert.NoError(storeThirdPartyObject(master.thirdPartyStorage, "/ThirdPartyResourceData/company.com/foos/default/test", "test", expectedObj)) {
t.FailNow() t.FailNow()
return return
} }
@ -813,7 +803,9 @@ func testInstallThirdPartyAPIDeleteVersion(t *testing.T, version string) {
assert.Equal(http.StatusNotFound, resp.StatusCode) assert.Equal(http.StatusNotFound, resp.StatusCode)
expectedDeletedKey := etcdtest.AddPrefix("ThirdPartyResourceData/company.com/foos/default/test") expectedDeletedKey := etcdtest.AddPrefix("ThirdPartyResourceData/company.com/foos/default/test")
_, err = client.Get(expectedDeletedKey, false, false) thirdPartyObj := extensions.ThirdPartyResourceData{}
err = master.thirdPartyStorage.Get(
context.TODO(), expectedDeletedKey, &thirdPartyObj, false)
if !etcdstorage.IsEtcdNotFound(err) { if !etcdstorage.IsEtcdNotFound(err) {
t.Errorf("expected deletion didn't happen: %v", err) t.Errorf("expected deletion didn't happen: %v", err)
} }
@ -839,7 +831,6 @@ func testInstallThirdPartyResourceRemove(t *testing.T, version string) {
defer server.Close() defer server.Close()
defer etcdserver.Terminate(t) defer etcdserver.Terminate(t)
client := etcdserver.Client
expectedObj := Foo{ expectedObj := Foo{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Name: "test", Name: "test",
@ -850,13 +841,13 @@ func testInstallThirdPartyResourceRemove(t *testing.T, version string) {
SomeField: "test field", SomeField: "test field",
OtherField: 10, OtherField: 10,
} }
if !assert.NoError(storeToEtcd(client, "/ThirdPartyResourceData/company.com/foos/default/test", "test", expectedObj)) { if !assert.NoError(storeThirdPartyObject(master.thirdPartyStorage, "/ThirdPartyResourceData/company.com/foos/default/test", "test", expectedObj)) {
t.FailNow() t.FailNow()
return return
} }
secondObj := expectedObj secondObj := expectedObj
secondObj.Name = "bar" secondObj.Name = "bar"
if !assert.NoError(storeToEtcd(client, "/ThirdPartyResourceData/company.com/foos/default/bar", "bar", secondObj)) { if !assert.NoError(storeThirdPartyObject(master.thirdPartyStorage, "/ThirdPartyResourceData/company.com/foos/default/bar", "bar", secondObj)) {
t.FailNow() t.FailNow()
return return
} }
@ -900,7 +891,8 @@ func testInstallThirdPartyResourceRemove(t *testing.T, version string) {
etcdtest.AddPrefix("/ThirdPartyResourceData/company.com/foos/default/bar"), etcdtest.AddPrefix("/ThirdPartyResourceData/company.com/foos/default/bar"),
} }
for _, key := range expectedDeletedKeys { for _, key := range expectedDeletedKeys {
_, err := client.Get(key, false, false) thirdPartyObj := extensions.ThirdPartyResourceData{}
err := master.thirdPartyStorage.Get(context.TODO(), key, &thirdPartyObj, false)
if !etcdstorage.IsEtcdNotFound(err) { if !etcdstorage.IsEtcdNotFound(err) {
t.Errorf("expected deletion didn't happen: %v", err) t.Errorf("expected deletion didn't happen: %v", err)
} }