Shuffled resources into sub-packages and upgraded to new pagination idiom
diff --git a/openstack/networking/v2/networks/results.go b/openstack/networking/v2/networks/results.go
index 4678793..b23395a 100644
--- a/openstack/networking/v2/networks/results.go
+++ b/openstack/networking/v2/networks/results.go
@@ -1,5 +1,10 @@
package networks
+import (
+ "github.com/mitchellh/mapstructure"
+ "github.com/rackspace/gophercloud"
+)
+
type NetworkProvider struct {
ProviderSegmentationID int `json:"provider:segmentation_id"`
ProviderPhysicalNetwork string `json:"provider:physical_network"`
@@ -7,19 +12,17 @@
}
type Network struct {
- Status string `json:"status"`
- Subnets []interface{} `json:"subnets"`
- Name string `json:"name"`
- AdminStateUp bool `json:"admin_state_up"`
- TenantID string `json:"tenant_id"`
- Shared bool `json:"shared"`
- ID string `json:"id"`
-}
-
-type NetworkResult struct {
- Network
- NetworkProvider
- RouterExternal bool `json:"router:external"`
+ Status string `mapstructure:"status" json:"status"`
+ Subnets []interface{} `mapstructure:"subnets" json:"subnets"`
+ Name string `mapstructure:"name" json:"name"`
+ AdminStateUp bool `mapstructure:"admin_state_up" json:"admin_state_up"`
+ TenantID string `mapstructure:"tenant_id" json:"tenant_id"`
+ Shared bool `mapstructure:"shared" json:"shared"`
+ ID string `mapstructure:"id" json:"id"`
+ ProviderSegmentationID int `mapstructure:"provider:segmentation_id" json:"provider:segmentation_id"`
+ ProviderPhysicalNetwork string `mapstructure:"provider:physical_network" json:"provider:physical_network"`
+ ProviderNetworkType string `mapstructure:"provider:network_type" json:"provider:network_type"`
+ RouterExternal bool `mapstructure:"router:external" json:"router:external"`
}
type NetworkCreateResult struct {
@@ -27,3 +30,16 @@
Segments []NetworkProvider `json:"segments"`
PortSecurityEnabled bool `json:"port_security_enabled"`
}
+
+func ExtractNetworks(page gophercloud.Page) ([]Network, error) {
+ var resp struct {
+ Networks []Network `mapstructure:"networks" json:"networks"`
+ }
+
+ err := mapstructure.Decode(page.(gophercloud.LinkedPage).Body, &resp)
+ if err != nil {
+ return nil, err
+ }
+
+ return resp.Networks, nil
+}