Moving shared logic into common file
diff --git a/acceptance/openstack/networking/v2/common.go b/acceptance/openstack/networking/v2/common.go
new file mode 100644
index 0000000..6dd58af
--- /dev/null
+++ b/acceptance/openstack/networking/v2/common.go
@@ -0,0 +1,40 @@
+package v2
+
+import (
+	"os"
+	"testing"
+
+	"github.com/rackspace/gophercloud"
+	"github.com/rackspace/gophercloud/openstack"
+	"github.com/rackspace/gophercloud/openstack/utils"
+	th "github.com/rackspace/gophercloud/testhelper"
+)
+
+var Client *gophercloud.ServiceClient
+
+func NewClient() (*gophercloud.ServiceClient, error) {
+	opts, err := utils.AuthOptions()
+	if err != nil {
+		return nil, err
+	}
+
+	provider, err := openstack.AuthenticatedClient(opts)
+	if err != nil {
+		return nil, err
+	}
+
+	return openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{
+		Name:   "neutron",
+		Region: os.Getenv("OS_REGION_NAME"),
+	})
+}
+
+func Setup(t *testing.T) {
+	client, err := NewClient()
+	th.AssertNoErr(t, err)
+	Client = client
+}
+
+func Teardown() {
+	Client = nil
+}
diff --git a/acceptance/openstack/networking/v2/network_test.go b/acceptance/openstack/networking/v2/network_test.go
index 7f908f4..7228015 100644
--- a/acceptance/openstack/networking/v2/network_test.go
+++ b/acceptance/openstack/networking/v2/network_test.go
@@ -3,53 +3,28 @@
 package v2
 
 import (
-	"os"
 	"strconv"
 	"testing"
 
-	"github.com/rackspace/gophercloud"
-	"github.com/rackspace/gophercloud/openstack"
 	"github.com/rackspace/gophercloud/openstack/networking/v2/networks"
-	"github.com/rackspace/gophercloud/openstack/utils"
 	"github.com/rackspace/gophercloud/pagination"
 	th "github.com/rackspace/gophercloud/testhelper"
 )
 
-var Client *gophercloud.ServiceClient
-
-func NewClient() (*gophercloud.ServiceClient, error) {
-	opts, err := utils.AuthOptions()
-	if err != nil {
-		return nil, err
-	}
-
-	provider, err := openstack.AuthenticatedClient(opts)
-	if err != nil {
-		return nil, err
-	}
-
-	return openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{
-		Name:   "neutron",
-		Region: os.Getenv("OS_REGION_NAME"),
-	})
-}
-
-func Setup(t *testing.T) {
-	client, err := NewClient()
-	th.AssertNoErr(t, err)
-	Client = client
-}
-
-func Teardown() {
-	Client = nil
-}
-
-func TestListNetworks(t *testing.T) {
+func TestNetworkCRUDOperations(t *testing.T) {
 	Setup(t)
 	defer Teardown()
 
+	// Create a network
+	res, err := networks.Create(Client, networks.CreateOpts{Name: "sample_network", AdminStateUp: true})
+	th.AssertNoErr(t, err)
+	th.AssertEquals(t, res.Name, "sample_network")
+	th.AssertEquals(t, res.AdminStateUp, true)
+	networkID := res.ID
+
+	// List networks
 	pager := networks.List(Client, networks.ListOpts{Limit: 2})
-	err := pager.EachPage(func(page pagination.Page) (bool, error) {
+	err = pager.EachPage(func(page pagination.Page) (bool, error) {
 		t.Logf("--- Page ---")
 
 		networkList, err := networks.ExtractNetworks(page)
@@ -63,18 +38,6 @@
 		return true, nil
 	})
 	th.CheckNoErr(t, err)
-}
-
-func TestNetworkCRUDOperations(t *testing.T) {
-	Setup(t)
-	defer Teardown()
-
-	// Create a network
-	res, err := networks.Create(Client, networks.NetworkOpts{Name: "sample_network", AdminStateUp: true})
-	th.AssertNoErr(t, err)
-	th.AssertEquals(t, res.Name, "sample_network")
-	th.AssertEquals(t, res.AdminStateUp, true)
-	networkID := res.ID
 
 	// Get a network
 	if networkID == "" {
@@ -83,7 +46,7 @@
 	n, err := networks.Get(Client, networkID)
 	th.AssertNoErr(t, err)
 	th.AssertEquals(t, n.Status, "ACTIVE")
-	th.AssertDeepEquals(t, n.Subnets, []interface{}{})
+	th.AssertDeepEquals(t, n.Subnets, []string{})
 	th.AssertEquals(t, n.Name, "sample_network")
 	th.AssertEquals(t, n.ProviderPhysicalNetwork, "")
 	th.AssertEquals(t, n.ProviderNetworkType, "local")
@@ -94,7 +57,7 @@
 	th.AssertEquals(t, n.ID, networkID)
 
 	// Update network
-	n, err = networks.Update(Client, networkID, networks.NetworkOpts{Name: "new_network_name"})
+	n, err = networks.Update(Client, networkID, networks.UpdateOpts{Name: "new_network_name"})
 	th.AssertNoErr(t, err)
 	th.AssertEquals(t, n.Name, "new_network_name")
 
diff --git a/acceptance/openstack/networking/v2/port_test.go b/acceptance/openstack/networking/v2/port_test.go
index 8569b69..3842913 100644
--- a/acceptance/openstack/networking/v2/port_test.go
+++ b/acceptance/openstack/networking/v2/port_test.go
@@ -12,10 +12,66 @@
 	th "github.com/rackspace/gophercloud/testhelper"
 )
 
-func TestPortList(t *testing.T) {
+func TestPortCRUD(t *testing.T) {
 	Setup(t)
 	defer Teardown()
 
+	// Setup network
+	t.Log("Setting up network")
+	networkID, err := createNetwork()
+	th.AssertNoErr(t, err)
+	defer networks.Delete(Client, networkID)
+
+	// Setup subnet
+	t.Logf("Setting up subnet on network %s", networkID)
+	subnetID, err := createSubnet(networkID)
+	th.AssertNoErr(t, err)
+	defer subnets.Delete(Client, subnetID)
+
+	// Create port
+	t.Logf("Create port based on subnet %s", subnetID)
+	portID := createPort(t, networkID, subnetID)
+
+	// List ports
+	t.Logf("Listing all ports")
+	listPorts(t)
+
+	// Get port
+	if portID == "" {
+		t.Fatalf("In order to retrieve a port, the portID must be set")
+	}
+	p, err := ports.Get(Client, portID)
+	th.AssertNoErr(t, err)
+	th.AssertEquals(t, p.ID, portID)
+
+	// Update port
+	p, err = ports.Update(Client, portID, ports.UpdateOpts{Name: "new_port_name"})
+	th.AssertNoErr(t, err)
+	th.AssertEquals(t, p.Name, "new_port_name")
+
+	// Delete port
+	err = ports.Delete(Client, portID)
+	th.AssertNoErr(t, err)
+}
+
+func createPort(t *testing.T, networkID, subnetID string) string {
+	enable := false
+	opts := ports.CreateOpts{
+		NetworkID:    networkID,
+		Name:         "my_port",
+		AdminStateUp: &enable,
+		FixedIPs:     []ports.IP{ports.IP{SubnetID: subnetID}},
+	}
+	p, err := ports.Create(Client, opts)
+	th.AssertNoErr(t, err)
+	th.AssertEquals(t, p.NetworkID, networkID)
+	th.AssertEquals(t, p.Name, "my_port")
+	th.AssertEquals(t, p.AdminStateUp, false)
+
+	return p.ID
+}
+
+func listPorts(t *testing.T) {
 	count := 0
 	pager := ports.List(Client, ports.ListOpts{})
 	err := pager.EachPage(func(page pagination.Page) (bool, error) {
@@ -36,18 +92,18 @@
 	th.CheckNoErr(t, err)
 
 	if count == 0 {
-		t.Errorf("No pages were iterated over when listing ports")
+		t.Logf("No pages were iterated over when listing ports")
 	}
 }
 
 func createNetwork() (string, error) {
-	res, err := networks.Create(Client, networks.NetworkOpts{Name: "tmp_network", AdminStateUp: true})
+	res, err := networks.Create(Client, networks.CreateOpts{Name: "tmp_network", AdminStateUp: true})
 	return res.ID, err
 }
 
 func createSubnet(networkID string) (string, error) {
 	enable := false
-	s, err := subnets.Create(Client, subnets.SubnetOpts{
+	s, err := subnets.Create(Client, subnets.CreateOpts{
 		NetworkID:  networkID,
 		CIDR:       "192.168.199.0/24",
 		IPVersion:  subnets.IPv4,
@@ -57,58 +113,6 @@
 	return s.ID, err
 }
 
-func TestPortCRUD(t *testing.T) {
-	return
-	Setup(t)
-	defer Teardown()
-
-	// Setup network
-	t.Log("Setting up network")
-	networkID, err := createNetwork()
-	th.AssertNoErr(t, err)
-	defer networks.Delete(Client, networkID)
-
-	// Setup subnet
-	t.Logf("Setting up subnet on network %s", networkID)
-	subnetID, err := createSubnet(networkID)
-	th.AssertNoErr(t, err)
-	defer subnets.Delete(Client, subnetID)
-
-	// Create subnet
-	t.Logf("Create port based on subnet %s", subnetID)
-	enable := false
-	opts := ports.PortOpts{
-		NetworkID:    networkID,
-		Name:         "my_port",
-		AdminStateUp: &enable,
-		FixedIPs:     []ports.IP{ports.IP{SubnetID: subnetID}},
-	}
-	p, err := ports.Create(Client, opts)
-	th.AssertNoErr(t, err)
-
-	th.AssertEquals(t, p.NetworkID, networkID)
-	th.AssertEquals(t, p.Name, "my_port")
-	th.AssertEquals(t, p.AdminStateUp, false)
-	portID := p.ID
-
-	// Get port
-	if portID == "" {
-		t.Fatalf("In order to retrieve a port, the portID must be set")
-	}
-	p, err = ports.Get(Client, portID)
-	th.AssertNoErr(t, err)
-	th.AssertEquals(t, p.ID, portID)
-
-	// Update port
-	p, err = ports.Update(Client, portID, ports.PortOpts{Name: "new_port_name"})
-	th.AssertNoErr(t, err)
-	th.AssertEquals(t, p.Name, "new_port_name")
-
-	// Delete port
-	err = ports.Delete(Client, portID)
-	th.AssertNoErr(t, err)
-}
-
 func TestPortBatchCreate(t *testing.T) {
 	// todo
 }
diff --git a/acceptance/openstack/networking/v2/subnet_test.go b/acceptance/openstack/networking/v2/subnet_test.go
index ad335cc..6dcfcdc 100644
--- a/acceptance/openstack/networking/v2/subnet_test.go
+++ b/acceptance/openstack/networking/v2/subnet_test.go
@@ -38,7 +38,7 @@
 
 	// Setup network
 	t.Log("Setting up network")
-	res, err := networks.Create(Client, networks.NetworkOpts{Name: "tmp_network", AdminStateUp: true})
+	res, err := networks.Create(Client, networks.CreateOpts{Name: "tmp_network", AdminStateUp: true})
 	th.AssertNoErr(t, err)
 	networkID := res.ID
 	defer networks.Delete(Client, networkID)
@@ -46,7 +46,7 @@
 	// Create subnet
 	t.Log("Create subnet")
 	enable := false
-	opts := subnets.SubnetOpts{
+	opts := subnets.CreateOpts{
 		NetworkID:  networkID,
 		CIDR:       "192.168.199.0/24",
 		IPVersion:  subnets.IPv4,
@@ -71,7 +71,7 @@
 
 	// Update subnet
 	t.Log("Update subnet")
-	s, err = subnets.Update(Client, subnetID, subnets.SubnetOpts{Name: "new_subnet_name"})
+	s, err = subnets.Update(Client, subnetID, subnets.UpdateOpts{Name: "new_subnet_name"})
 	th.AssertNoErr(t, err)
 	th.AssertEquals(t, s.Name, "new_subnet_name")