You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2018/01/09 11:23:20 UTC

jclouds git commit: Revert "Proper configuration for Mock and Live tests"

Repository: jclouds
Updated Branches:
  refs/heads/apache-keystone3 cf0c70df2 -> 9b619981f


Revert "Proper configuration for Mock and Live tests"

This reverts commit cf0c70df2d3a697fe942c6bfbabd4e17d2b49543.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/9b619981
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/9b619981
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/9b619981

Branch: refs/heads/apache-keystone3
Commit: 9b619981f14e8b9bf44bd17003f2515d365b1b9e
Parents: cf0c70d
Author: Ignasi Barrera <na...@apache.org>
Authored: Tue Jan 9 12:23:02 2018 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Tue Jan 9 12:23:02 2018 +0100

----------------------------------------------------------------------
 .../catalog/config/KeystoneAdminURLModule.java  |  9 +---
 .../keystone/v3/KeystoneApiMetadata.java        |  6 +--
 .../openstack/keystone/v3/features/AuthApi.java |  2 +-
 .../v2_0/extensions/RoleAdminApiLiveTest.java   |  2 +-
 .../extensions/ServiceAdminApiLiveTest.java     |  2 +-
 .../v2_0/extensions/TenantAdminApiLiveTest.java |  2 +-
 .../v2_0/extensions/UserAdminApiLiveTest.java   |  2 +-
 .../v3/auth/V3AuthenticationApiLiveTest.java    | 34 ++++++++----
 .../v3/auth/V3AuthenticationApiMockTest.java    | 57 ++++----------------
 .../keystone/v3/features/AuthApiLiveTest.java   | 20 +++++--
 .../keystone/v3/features/AuthApiMockTest.java   | 22 ++++----
 .../v3/features/CatalogApiLiveTest.java         |  9 ++++
 .../v3/features/CatalogApiMockTest.java         | 25 ++++-----
 .../v3/internal/BaseV3KeystoneApiLiveTest.java  | 40 +++++---------
 .../v3/internal/BaseV3KeystoneApiMockTest.java  | 33 +++---------
 .../src/test/resources/logback.xml              |  2 +-
 .../test/resources/v3/auth-password-scoped.json | 23 --------
 .../src/test/resources/v3/auth-password.json    | 18 -------
 .../test/resources/v3/auth-token-scoped.json    | 17 ------
 .../src/test/resources/v3/auth-token.json       | 12 -----
 .../src/test/resources/v3/token.json            | 12 +----
 21 files changed, 114 insertions(+), 235 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/catalog/config/KeystoneAdminURLModule.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/catalog/config/KeystoneAdminURLModule.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/catalog/config/KeystoneAdminURLModule.java
index 391f14d..6f357c0 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/catalog/config/KeystoneAdminURLModule.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/catalog/config/KeystoneAdminURLModule.java
@@ -53,13 +53,8 @@ public class KeystoneAdminURLModule extends AbstractModule {
    @Identity
    protected final Supplier<URI> provideIdentityAdminUrl(final RegionIdToAdminURISupplier.Factory factory,
             @ApiVersion final String version, @Provider final Supplier<URI> providerURI) {
-      // There is a convention to use service types such as "identityv3" for specific endpoints. let's look first for
-      // those endpoints, and fallback to the default "identity" one or the project URL.
-      Supplier<URI> identityServiceForSpecificVersionInType = getLastValueInMap(factory.createForApiTypeAndVersion(
-            ServiceType.IDENTITY + "v" + version, version));
-      Supplier<URI> identityServiceForVersion = Suppliers2.onThrowable(identityServiceForSpecificVersionInType,
-            NoSuchElementException.class,
-            getLastValueInMap(factory.createForApiTypeAndVersion(ServiceType.IDENTITY, version)));
+      Supplier<URI> identityServiceForVersion = getLastValueInMap(factory.createForApiTypeAndVersion(
+               ServiceType.IDENTITY, version));
       Supplier<URI> whenIdentityServiceIsntListedFallbackToProviderURI = Suppliers2.onThrowable(
                identityServiceForVersion, NoSuchElementException.class, providerURI);
       Supplier<URI> whenIdentityServiceHasNoAdminURLFallbackToProviderURI = Suppliers2.or(

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/KeystoneApiMetadata.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/KeystoneApiMetadata.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/KeystoneApiMetadata.java
index dc360d9..37da75a 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/KeystoneApiMetadata.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/KeystoneApiMetadata.java
@@ -67,12 +67,12 @@ public class KeystoneApiMetadata extends BaseHttpApiMetadata<KeystoneApi> {
       protected Builder() {
           id("openstack-keystone-3")
          .name("OpenStack Keystone 3.x API")
-         .identityName("${projectName}:${userName} or ${userName}, if your keystone supports a default project")
+         .identityName("${tenantName}:${userName} or ${userName}, if your keystone supports a default tenant")
          .credentialName("${password}")
-         .endpointName("Keystone V3 base URL")
+         .endpointName("Keystone base url ending in /v${jclouds.api-version}/")
          .documentation(URI.create("http://api.openstack.org/"))
          .version("3")
-         .defaultEndpoint("http://localhost/identity/v3")
+         .defaultEndpoint("http://localhost:5000/v${jclouds.api-version}/")
          .defaultProperties(KeystoneApiMetadata.defaultProperties())
          .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
                                      .add(AuthenticationModule.class)

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
index 50fe55c..c9896f7 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
@@ -76,7 +76,7 @@ public interface AuthApi {
    @Named("token:check")
    @HEAD
    @Path("/tokens")
-   @Headers(keys = "X-Subject-Token", values = "{token}")
+   @Headers( keys = "X-Subject-Token", values = "{token}")
    @Fallback(FalseOnNotFoundOr404.class)
    boolean isValid(@PathParam("token") String token);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiLiveTest.java
index 01b7f8d..accdf9b 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiLiveTest.java
@@ -59,7 +59,7 @@ public class RoleAdminApiLiveTest extends BaseKeystoneApiLiveTest {
    protected void tearDown() {
       if (testRole != null) {
          final String roleId = testRole.getId();
-         assertTrue(roleAdminOption.get().delete(roleId));
+         boolean success = roleAdminOption.get().delete(roleId);
          assertTrue(retry(new Predicate<RoleAdminApi>() {
             public boolean apply(RoleAdminApi roleApi) {
                return roleApi.get(roleId) == null;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiLiveTest.java
index a83bed1..e999816 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiLiveTest.java
@@ -59,7 +59,7 @@ public class ServiceAdminApiLiveTest extends BaseKeystoneApiLiveTest {
    protected void tearDown() {
       if (testService != null) {
          final String serviceId = testService.getId();
-         assertTrue(serviceAdminOption.get().delete(serviceId));
+         boolean success = serviceAdminOption.get().delete(serviceId);
          assertTrue(retry(new Predicate<ServiceAdminApi>() {
             public boolean apply(ServiceAdminApi serviceApi) {
                return serviceApi.get(serviceId) == null;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiLiveTest.java
index cc7f8eb..b679579 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiLiveTest.java
@@ -61,7 +61,7 @@ public class TenantAdminApiLiveTest extends BaseKeystoneApiLiveTest {
    protected void tearDown() {
       if (testTenant != null) {
          final String tenantId = testTenant.getId();
-         assertTrue(tenantAdminOption.get().delete(tenantId));
+         boolean success = tenantAdminOption.get().delete(tenantId);
          assertTrue(retry(new Predicate<TenantApi>() {
             public boolean apply(TenantApi tenantApi) {
                return tenantApi.get(tenantId) == null;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiLiveTest.java
index 3859bdf..152cc92 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiLiveTest.java
@@ -60,7 +60,7 @@ public class UserAdminApiLiveTest extends BaseKeystoneApiLiveTest {
    protected void tearDown() {
       if (testUser != null) {
          final String userId = testUser.getId();
-         assertTrue(userAdminOption.get().delete(userId));
+         boolean success = userAdminOption.get().delete(userId);
          assertTrue(retry(new Predicate<UserApi>() {
             public boolean apply(UserApi userApi) {
                return userApi.get(userId) == null;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java
index 605134d..d8a137e 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiLiveTest.java
@@ -18,40 +18,52 @@ package org.jclouds.openstack.keystone.v3.auth;
 
 import static org.testng.Assert.assertNotNull;
 
-import java.util.Properties;
-
+import org.jclouds.openstack.keystone.auth.AuthenticationApi;
 import org.jclouds.openstack.keystone.auth.domain.PasswordCredentials;
 import org.jclouds.openstack.keystone.auth.domain.TenantAndCredentials;
 import org.jclouds.openstack.keystone.auth.domain.TokenCredentials;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.v3.KeystoneApi;
 import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiLiveTest;
+import org.jclouds.rest.ApiContext;
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.Iterables;
+import com.google.common.reflect.TypeToken;
 
 @Test(groups = "live", testName = "V3AuthenticationApiLiveTest")
 public class V3AuthenticationApiLiveTest extends BaseV3KeystoneApiLiveTest {
 
    private String tenant;
    private String user;
+   private ApiContext<KeystoneApi> context;
 
-   @Override
-   protected Properties setupProperties() {
-      Properties properties = super.setupProperties();
+   @BeforeClass
+   public void parseCredentials() {
       tenant = Iterables.get(Splitter.on(":").split(identity), 0);
       user = Iterables.get(Splitter.on(":").split(identity), 1);
-      return properties;
+      context = newBuilder().modules(setupModules()).overrides(setupProperties())
+            .build(new TypeToken<ApiContext<KeystoneApi>>() {
+               private static final long serialVersionUID = 1L;
+            });
+
+      grabToken(context.utils().injector().getInstance(AuthenticateRequest.class));
    }
 
    public void testAuthenticatePassword() {
-      assertNotNull(authenticationApi.authenticatePassword(TenantAndCredentials.<PasswordCredentials> builder()
-            .tenantName(tenant).credentials(PasswordCredentials.builder().username(user).password(credential).build())
-            .build()));
+      assertNotNull(api().authenticatePassword(TenantAndCredentials.<PasswordCredentials> builder().tenantName(tenant)
+            .credentials(PasswordCredentials.builder().username(user).password(credential).build()).build()));
    }
 
    public void testAuthenticateToken() {
-      assertNotNull(authenticationApi.authenticateToken(TenantAndCredentials.<TokenCredentials> builder()
-            .tenantName(tenant).credentials(TokenCredentials.builder().id(token.get()).build()).build()));
+      assertNotNull(api().authenticateToken(TenantAndCredentials.<TokenCredentials> builder().tenantName(tenant)
+            .credentials(TokenCredentials.builder().id(token).build()).build()));
+   }
+
+   protected AuthenticationApi api() {
+      return context.utils().injector().getInstance(AuthenticationApi.class);
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java
index c355e28..4f7f2cd 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java
@@ -17,6 +17,7 @@
 package org.jclouds.openstack.keystone.v3.auth;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import org.jclouds.openstack.keystone.auth.domain.AuthInfo;
@@ -27,73 +28,35 @@ import org.jclouds.openstack.keystone.v3.domain.Token;
 import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiMockTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "unit", testName = "V3AuthenticationApiMockTest", singleThreaded = true)
-public class V3AuthenticationApiMockTest extends BaseV3KeystoneApiMockTest {
+import com.google.common.reflect.TypeToken;
 
-   public void testAuthenticatePassword() throws InterruptedException {
-      server.enqueue(jsonResponse("/v3/token.json"));
+import java.util.Map;
 
-      TenantAndCredentials<PasswordCredentials> credentials = TenantAndCredentials.<PasswordCredentials> builder()
-            .tenantName("project")
-            .credentials(PasswordCredentials.builder().username("identity").password("credential").build()).build();
-      
-      AuthInfo authInfo = authenticationApi.authenticatePassword(credentials);
-
-      assertTrue(authInfo instanceof Token);
-      assertEquals(authInfo, tokenFromResource("/v3/token.json"));
+@Test(groups = "unit", testName = "TokenApiMockTest", singleThreaded = true)
+public class V3AuthenticationApiMockTest extends BaseV3KeystoneApiMockTest {
 
-      assertEquals(server.getRequestCount(), 1);
-      assertSent(server, "POST", "/auth/tokens", stringFromResource("/v3/auth-password.json"));
-   }
-   
-   public void testAuthenticatePasswordScoped() throws InterruptedException {
+   public void testAuthenticatePassword() throws InterruptedException {
       server.enqueue(jsonResponse("/v3/token.json"));
 
-      TenantAndCredentials<PasswordCredentials> credentials = TenantAndCredentials.<PasswordCredentials> builder()
-            .tenantName("project")
-            .scope("project:1234567890")
-            .credentials(PasswordCredentials.builder().username("identity").password("credential").build()).build();
-      
-      AuthInfo authInfo = authenticationApi.authenticatePassword(credentials);
+      AuthInfo authInfo = authenticationApi.authenticatePassword(TenantAndCredentials.<PasswordCredentials>builder().credentials(PasswordCredentials.builder().username("user").password("pwd").build()).build());
 
       assertTrue(authInfo instanceof Token);
       assertEquals(authInfo, tokenFromResource("/v3/token.json"));
 
       assertEquals(server.getRequestCount(), 1);
-      assertSent(server, "POST", "/auth/tokens", stringFromResource("/v3/auth-password-scoped.json"));
+      assertSent(server, "POST", "/auth/tokens");
    }
 
    public void testAuthenticateToken() throws InterruptedException {
       server.enqueue(jsonResponse("/v3/token.json"));
 
-      TenantAndCredentials<TokenCredentials> credentials = TenantAndCredentials.<TokenCredentials> builder()
-            .tenantName("project")
-            .credentials(TokenCredentials.builder().id("token").build()).build();
-      
-      AuthInfo authInfo = authenticationApi.authenticateToken(credentials);
-
-      assertTrue(authInfo instanceof Token);
-      assertEquals(authInfo, tokenFromResource("/v3/token.json"));
-
-      assertEquals(server.getRequestCount(), 1);
-      assertSent(server, "POST", "/auth/tokens", stringFromResource("/v3/auth-token.json"));
-   }
-   
-   public void testAuthenticateTokenScoped() throws InterruptedException {
-      server.enqueue(jsonResponse("/v3/token.json"));
-
-      TenantAndCredentials<TokenCredentials> credentials = TenantAndCredentials.<TokenCredentials> builder()
-            .tenantName("project")
-            .scope("domain:mydomain")
-            .credentials(TokenCredentials.builder().id("token").build()).build();
-      
-      AuthInfo authInfo = authenticationApi.authenticateToken(credentials);
+      AuthInfo authInfo = authenticationApi.authenticateToken(TenantAndCredentials.<TokenCredentials>builder().credentials(TokenCredentials.builder().id("token").build()).build());
 
       assertTrue(authInfo instanceof Token);
       assertEquals(authInfo, tokenFromResource("/v3/token.json"));
 
       assertEquals(server.getRequestCount(), 1);
-      assertSent(server, "POST", "/auth/tokens", stringFromResource("/v3/auth-token-scoped.json"));
+      assertSent(server, "POST", "/auth/tokens");
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiLiveTest.java
index 2cfef51..325c0ae 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiLiveTest.java
@@ -19,18 +19,32 @@ package org.jclouds.openstack.keystone.v3.features;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
+import java.util.Properties;
+
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.v3.KeystoneApi;
 import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiLiveTest;
 import org.testng.annotations.Test;
 
-@Test(groups = "live", testName = "AuthApiLiveTest")
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+@Test(groups = "live", testName = "TokenApiLiveTest")
 public class AuthApiLiveTest extends BaseV3KeystoneApiLiveTest {
 
+   @Override
+   protected KeystoneApi create(Properties props, Iterable<Module> modules) {
+      Injector injector = newBuilder().modules(modules).overrides(props).buildInjector();
+      grabToken(injector.getInstance(AuthenticateRequest.class));
+      return injector.getInstance(KeystoneApi.class);
+   }
+
    public void testIsTokenValid() {
-      assertTrue(api().isValid(token.get()));
+      assertTrue(api().isValid(token));
    }
 
    public void testGetToken() {
-      assertNotNull(api().get(token.get()));
+      assertNotNull(api().get(token));
    }
 
    private AuthApi api() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
index 87ca0b3..216df80 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
@@ -23,36 +23,32 @@ import org.jclouds.openstack.keystone.v3.domain.Token;
 import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiMockTest;
 import org.testng.annotations.Test;
 
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
+import com.google.common.reflect.TypeToken;
 
 @Test(groups = "unit", testName = "AuthApiMockTest", singleThreaded = true)
 public class AuthApiMockTest extends BaseV3KeystoneApiMockTest {
 
    public void testGetToken() throws InterruptedException {
-      enqueueAuthentication(server);
-      server.enqueue(jsonResponse("/v3/token.json"));
+      server.enqueue(jsonResponse("/v3/token.json").addHeader("X-Subject-Token", "bf583aefb74e45108346b4c1c8527a10"));
 
-      Token token = api.getAuthApi().get(authToken);
+      Token token = api.getAuthApi().get("bf583aefb74e45108346b4c1c8527a10");
 
       assertEquals(token, tokenFromResource("/v3/token.json"));
 
-      assertEquals(server.getRequestCount(), 2);
-      assertAuthentication(server);
-      RecordedRequest request = assertSent(server, "GET", "/auth/tokens");
-      assertEquals(request.getHeader("X-Subject-Token"), authToken);
+      assertEquals(server.getRequestCount(), 1);
+      assertSent(server, "GET", "/token/bf583aefb74e45108346b4c1c8527a10");
    }
 
    public void testGetTokenReturns404() throws InterruptedException {
-      enqueueAuthentication(server);
       server.enqueue(response404());
 
-      Token token = api.getAuthApi().get("foo");
+      Token token = api.getAuthApi().get("bf583aefb74e45108346b4c1c8527a10");
+
       assertNull(token);
 
       assertEquals(server.getRequestCount(), 2);
-      assertAuthentication(server);
-      RecordedRequest request = assertSent(server, "GET", "/auth/tokens");
-      assertEquals(request.getHeader("X-Subject-Token"), "foo");
+      assertSent(server, "POST", "/auth/tokens");
+      assertSent(server, "GET", "/token/bf583aefb74e45108346b4c1c8527a10");
    }
    
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiLiveTest.java
index 63cd98c..3a74a75 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiLiveTest.java
@@ -18,13 +18,22 @@ package org.jclouds.openstack.keystone.v3.features;
 
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
 
 import java.util.List;
+import java.util.Properties;
+import java.util.Set;
 
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.v2_0.domain.Tenant;
+import org.jclouds.openstack.keystone.v3.KeystoneApi;
 import org.jclouds.openstack.keystone.v3.domain.Endpoint;
 import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiLiveTest;
 import org.testng.annotations.Test;
 
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
 @Test(groups = "live", testName = "CatalogApiLiveTest")
 public class CatalogApiLiveTest extends BaseV3KeystoneApiLiveTest {
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiMockTest.java
index a8d8bf4..9e43f1f 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/CatalogApiMockTest.java
@@ -18,38 +18,39 @@ package org.jclouds.openstack.keystone.v3.features;
 
 import static com.google.common.collect.Iterables.size;
 import static org.testng.Assert.assertEquals;
-
-import java.util.List;
+import static org.testng.Assert.assertNull;
 
 import org.jclouds.openstack.keystone.v3.domain.Endpoint;
+import org.jclouds.openstack.keystone.v3.domain.Token;
 import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiMockTest;
 import org.testng.annotations.Test;
 
+import java.util.List;
+
 @Test(groups = "unit", testName = "CatalogApiMockTest", singleThreaded = true)
 public class CatalogApiMockTest extends BaseV3KeystoneApiMockTest {
 
    public void testListEndpoints() throws InterruptedException {
-      enqueueAuthentication(server);
       server.enqueue(jsonResponse("/v3/endpoints.json"));
 
       List<Endpoint> endpoints = api.getCatalogApi().endpoints();
+
       assertEquals(size(endpoints), 8);
-      
       assertEquals(server.getRequestCount(), 2);
-      assertAuthentication(server);
+
       assertSent(server, "GET", "/endpoints");
    }
 
-   public void testListEndpointsReturns404() throws InterruptedException {
-      enqueueAuthentication(server);
+   public void testGetTokenReturns404() throws InterruptedException {
       server.enqueue(response404());
 
-      List<Endpoint> endpoints = api.getCatalogApi().endpoints();
-      assertEquals(endpoints.size(), 0);
-      
+      Token token = api.getAuthApi().get("bf583aefb74e45108346b4c1c8527a10");
+
+      assertNull(token);
+
       assertEquals(server.getRequestCount(), 2);
-      assertAuthentication(server);
-      assertSent(server, "GET", "/endpoints");
+      assertSent(server, "POST", "/auth/tokens");
+      assertSent(server, "GET", "/token/bf583aefb74e45108346b4c1c8527a10");
    }
    
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
index d73c3cf..f3a718a 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiLiveTest.java
@@ -16,49 +16,37 @@
  */
 package org.jclouds.openstack.keystone.v3.internal;
 
-import static org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
-
 import java.util.Properties;
 
+import com.google.common.collect.Iterables;
 import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.openstack.keystone.auth.AuthenticationApi;
-import org.jclouds.openstack.keystone.auth.config.Authentication;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.jclouds.openstack.keystone.v3.KeystoneApi;
-import org.jclouds.rest.ApiContext;
 
-import com.google.common.base.Supplier;
-import com.google.inject.Key;
-import com.google.inject.Module;
-import com.google.inject.TypeLiteral;
+import static org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 public class BaseV3KeystoneApiLiveTest extends BaseApiLiveTest<KeystoneApi> {
 
-   protected Supplier<String> token;
-   protected AuthenticationApi authenticationApi;
+   protected String token;
 
    public BaseV3KeystoneApiLiveTest() {
       provider = "openstack-keystone-3";
    }
 
    @Override
-   protected KeystoneApi create(Properties props, Iterable<Module> modules) {
-      ApiContext<KeystoneApi> ctx = newBuilder().modules(modules).overrides(props).build();
-      authenticationApi = ctx.utils().injector().getInstance(AuthenticationApi.class);
-      token = ctx.utils().injector().getInstance(Key.get(new TypeLiteral<Supplier<String>>() {
-      }, Authentication.class));
-      return ctx.getApi();
-   }
-
-   @Override
    protected Properties setupProperties() {
       Properties props = super.setupProperties();
-      setIfTestSystemPropertyPresent(props, CREDENTIAL_TYPE);
-      String customServiceType = setIfTestSystemPropertyPresent(props, SERVICE_TYPE);
-      if (customServiceType == null) {
-         props.setProperty(SERVICE_TYPE, "identityv3");
-      }
+      setIfTestSystemPropertyPresent(props, KeystoneProperties.CREDENTIAL_TYPE);
+      props.setProperty(SERVICE_TYPE, "identityv3");
       return props;
    }
 
+   // Get the token currently in use
+   protected void grabToken(AuthenticateRequest ar) {
+      HttpRequest test = ar.filter(HttpRequest.builder().method("GET").endpoint(endpoint).build());
+      token = Iterables.getOnlyElement(test.getHeaders().get("X-Auth-Token"));
+   }
+
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
index 60fdb41..599a0e8 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
@@ -25,14 +25,12 @@ import java.io.IOException;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.UUID;
 
 import org.jclouds.ContextBuilder;
 import org.jclouds.concurrent.config.ExecutorServiceModule;
 import org.jclouds.json.Json;
-import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
 import org.jclouds.openstack.keystone.auth.AuthenticationApi;
-import org.jclouds.openstack.keystone.config.KeystoneProperties;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.keystone.v3.KeystoneApi;
 import org.jclouds.openstack.keystone.v3.KeystoneApiMetadata;
 import org.jclouds.openstack.keystone.v3.domain.Token;
@@ -55,10 +53,11 @@ public class BaseV3KeystoneApiMockTest {
    
    private static final String DEFAULT_ENDPOINT = new KeystoneApiMetadata().getDefaultEndpoint().orNull();
    
+   private final Set<Module> modules = ImmutableSet.<Module> of(new ExecutorServiceModule(newDirectExecutorService()));
+   
    protected MockWebServer server;
    protected KeystoneApi api;
    protected AuthenticationApi authenticationApi;
-   protected String authToken;
    private Json json;
    
    // So that we can ignore formatting.
@@ -68,11 +67,10 @@ public class BaseV3KeystoneApiMockTest {
    public void start() throws IOException {
       server = new MockWebServer();
       server.play();
-      
       ApiContext<KeystoneApi> ctx = ContextBuilder.newBuilder("openstack-keystone-3")
-              .credentials("project:identity", "credential")
+              .credentials("identity", "credential")
               .endpoint(url(""))
-              .modules(modules())
+              .modules(modules)
               .overrides(overrides())
               .build();
       json = ctx.utils().injector().getInstance(Json.class);
@@ -87,27 +85,12 @@ public class BaseV3KeystoneApiMockTest {
    }
    
    protected Properties overrides() {
-      Properties overrides = new Properties();
-      overrides.setProperty(KeystoneProperties.SCOPE, "project:1234567890");
-      overrides.setProperty(KeystoneProperties.SERVICE_TYPE, "identityv3");
-      return overrides;
-   }
-   
-   protected Set<Module> modules() {
-      ImmutableSet.Builder<Module> modules = ImmutableSet.builder();
-      modules.add(new ExecutorServiceModule(newDirectExecutorService()));
-      modules.add(new SLF4JLoggingModule());
-      return modules.build();
+      return new Properties();
    }
 
    protected String url(String path) {
       return server.getUrl(path).toString();
    }
-   
-   protected void enqueueAuthentication(MockWebServer server) {
-      authToken = UUID.randomUUID().toString();
-      server.enqueue(jsonResponse("/v3/token.json").addHeader("X-Subject-Token", authToken));
-   }
 
    protected MockResponse jsonResponse(String resource) {
       return new MockResponse().addHeader("Content-Type", "application/json").setBody(stringFromResource(resource));
@@ -143,10 +126,6 @@ public class BaseV3KeystoneApiMockTest {
       String text = stringFromResource(resourceName);
       return json.fromJson(text, type);
    }
-   
-   protected void assertAuthentication(MockWebServer server) throws InterruptedException {
-      assertSent(server, "POST", "/auth/tokens", stringFromResource("/v3/auth-password-scoped.json"));
-   }
 
    protected RecordedRequest assertSent(MockWebServer server, String method, String path) throws InterruptedException {
       RecordedRequest request = server.takeRequest();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/resources/logback.xml
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/logback.xml b/apis/openstack-keystone/src/test/resources/logback.xml
index 5c37355..4cf5016 100644
--- a/apis/openstack-keystone/src/test/resources/logback.xml
+++ b/apis/openstack-keystone/src/test/resources/logback.xml
@@ -13,7 +13,7 @@
         </encoder>
     </appender>
     <appender name="COMPUTEFILE" class="ch.qos.logback.core.FileAppender">
-        <file>target/test-data/jclouds-compute.log</file>
+        <file>target/jclouds-compute.log</file>
         <encoder>
             <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
         </encoder>

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/resources/v3/auth-password-scoped.json
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/v3/auth-password-scoped.json b/apis/openstack-keystone/src/test/resources/v3/auth-password-scoped.json
deleted file mode 100644
index 48bfc9d..0000000
--- a/apis/openstack-keystone/src/test/resources/v3/auth-password-scoped.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "auth": {
-        "identity": {
-            "methods": [
-                "password"
-            ],
-            "password": {
-                "user": {
-                    "name": "identity",
-                    "domain": {
-                        "name": "project"
-                    },
-                    "password": "credential"
-                }
-            }
-        },
-        "scope": {
-            "project": {
-                "id": "1234567890"
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/resources/v3/auth-password.json
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/v3/auth-password.json b/apis/openstack-keystone/src/test/resources/v3/auth-password.json
deleted file mode 100644
index 6cb05a3..0000000
--- a/apis/openstack-keystone/src/test/resources/v3/auth-password.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "auth": {
-        "identity": {
-            "methods": [
-                "password"
-            ],
-            "password": {
-                "user": {
-                    "name": "identity",
-                    "domain": {
-                        "name": "project"
-                    },
-                    "password": "credential"
-                }
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/resources/v3/auth-token-scoped.json
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/v3/auth-token-scoped.json b/apis/openstack-keystone/src/test/resources/v3/auth-token-scoped.json
deleted file mode 100644
index a1938a7..0000000
--- a/apis/openstack-keystone/src/test/resources/v3/auth-token-scoped.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-    "auth": {
-        "identity": {
-            "methods": [
-                "token"
-            ],
-            "token": {
-                "id": "token"
-            }
-        },
-        "scope": {
-            "domain": {
-                "name": "mydomain"
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/resources/v3/auth-token.json
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/v3/auth-token.json b/apis/openstack-keystone/src/test/resources/v3/auth-token.json
deleted file mode 100644
index 36096a2..0000000
--- a/apis/openstack-keystone/src/test/resources/v3/auth-token.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "auth": {
-        "identity": {
-            "methods": [
-                "token"
-            ],
-            "token": {
-                "id": "token"
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/9b619981/apis/openstack-keystone/src/test/resources/v3/token.json
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/v3/token.json b/apis/openstack-keystone/src/test/resources/v3/token.json
index b7fa677..20734d5 100644
--- a/apis/openstack-keystone/src/test/resources/v3/token.json
+++ b/apis/openstack-keystone/src/test/resources/v3/token.json
@@ -298,7 +298,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "http://localhost/identity/v3",
+            "url": "http://localhost/v3",
             "region": "uk-1",
             "interface": "admin",
             "id": "db15a7126d4a4f1f81903bb4d56be32b",
@@ -382,19 +382,11 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "http://localhost/identity/v3",
+            "url": "https://identity.myprovider.com/v3",
             "region": "uk-1",
             "interface": "public",
             "id": "27dc2bba1c5d4a14b68657fc8fdd4e3e",
             "name": "identityv3"
-          },
-          {
-            "region_id": "uk-1",
-            "url": "http://localhost/identity/v3",
-            "region": "uk-1",
-            "interface": "admin",
-            "id": "27dc2bba1c5d4a14b68657fc8fdd4e3e",
-            "name": "identityv3"
           }
         ],
         "type": "identityv3",