Networking Acceptance Test Cleanup (#79)
diff --git a/acceptance/clients/clients.go b/acceptance/clients/clients.go
index 9efa901..86871aa 100644
--- a/acceptance/clients/clients.go
+++ b/acceptance/clients/clients.go
@@ -29,6 +29,9 @@
// NetworkName is the name of a network to launch the instance on.
NetworkName string
+
+ // ExternalNetworkID is the network ID of the external network.
+ ExternalNetworkID string
}
// AcceptanceTestChoicesFromEnv populates a ComputeChoices struct from environment variables.
@@ -39,6 +42,7 @@
flavorIDResize := os.Getenv("OS_FLAVOR_ID_RESIZE")
networkName := os.Getenv("OS_NETWORK_NAME")
floatingIPPoolName := os.Getenv("OS_POOL_NAME")
+ externalNetworkID := os.Getenv("OS_EXTGW_ID")
missing := make([]string, 0, 3)
if imageID == "" {
@@ -53,6 +57,9 @@
if floatingIPPoolName == "" {
missing = append(missing, "OS_POOL_NAME")
}
+ if externalNetworkID == "" {
+ missing = append(missing, "OS_EXTGW_ID")
+ }
if networkName == "" {
networkName = "private"
}
@@ -74,7 +81,7 @@
return nil, fmt.Errorf(text)
}
- return &AcceptanceTestChoices{ImageID: imageID, FlavorID: flavorID, FlavorIDResize: flavorIDResize, FloatingIPPoolName: floatingIPPoolName, NetworkName: networkName}, nil
+ return &AcceptanceTestChoices{ImageID: imageID, FlavorID: flavorID, FlavorIDResize: flavorIDResize, FloatingIPPoolName: floatingIPPoolName, NetworkName: networkName, ExternalNetworkID: externalNetworkID}, nil
}
// NewBlockStorageV1Client returns a *ServiceClient for making calls
@@ -225,3 +232,22 @@
return openstack.NewIdentityV3(client, gophercloud.EndpointOpts{})
}
+
+// NewNetworkV2Client returns a *ServiceClient for making calls to the
+// OpenStack Networking v2 API. An error will be returned if authentication
+// or client creation was not possible.
+func NewNetworkV2Client() (*gophercloud.ServiceClient, error) {
+ ao, err := openstack.AuthOptionsFromEnv()
+ if err != nil {
+ return nil, err
+ }
+
+ client, err := openstack.AuthenticatedClient(ao)
+ if err != nil {
+ return nil, err
+ }
+
+ return openstack.NewNetworkV2(client, gophercloud.EndpointOpts{
+ Region: os.Getenv("OS_REGION_NAME"),
+ })
+}