Updating kubernetes proper to use latest etcd client library

This commit is contained in:
Timothy St. Clair
2015-12-10 08:03:59 -06:00
parent bae050ffea
commit c505a5d49d
19 changed files with 265 additions and 196 deletions

View File

@@ -20,8 +20,10 @@ import (
"fmt"
"math/rand"
"github.com/coreos/go-etcd/etcd"
etcd "github.com/coreos/etcd/client"
"github.com/golang/glog"
"golang.org/x/net/context"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/storage"
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
@@ -35,15 +37,22 @@ func init() {
RequireEtcd()
}
func NewEtcdClient() *etcd.Client {
return etcd.NewClient([]string{})
func NewEtcdClient() etcd.Client {
cfg := etcd.Config{
Endpoints: []string{"http://127.0.0.1:4001"},
}
client, err := etcd.New(cfg)
if err != nil {
glog.Fatalf("unable to connect to etcd for testing: %v", err)
}
return client
}
func NewEtcdStorage() storage.Interface {
return etcdstorage.NewEtcdStorage(NewEtcdClient(), testapi.Default.Codec(), etcdtest.PathPrefix())
}
func NewExtensionsEtcdStorage(client *etcd.Client) storage.Interface {
func NewExtensionsEtcdStorage(client etcd.Client) storage.Interface {
if client == nil {
client = NewEtcdClient()
}
@@ -51,14 +60,14 @@ func NewExtensionsEtcdStorage(client *etcd.Client) storage.Interface {
}
func RequireEtcd() {
if _, err := NewEtcdClient().Get("/", false, false); err != nil {
if _, err := etcd.NewKeysAPI(NewEtcdClient()).Get(context.TODO(), "/", nil); err != nil {
glog.Fatalf("unable to connect to etcd for testing: %v", err)
}
}
func WithEtcdKey(f func(string)) {
prefix := fmt.Sprintf("/test-%d", rand.Int63())
defer NewEtcdClient().Delete(prefix, true)
defer etcd.NewKeysAPI(NewEtcdClient()).Delete(context.TODO(), prefix, &etcd.DeleteOptions{Recursive: true})
f(prefix)
}
@@ -68,13 +77,13 @@ func WithEtcdKey(f func(string)) {
// of the test run.
func DeleteAllEtcdKeys() {
glog.Infof("Deleting all etcd keys")
client := NewEtcdClient()
keys, err := client.Get("/", false, false)
keysAPI := etcd.NewKeysAPI(NewEtcdClient())
keys, err := keysAPI.Get(context.TODO(), "/", nil)
if err != nil {
glog.Fatalf("Unable to list root etcd keys: %v", err)
}
for _, node := range keys.Node.Nodes {
if _, err := client.Delete(node.Key, true); err != nil {
if _, err := keysAPI.Delete(context.TODO(), node.Key, &etcd.DeleteOptions{Recursive: true}); err != nil {
glog.Fatalf("Unable delete key: %v", err)
}
}