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"),
+	})
+}