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
 }