Change identity endpoints and services.
diff --git a/openstack/identity/v3/services/results.go b/openstack/identity/v3/services/results.go
index 537ea2e..cccea8e 100644
--- a/openstack/identity/v3/services/results.go
+++ b/openstack/identity/v3/services/results.go
@@ -1,7 +1,7 @@
package services
import (
- "github.com/rackspace/gophercloud"
+ "github.com/rackspace/gophercloud/pagination"
"github.com/mitchellh/mapstructure"
)
@@ -14,12 +14,26 @@
Type string `json:"type"`
}
+// ServicePage is a single page of Service results.
+type ServicePage struct {
+ pagination.LinkedPageBase
+}
+
+// IsEmpty returns true if the page contains no results.
+func (p ServicePage) IsEmpty() (bool, error) {
+ services, err := ExtractServices(p)
+ if err != nil {
+ return true, err
+ }
+ return len(services) == 0, nil
+}
+
// ExtractServices extracts a slice of Services from a Collection acquired from List.
-func ExtractServices(page gophercloud.Page) ([]Service, error) {
+func ExtractServices(page pagination.Page) ([]Service, error) {
var response struct {
Services []Service `mapstructure:"services"`
}
- err := mapstructure.Decode(page.(gophercloud.LinkedPage).Body, &response)
+ err := mapstructure.Decode(page.(ServicePage).Body, &response)
return response.Services, err
}