move unit tests into 'testing' directories
diff --git a/openstack/compute/v2/extensions/quotasets/results.go b/openstack/compute/v2/extensions/quotasets/results.go
index cbf4d6b..f6c4e5a 100644
--- a/openstack/compute/v2/extensions/quotasets/results.go
+++ b/openstack/compute/v2/extensions/quotasets/results.go
@@ -1,39 +1,38 @@
package quotasets
import (
- "github.com/mitchellh/mapstructure"
- "github.com/rackspace/gophercloud"
- "github.com/rackspace/gophercloud/pagination"
+ "github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/pagination"
)
// QuotaSet is a set of operational limits that allow for control of compute usage.
type QuotaSet struct {
//ID is tenant associated with this quota_set
- ID string `mapstructure:"id"`
+ ID string `json:"id"`
//FixedIps is number of fixed ips alloted this quota_set
- FixedIps int `mapstructure:"fixed_ips"`
+ FixedIps int `json:"fixed_ips"`
// FloatingIps is number of floating ips alloted this quota_set
- FloatingIps int `mapstructure:"floating_ips"`
+ FloatingIps int `json:"floating_ips"`
// InjectedFileContentBytes is content bytes allowed for each injected file
- InjectedFileContentBytes int `mapstructure:"injected_file_content_bytes"`
+ InjectedFileContentBytes int `json:"injected_file_content_bytes"`
// InjectedFilePathBytes is allowed bytes for each injected file path
- InjectedFilePathBytes int `mapstructure:"injected_file_path_bytes"`
+ InjectedFilePathBytes int `json:"injected_file_path_bytes"`
// InjectedFiles is injected files allowed for each project
- InjectedFiles int `mapstructure:"injected_files"`
+ InjectedFiles int `json:"injected_files"`
// KeyPairs is number of ssh keypairs
- KeyPairs int `mapstructure:"keypairs"`
+ KeyPairs int `json:"keypairs"`
// MetadataItems is number of metadata items allowed for each instance
- MetadataItems int `mapstructure:"metadata_items"`
+ MetadataItems int `json:"metadata_items"`
// Ram is megabytes allowed for each instance
- Ram int `mapstructure:"ram"`
+ Ram int `json:"ram"`
// SecurityGroupRules is rules allowed for each security group
- SecurityGroupRules int `mapstructure:"security_group_rules"`
+ SecurityGroupRules int `json:"security_group_rules"`
// SecurityGroups security groups allowed for each project
- SecurityGroups int `mapstructure:"security_groups"`
+ SecurityGroups int `json:"security_groups"`
// Cores is number of instance cores allowed for each project
- Cores int `mapstructure:"cores"`
+ Cores int `json:"cores"`
// Instances is number of instances allowed for each project
- Instances int `mapstructure:"instances"`
+ Instances int `json:"instances"`
}
// QuotaSetPage stores a single, only page of QuotaSet results from a List call.
@@ -48,17 +47,12 @@
}
// ExtractQuotaSets interprets a page of results as a slice of QuotaSets.
-func ExtractQuotaSets(page pagination.Page) ([]QuotaSet, error) {
- var resp struct {
- QuotaSets []QuotaSet `mapstructure:"quotas"`
+func ExtractQuotaSets(r pagination.Page) ([]QuotaSet, error) {
+ var s struct {
+ QuotaSets []QuotaSet `json:"quotas"`
}
-
- err := mapstructure.Decode(page.(QuotaSetPage).Body, &resp)
- results := make([]QuotaSet, len(resp.QuotaSets))
- for i, q := range resp.QuotaSets {
- results[i] = q
- }
- return results, err
+ err := (r.(QuotaSetPage)).ExtractInto(&s)
+ return s.QuotaSets, err
}
type quotaResult struct {
@@ -67,16 +61,11 @@
// Extract is a method that attempts to interpret any QuotaSet resource response as a QuotaSet struct.
func (r quotaResult) Extract() (*QuotaSet, error) {
- if r.Err != nil {
- return nil, r.Err
+ var s struct {
+ QuotaSet *QuotaSet `json:"quota_set"`
}
-
- var res struct {
- QuotaSet *QuotaSet `json:"quota_set" mapstructure:"quota_set"`
- }
-
- err := mapstructure.Decode(r.Body, &res)
- return res.QuotaSet, err
+ err := r.ExtractInto(&s)
+ return s.QuotaSet, err
}
// GetResult is the response from a Get operation. Call its Extract method to interpret it