Merge "Nova Hypervisors API"
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..d87b658
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,4 @@
+[gerrit]
+host=mcp-ci-gerrit
+port=29418
+project=debian/gophercloud.git
diff --git a/acceptance/openstack/client_test.go b/acceptance/openstack/client_test.go
index 2758f60..eed3a82 100644
--- a/acceptance/openstack/client_test.go
+++ b/acceptance/openstack/client_test.go
@@ -5,6 +5,7 @@
import (
"os"
"testing"
+ "time"
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
@@ -38,3 +39,48 @@
t.Logf("Located a storage service at endpoint: [%s]", storage.Endpoint)
}
}
+
+func TestReauth(t *testing.T) {
+ ao, err := openstack.AuthOptionsFromEnv()
+ if err != nil {
+ t.Fatalf("Unable to obtain environment auth options: %v", err)
+ }
+
+ // Allow reauth
+ ao.AllowReauth = true
+
+ provider, err := openstack.NewClient(ao.IdentityEndpoint)
+ if err != nil {
+ t.Fatalf("Unable to create provider: %v", err)
+ }
+
+ err = openstack.Authenticate(provider, ao)
+ if err != nil {
+ t.Fatalf("Unable to authenticate: %v", err)
+ }
+
+ t.Logf("Creating a compute client")
+ _, err = openstack.NewComputeV2(provider, gophercloud.EndpointOpts{
+ Region: os.Getenv("OS_REGION_NAME"),
+ })
+ if err != nil {
+ t.Fatalf("Unable to create compute client: %v", err)
+ }
+
+ t.Logf("Sleeping for 1 second")
+ time.Sleep(1 * time.Second)
+ t.Logf("Attempting to reauthenticate")
+
+ err = provider.ReauthFunc()
+ if err != nil {
+ t.Fatalf("Unable to reauthenticate: %v", err)
+ }
+
+ t.Logf("Creating a compute client")
+ _, err = openstack.NewComputeV2(provider, gophercloud.EndpointOpts{
+ Region: os.Getenv("OS_REGION_NAME"),
+ })
+ if err != nil {
+ t.Fatalf("Unable to create compute client: %v", err)
+ }
+}
diff --git a/auth_options.go b/auth_options.go
index 7a16131..eabf182 100644
--- a/auth_options.go
+++ b/auth_options.go
@@ -139,14 +139,6 @@
// if insufficient or incompatible information is present.
var req request
- // Test first for unrecognized arguments.
- if opts.TenantID != "" {
- return nil, ErrTenantIDProvided{}
- }
- if opts.TenantName != "" {
- return nil, ErrTenantNameProvided{}
- }
-
if opts.Password == "" {
if opts.TokenID != "" {
// Because we aren't using password authentication, it's an error to also provide any of the user-based authentication
@@ -259,15 +251,12 @@
if opts.TenantID != "" {
scope.ProjectID = opts.TenantID
- opts.TenantID = ""
- opts.TenantName = ""
} else {
if opts.TenantName != "" {
scope.ProjectName = opts.TenantName
scope.DomainID = opts.DomainID
scope.DomainName = opts.DomainName
}
- opts.TenantName = ""
}
if scope.ProjectName != "" {