From 8300dd890171bf2d29d9f1648b0f08d2f518e601 Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Mon, 27 Nov 2017 15:33:47 -0500 Subject: [PATCH] Find a server name and router id to test TestRoutes --- pkg/cloudprovider/providers/openstack/BUILD | 1 + .../openstack/openstack_routes_test.go | 46 +++++++++++++++++-- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/BUILD b/pkg/cloudprovider/providers/openstack/BUILD index 3b04ef8c048..57575aa4d51 100644 --- a/pkg/cloudprovider/providers/openstack/BUILD +++ b/pkg/cloudprovider/providers/openstack/BUILD @@ -75,6 +75,7 @@ go_test( "//pkg/cloudprovider:go_default_library", "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/pkg/cloudprovider/providers/openstack/openstack_routes_test.go b/pkg/cloudprovider/providers/openstack/openstack_routes_test.go index 6e4d506d8de..7b44c7945a9 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_routes_test.go +++ b/pkg/cloudprovider/providers/openstack/openstack_routes_test.go @@ -20,6 +20,8 @@ import ( "net" "testing" + "github.com/gophercloud/gophercloud/openstack/compute/v2/servers" + "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/cloudprovider" ) @@ -37,9 +39,9 @@ func TestRoutes(t *testing.T) { t.Fatalf("Failed to construct/authenticate OpenStack: %s", err) } - if os.routeOpts.RouterId == "" { - t.Skip("router-id is empty. skipping test") - } + // Pick the first router and server to try a test with + os.routeOpts.RouterId = getRouters(os)[0].ID + servername := getServers(os)[0].Name r, ok := os.Routes() if !ok { @@ -48,7 +50,7 @@ func TestRoutes(t *testing.T) { newroute := cloudprovider.Route{ DestinationCIDR: "10.164.2.0/24", - TargetNode: types.NodeName("testinstance"), + TargetNode: types.NodeName(servername), } err = r.CreateRoute(clusterName, "myhint", &newroute) if err != nil { @@ -73,3 +75,39 @@ func TestRoutes(t *testing.T) { t.Fatalf("DeleteRoute error: %v", err) } } + +func getServers(os *OpenStack) []servers.Server { + c, err := os.NewComputeV2() + allPages, err := servers.List(c, servers.ListOpts{}).AllPages() + if err != nil { + panic(err) + } + allServers, err := servers.ExtractServers(allPages) + if err != nil { + panic(err) + } + if len(allServers) == 0 { + panic("No servers to test with") + } + return allServers +} + +func getRouters(os *OpenStack) []routers.Router { + listOpts := routers.ListOpts{} + n, err := os.NewNetworkV2() + if err != nil { + panic(err) + } + allPages, err := routers.List(n, listOpts).AllPages() + if err != nil { + panic(err) + } + allRouters, err := routers.ExtractRouters(allPages) + if err != nil { + panic(err) + } + if len(allRouters) == 0 { + panic("No routers to test with") + } + return allRouters +}