allow EndpointOpts to search catalog for Identity clients
diff --git a/openstack/client.go b/openstack/client.go
index 680a782..fdaee49 100644
--- a/openstack/client.go
+++ b/openstack/client.go
@@ -3,6 +3,7 @@
import (
"fmt"
"net/url"
+ "reflect"
"github.com/gophercloud/gophercloud"
tokens2 "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
@@ -215,37 +216,37 @@
// NewIdentityV2 creates a ServiceClient that may be used to interact with the v2 identity service.
func NewIdentityV2(client *gophercloud.ProviderClient, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error) {
- v2Endpoint := client.IdentityBase + "v2.0/"
- /*
+ endpoint := client.IdentityBase + "v2.0/"
+ var err error
+ if !reflect.DeepEqual(eo, gophercloud.EndpointOpts{}) {
eo.ApplyDefaults("identity")
- url, err := client.EndpointLocator(eo)
+ endpoint, err = client.EndpointLocator(eo)
if err != nil {
return nil, err
}
- */
+ }
return &gophercloud.ServiceClient{
ProviderClient: client,
- Endpoint: v2Endpoint,
- //Endpoint: url,
+ Endpoint: endpoint,
}, nil
}
// NewIdentityV3 creates a ServiceClient that may be used to access the v3 identity service.
func NewIdentityV3(client *gophercloud.ProviderClient, eo gophercloud.EndpointOpts) (*gophercloud.ServiceClient, error) {
- v3Endpoint := client.IdentityBase + "v3/"
- /*
+ endpoint := client.IdentityBase + "v3/"
+ var err error
+ if !reflect.DeepEqual(eo, gophercloud.EndpointOpts{}) {
eo.ApplyDefaults("identity")
- url, err := client.EndpointLocator(eo)
+ endpoint, err = client.EndpointLocator(eo)
if err != nil {
return nil, err
}
- */
+ }
return &gophercloud.ServiceClient{
ProviderClient: client,
- Endpoint: v3Endpoint,
- //Endpoint: url,
+ Endpoint: endpoint,
}, nil
}