Use the inherited fixtures in identity v2.
diff --git a/openstack/identity/v2/extensions/delegate.go b/openstack/identity/v2/extensions/delegate.go
index 77bf7fb..cee275f 100644
--- a/openstack/identity/v2/extensions/delegate.go
+++ b/openstack/identity/v2/extensions/delegate.go
@@ -7,16 +7,6 @@
"github.com/rackspace/gophercloud/pagination"
)
-// Extension is a single OpenStack extension.
-type Extension struct {
- common.Extension
-}
-
-// GetResult wraps a GetResult from common.
-type GetResult struct {
- common.GetResult
-}
-
// ExtensionPage is a single page of Extension results.
type ExtensionPage struct {
common.ExtensionPage
@@ -33,47 +23,22 @@
// ExtractExtensions accepts a Page struct, specifically an ExtensionPage struct, and extracts the
// elements into a slice of Extension structs.
-func ExtractExtensions(page pagination.Page) ([]Extension, error) {
+func ExtractExtensions(page pagination.Page) ([]common.Extension, error) {
// Identity v2 adds an intermediate "values" object.
- type extension struct {
- Updated string `mapstructure:"updated"`
- Name string `mapstructure:"name"`
- Namespace string `mapstructure:"namespace"`
- Alias string `mapstructure:"alias"`
- Description string `mapstructure:"description"`
- Links []interface{} `mapstructure:"links"`
- }
-
var resp struct {
Extensions struct {
- Values []extension `mapstructure:"values"`
+ Values []common.Extension `mapstructure:"values"`
} `mapstructure:"extensions"`
}
err := mapstructure.Decode(page.(ExtensionPage).Body, &resp)
- if err != nil {
- return nil, err
- }
-
- exts := make([]Extension, len(resp.Extensions.Values))
- for i, original := range resp.Extensions.Values {
- exts[i] = Extension{common.Extension{
- Updated: original.Updated,
- Name: original.Name,
- Namespace: original.Namespace,
- Alias: original.Alias,
- Description: original.Description,
- Links: original.Links,
- }}
- }
-
- return exts, err
+ return resp.Extensions.Values, err
}
// Get retrieves information for a specific extension using its alias.
-func Get(c *gophercloud.ServiceClient, alias string) GetResult {
- return GetResult{common.Get(c, alias)}
+func Get(c *gophercloud.ServiceClient, alias string) common.GetResult {
+ return common.Get(c, alias)
}
// List returns a Pager which allows you to iterate over the full collection of extensions.