Find a server name and router id to test TestRoutes

This commit is contained in:
Davanum Srinivas 2017-11-27 15:33:47 -05:00
parent 076f4da28b
commit 8300dd8901
2 changed files with 43 additions and 4 deletions

View File

@ -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",

View File

@ -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
}