Change identity endpoints and services.
diff --git a/openstack/identity/v3/endpoints/results.go b/openstack/identity/v3/endpoints/results.go
index 4d7bfbc..8da90f3 100644
--- a/openstack/identity/v3/endpoints/results.go
+++ b/openstack/identity/v3/endpoints/results.go
@@ -3,6 +3,7 @@
import (
"github.com/mitchellh/mapstructure"
"github.com/rackspace/gophercloud"
+ "github.com/rackspace/gophercloud/pagination"
)
// Endpoint describes the entry point for another service's API.
@@ -15,13 +16,27 @@
URL string `mapstructure:"url" json:"url"`
}
+// EndpointPage is a single page of Endpoint results.
+type EndpointPage struct {
+ pagination.LinkedPageBase
+}
+
+// IsEmpty returns true if no Endpoints were returned.
+func (p EndpointPage) IsEmpty() (bool, error) {
+ es, err := ExtractEndpoints(p)
+ if err != nil {
+ return true, err
+ }
+ return len(es) == 0, nil
+}
+
// ExtractEndpoints extracts an Endpoint slice from a Page.
-func ExtractEndpoints(page gophercloud.Page) ([]Endpoint, error) {
+func ExtractEndpoints(page pagination.Page) ([]Endpoint, error) {
var response struct {
Endpoints []Endpoint `mapstructure:"endpoints"`
}
- err := mapstructure.Decode(page.(gophercloud.LinkedPage).Body, &response)
+ err := mapstructure.Decode(page.(EndpointPage).Body, &response)
if err != nil {
return nil, err
}