Compute Networks Acceptance Test Cleanup
The following changes were made to the networks acceptance tests:
* Created List test.
* Created Get test.
* Removed server test.
* Printing all network attributes.
diff --git a/acceptance/openstack/compute/v2/network_test.go b/acceptance/openstack/compute/v2/network_test.go
index 615e391..c7ff1a3 100644
--- a/acceptance/openstack/compute/v2/network_test.go
+++ b/acceptance/openstack/compute/v2/network_test.go
@@ -3,15 +3,58 @@
package v2
import (
- "os"
+ "fmt"
"testing"
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/networks"
- "github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
- th "github.com/gophercloud/gophercloud/testhelper"
)
+func TestNetworksList(t *testing.T) {
+ client, err := newClient()
+ if err != nil {
+ t.Fatalf("Unable to create a compute client: %v", err)
+ }
+
+ allPages, err := networks.List(client).AllPages()
+ if err != nil {
+ t.Fatalf("Unable to list networks: %v", err)
+ }
+
+ allNetworks, err := networks.ExtractNetworks(allPages)
+ if err != nil {
+ t.Fatalf("Unable to list networks: %v", err)
+ }
+
+ for _, network := range allNetworks {
+ printNetwork(t, &network)
+ }
+}
+
+func TestNetworksGet(t *testing.T) {
+ choices, err := ComputeChoicesFromEnv()
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ client, err := newClient()
+ if err != nil {
+ t.Fatalf("Unable to create a compute client: %v", err)
+ }
+
+ networkID, err := getNetworkIDFromNetworks(t, client, choices.NetworkName)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ network, err := networks.Get(client, networkID).Extract()
+ if err != nil {
+ t.Fatalf("Unable to get network %s: %v", networkID, err)
+ }
+
+ printNetwork(t, network)
+}
+
func getNetworkIDFromNetworkExtension(t *testing.T, client *gophercloud.ServiceClient, networkName string) (string, error) {
allPages, err := networks.List(client).AllPages()
if err != nil {
@@ -36,43 +79,53 @@
return networkID, nil
}
-func TestNetworks(t *testing.T) {
- networkName := os.Getenv("OS_NETWORK_NAME")
- if networkName == "" {
- t.Fatalf("OS_NETWORK_NAME must be set")
- }
-
- choices, err := ComputeChoicesFromEnv()
- if err != nil {
- t.Fatal(err)
- }
-
- client, err := newClient()
- if err != nil {
- t.Fatalf("Unable to create a compute client: %v", err)
- }
-
- networkID, err := getNetworkIDFromNetworkExtension(t, client, networkName)
- if err != nil {
- t.Fatalf("Unable to get network ID: %v", err)
- }
-
- // createNetworkServer is defined in tenantnetworks_test.go
- server, err := createNetworkServer(t, client, choices, networkID)
- if err != nil {
- t.Fatalf("Unable to create server: %v", err)
- }
- defer func() {
- servers.Delete(client, server.ID)
- t.Logf("Server deleted.")
- }()
-
- if err = waitForStatus(client, server, "ACTIVE"); err != nil {
- t.Fatalf("Unable to wait for server: %v", err)
- }
-
+func getNetworkIDFromNetworks(t *testing.T, client *gophercloud.ServiceClient, networkName string) (string, error) {
allPages, err := networks.List(client).AllPages()
+ if err != nil {
+ t.Fatalf("Unable to list networks: %v", err)
+ }
+
allNetworks, err := networks.ExtractNetworks(allPages)
- th.AssertNoErr(t, err)
- t.Logf("Retrieved all %d networks: %+v", len(allNetworks), allNetworks)
+ if err != nil {
+ t.Fatalf("Unable to list networks: %v", err)
+ }
+
+ for _, network := range allNetworks {
+ if network.Label == networkName {
+ return network.ID, nil
+ }
+ }
+
+ return "", fmt.Errorf("Failed to obtain network ID for network %s", networkName)
+}
+
+func printNetwork(t *testing.T, network *networks.Network) {
+ t.Logf("Bridge: %s", network.Bridge)
+ t.Logf("BridgeInterface: %s", network.BridgeInterface)
+ t.Logf("Broadcast: %s", network.Broadcast)
+ t.Logf("CIDR: %s", network.CIDR)
+ t.Logf("CIDRv6: %s", network.CIDRv6)
+ t.Logf("CreatedAt: %v", network.CreatedAt)
+ t.Logf("Deleted: %t", network.Deleted)
+ t.Logf("DeletedAt: %v", network.DeletedAt)
+ t.Logf("DHCPStart: %s", network.DHCPStart)
+ t.Logf("DNS1: %s", network.DNS1)
+ t.Logf("DNS2: %s", network.DNS2)
+ t.Logf("Gateway: %s", network.Gateway)
+ t.Logf("Gatewayv6: %s", network.Gatewayv6)
+ t.Logf("Host: %s", network.Host)
+ t.Logf("ID: %s", network.ID)
+ t.Logf("Injected: %t", network.Injected)
+ t.Logf("Label: %s", network.Label)
+ t.Logf("MultiHost: %t", network.MultiHost)
+ t.Logf("Netmask: %s", network.Netmask)
+ t.Logf("Netmaskv6: %s", network.Netmaskv6)
+ t.Logf("Priority: %d", network.Priority)
+ t.Logf("ProjectID: %s", network.ProjectID)
+ t.Logf("RXTXBase: %d", network.RXTXBase)
+ t.Logf("UpdatedAt: %v", network.UpdatedAt)
+ t.Logf("VLAN: %d", network.VLAN)
+ t.Logf("VPNPrivateAddress: %s", network.VPNPrivateAddress)
+ t.Logf("VPNPublicAddress: %s", network.VPNPublicAddress)
+ t.Logf("VPNPublicPort: %d", network.VPNPublicPort)
}