Add support for Keystone V3

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

Branch: refs/heads/master
Commit: d3afa6eeae56d3457dac9f912c02353a47166575
Parents: 660f10f
Author: Ignasi Barrera <[email protected]>
Authored: Mon Jan 15 15:06:02 2018 +0100
Committer: Ignasi Barrera <[email protected]>
Committed: Tue Jan 16 09:08:06 2018 +0100

----------------------------------------------------------------------
 .gitignore                                      |  2 +
 .../glance/v1_0/GlanceApiMetadata.java          | 18 +++---
 .../glance/v1_0/features/ImageApi.java          |  2 +-
 .../v1_0/internal/BaseGlanceApiLiveTest.java    |  2 +-
 .../openstack/heat/v1/HeatApiMetadata.java      | 18 +++---
 .../openstack/heat/v1/features/ResourceApi.java |  2 +-
 .../openstack/heat/v1/features/StackApi.java    |  2 +-
 .../openstack/heat/v1/features/TemplateApi.java |  2 +-
 .../heat/v1/internal/BaseHeatApiLiveTest.java   |  2 +-
 .../marconi/v1/MarconiApiMetadata.java          | 18 +++---
 .../openstack/marconi/v1/features/ClaimApi.java |  2 +-
 .../marconi/v1/features/MessageApi.java         |  2 +-
 .../openstack/marconi/v1/features/QueueApi.java |  2 +-
 .../v1/internal/BaseMarconiApiLiveTest.java     |  9 +--
 .../neutron/v2/NeutronApiMetadata.java          | 18 +++---
 .../neutron/v2/extensions/FWaaSApi.java         |  2 +-
 .../neutron/v2/extensions/FloatingIPApi.java    |  2 +-
 .../neutron/v2/extensions/RouterApi.java        |  2 +-
 .../v2/extensions/lbaas/v1/LBaaSApi.java        |  2 +-
 .../neutron/v2/features/NetworkApi.java         |  2 +-
 .../openstack/neutron/v2/features/PortApi.java  | 28 ++++----
 .../neutron/v2/features/SecurityGroupApi.java   |  2 +-
 .../neutron/v2/features/SubnetApi.java          | 28 ++++----
 .../v2/features/SecurityGroupApiLiveTest.java   | 12 +++-
 .../v2/internal/BaseNeutronApiLiveTest.java     | 13 +++-
 .../v2/internal/BaseNeutronApiMockTest.java     |  6 +-
 .../src/test/resources/logback.xml              | 67 +++++++++++---------
 .../jclouds/openstack/poppy/v1/PoppyApi.java    |  2 +-
 .../openstack/poppy/v1/PoppyApiMetadata.java    | 18 +++---
 .../openstack/poppy/v1/features/FlavorApi.java  |  2 +-
 .../openstack/poppy/v1/features/ServiceApi.java |  2 +-
 .../poppy/v1/internal/BasePoppyApiLiveTest.java |  2 +-
 .../poppy/v1/internal/BasePoppyApiMockTest.java |  4 +-
 .../uk/AutoscaleUKProviderMetadata.java         | 12 ++--
 .../us/AutoscaleUSProviderMetadata.java         | 12 ++--
 .../us/v1/AutoscaleUSProviderMetadata.java      | 12 ++--
 .../autoscale/v1/AutoscaleApiMetadata.java      | 16 +++--
 .../v1/config/AutoscaleHttpApiModule.java       | 21 ++++--
 .../autoscale/v1/features/GroupApi.java         |  2 +-
 .../autoscale/v1/features/PolicyApi.java        |  2 +-
 .../autoscale/v1/features/WebhookApi.java       |  2 +-
 .../v1/internal/BaseAutoscaleApiLiveTest.java   |  2 +-
 .../v1/internal/BaseAutoscaleApiMockTest.java   |  8 +--
 .../v1/internal/BaseAutoscaleExpectTest.java    |  1 +
 .../rackspace/cdn/uk/CDNUKProviderMetadata.java | 12 ++--
 .../rackspace/cdn/us/CDNUSProviderMetadata.java | 12 ++--
 .../us/v1/CloudBigDataUSProviderMetadata.java   | 12 ++--
 .../v1/CloudBigDataApiMetadata.java             | 16 +++--
 .../v1/config/CloudBigDataHttpApiModule.java    | 21 ++++--
 .../cloudbigdata/v1/features/ClusterApi.java    |  2 +-
 .../cloudbigdata/v1/features/ProfileApi.java    |  2 +-
 .../internal/BaseCloudBigDataApiLiveTest.java   |  2 +-
 .../internal/BaseCloudBigDataApiMockTest.java   |  8 +--
 .../uk/CloudNetworksUKProviderMetadata.java     | 12 ++--
 .../us/CloudNetworksUSProviderMetadata.java     | 12 ++--
 .../uk/CloudQueuesUKProviderMetadata.java       | 12 ++--
 .../us/CloudQueuesUSProviderMetadata.java       | 12 ++--
 .../uk/OrchestrationUKProviderMetadata.java     | 12 ++--
 .../us/OrchestrationUSProviderMetadata.java     | 12 ++--
 59 files changed, 320 insertions(+), 226 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 3242d22..8c20bff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,5 @@ TAGS
 atlassian-ide-plugin.xml
 .DS_Store
 .java-version
+.factorypath
+.apt_generated

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/GlanceApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/GlanceApiMetadata.java
 
b/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/GlanceApiMetadata.java
index 8a541f1..7fb4983 100644
--- 
a/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/GlanceApiMetadata.java
+++ 
b/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/GlanceApiMetadata.java
@@ -16,18 +16,19 @@
  */
 package org.jclouds.openstack.glance.v1_0;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
 import org.jclouds.apis.ApiMetadata;
 import org.jclouds.openstack.glance.v1_0.config.GlanceHttpApiModule;
-import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule;
-import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule;
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.auth.config.AuthenticationModule;
+import org.jclouds.openstack.keystone.auth.config.CredentialTypes;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.openstack.v2_0.ServiceType;
 import org.jclouds.rest.internal.BaseHttpApiMetadata;
 
@@ -58,6 +59,7 @@ public class GlanceApiMetadata extends 
BaseHttpApiMetadata<GlanceApi> {
       Properties properties = BaseHttpApiMetadata.defaultProperties();
       properties.setProperty(SERVICE_TYPE, ServiceType.IMAGE);
       properties.setProperty(CREDENTIAL_TYPE, 
CredentialTypes.PASSWORD_CREDENTIALS);
+      properties.setProperty(KEYSTONE_VERSION, "2");      
       return properties;
    }
 
@@ -74,8 +76,8 @@ public class GlanceApiMetadata extends 
BaseHttpApiMetadata<GlanceApi> {
          .defaultEndpoint("http://localhost:5000/v2.0/";)
          .defaultProperties(GlanceApiMetadata.defaultProperties())
          .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                                     .add(AuthenticationApiModule.class)
-                                     .add(KeystoneAuthenticationModule.class)
+                                     .add(AuthenticationModule.class)
+                                     .add(ServiceCatalogModule.class)
                                      .add(RegionModule.class)
                                      .add(GlanceHttpApiModule.class).build());
       }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/features/ImageApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/features/ImageApi.java
 
b/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/features/ImageApi.java
index 9e6efd5..64008a7 100644
--- 
a/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/features/ImageApi.java
+++ 
b/openstack-glance/src/main/java/org/jclouds/openstack/glance/v1_0/features/ImageApi.java
@@ -47,8 +47,8 @@ import 
org.jclouds.openstack.glance.v1_0.functions.internal.ParseImages;
 import org.jclouds.openstack.glance.v1_0.options.CreateImageOptions;
 import org.jclouds.openstack.glance.v1_0.options.ListImageOptions;
 import org.jclouds.openstack.glance.v1_0.options.UpdateImageOptions;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import 
org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
 import org.jclouds.openstack.v2_0.domain.PaginatedCollection;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.RequestFilters;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/internal/BaseGlanceApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/internal/BaseGlanceApiLiveTest.java
 
b/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/internal/BaseGlanceApiLiveTest.java
index 38d41bd..0fb824a 100644
--- 
a/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/internal/BaseGlanceApiLiveTest.java
+++ 
b/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/internal/BaseGlanceApiLiveTest.java
@@ -20,7 +20,7 @@ import java.util.Properties;
 
 import org.jclouds.apis.BaseApiLiveTest;
 import org.jclouds.openstack.glance.v1_0.GlanceApi;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
+import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.testng.annotations.Test;
 
 /**

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/HeatApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/HeatApiMetadata.java
 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/HeatApiMetadata.java
index e31b3ed..0524712 100644
--- 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/HeatApiMetadata.java
+++ 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/HeatApiMetadata.java
@@ -16,18 +16,19 @@
  */
 package org.jclouds.openstack.heat.v1;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
 import org.jclouds.apis.ApiMetadata;
 import org.jclouds.openstack.heat.v1.config.HeatHttpApiModule;
-import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule;
-import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule;
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.auth.config.AuthenticationModule;
+import org.jclouds.openstack.keystone.auth.config.CredentialTypes;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.rest.internal.BaseHttpApiMetadata;
 
 import com.google.auto.service.AutoService;
@@ -57,6 +58,7 @@ public class HeatApiMetadata extends 
BaseHttpApiMetadata<HeatApi> {
       Properties properties = BaseHttpApiMetadata.defaultProperties();
       properties.setProperty(SERVICE_TYPE, "orchestration");
       properties.setProperty(CREDENTIAL_TYPE, 
CredentialTypes.PASSWORD_CREDENTIALS);
+      properties.setProperty(KEYSTONE_VERSION, "2");
       return properties;
    }
 
@@ -73,8 +75,8 @@ public class HeatApiMetadata extends 
BaseHttpApiMetadata<HeatApi> {
          .defaultEndpoint("http://localhost:5000/v2.0/";)
          .defaultProperties(HeatApiMetadata.defaultProperties())
          .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                           .add(AuthenticationApiModule.class)
-                           .add(KeystoneAuthenticationModule.class)
+                           .add(AuthenticationModule.class)
+                           .add(ServiceCatalogModule.class)
                            .add(RegionModule.class)
                            .add(HeatHttpApiModule.class).build());
       }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/ResourceApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/ResourceApi.java
 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/ResourceApi.java
index a1391b3..5758d76 100644
--- 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/ResourceApi.java
+++ 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/ResourceApi.java
@@ -25,7 +25,7 @@ import javax.ws.rs.Path;
 import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.RequestFilters;
 import org.jclouds.rest.annotations.SelectJson;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/StackApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/StackApi.java
 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/StackApi.java
index c7fadc0..0d47fac 100644
--- 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/StackApi.java
+++ 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/StackApi.java
@@ -40,7 +40,7 @@ import org.jclouds.openstack.heat.v1.domain.Template;
 import org.jclouds.openstack.heat.v1.options.CreateStack;
 import org.jclouds.openstack.heat.v1.options.ListStackOptions;
 import org.jclouds.openstack.heat.v1.options.UpdateStack;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.rest.annotations.BinderParam;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.RequestFilters;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/TemplateApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/TemplateApi.java
 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/TemplateApi.java
index 6c2234a..764e565 100644
--- 
a/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/TemplateApi.java
+++ 
b/openstack-heat/src/main/java/org/jclouds/openstack/heat/v1/features/TemplateApi.java
@@ -27,7 +27,7 @@ import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.openstack.heat.v1.domain.Template;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.rest.annotations.Fallback;
 import org.jclouds.rest.annotations.Payload;
 import org.jclouds.rest.annotations.PayloadParam;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-heat/src/test/java/org/jclouds/openstack/heat/v1/internal/BaseHeatApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-heat/src/test/java/org/jclouds/openstack/heat/v1/internal/BaseHeatApiLiveTest.java
 
b/openstack-heat/src/test/java/org/jclouds/openstack/heat/v1/internal/BaseHeatApiLiveTest.java
index 1887024..c61b848 100644
--- 
a/openstack-heat/src/test/java/org/jclouds/openstack/heat/v1/internal/BaseHeatApiLiveTest.java
+++ 
b/openstack-heat/src/test/java/org/jclouds/openstack/heat/v1/internal/BaseHeatApiLiveTest.java
@@ -20,7 +20,7 @@ import java.util.Properties;
 
 import org.jclouds.apis.BaseApiLiveTest;
 import org.jclouds.openstack.heat.v1.HeatApi;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
+import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.testng.annotations.Test;
 
 /**

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/MarconiApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/MarconiApiMetadata.java
 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/MarconiApiMetadata.java
index db47440..81e26c7 100644
--- 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/MarconiApiMetadata.java
+++ 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/MarconiApiMetadata.java
@@ -16,18 +16,19 @@
  */
 package org.jclouds.openstack.marconi.v1;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
 import org.jclouds.apis.ApiMetadata;
 import org.jclouds.http.okhttp.config.OkHttpCommandExecutorServiceModule;
-import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule;
-import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule;
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.auth.config.AuthenticationModule;
+import org.jclouds.openstack.keystone.auth.config.CredentialTypes;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.openstack.marconi.v1.config.MarconiHttpApiModule;
 import org.jclouds.openstack.marconi.v1.config.MarconiTypeAdapters;
 import org.jclouds.openstack.v2_0.ServiceType;
@@ -60,6 +61,7 @@ public class MarconiApiMetadata extends 
BaseHttpApiMetadata<MarconiApi> {
       Properties properties = BaseHttpApiMetadata.defaultProperties();
       properties.setProperty(SERVICE_TYPE, ServiceType.MESSAGING);
       properties.setProperty(CREDENTIAL_TYPE, 
CredentialTypes.PASSWORD_CREDENTIALS);
+      properties.setProperty(KEYSTONE_VERSION, "2");
 
       return properties;
    }
@@ -77,8 +79,8 @@ public class MarconiApiMetadata extends 
BaseHttpApiMetadata<MarconiApi> {
          .defaultEndpoint("http://localhost:5000/v2.0/";)
          .defaultProperties(MarconiApiMetadata.defaultProperties())
          .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                                     .add(AuthenticationApiModule.class)
-                                     .add(KeystoneAuthenticationModule.class)
+                                     .add(AuthenticationModule.class)
+                                     .add(ServiceCatalogModule.class)
                                      
.add(OkHttpCommandExecutorServiceModule.class)
                                      .add(RegionModule.class)
                                      .add(MarconiTypeAdapters.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
index 8bf93f1..39c1f52 100644
--- 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
+++ 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/ClaimApi.java
@@ -32,7 +32,7 @@ import javax.ws.rs.core.MediaType;
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.marconi.v1.domain.Claim;
 import org.jclouds.openstack.marconi.v1.domain.Message;
 import org.jclouds.openstack.marconi.v1.functions.ParseClaim;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
index 5eb070e..5e80aa7 100644
--- 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
+++ 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/MessageApi.java
@@ -32,8 +32,8 @@ import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404;
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import 
org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
 import org.jclouds.openstack.marconi.v1.binders.BindIdsToQueryParam;
 import org.jclouds.openstack.marconi.v1.domain.CreateMessage;
 import org.jclouds.openstack.marconi.v1.domain.Message;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
index f8c60e6..4aa094b 100644
--- 
a/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
+++ 
b/openstack-marconi/src/main/java/org/jclouds/openstack/marconi/v1/features/QueueApi.java
@@ -32,7 +32,7 @@ import javax.ws.rs.core.MediaType;
 import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.marconi.v1.domain.Queue;
 import org.jclouds.openstack.marconi.v1.domain.QueueStats;
 import org.jclouds.openstack.marconi.v1.domain.Queues;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
 
b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
index 11b7001..59e1d09 100644
--- 
a/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
+++ 
b/openstack-marconi/src/test/java/org/jclouds/openstack/marconi/v1/internal/BaseMarconiApiLiveTest.java
@@ -16,14 +16,15 @@
  */
 package org.jclouds.openstack.marconi.v1.internal;
 
-import com.google.common.collect.Sets;
+import java.util.Properties;
+import java.util.Set;
+
 import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
+import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.jclouds.openstack.marconi.v1.MarconiApi;
 import org.testng.annotations.BeforeClass;
 
-import java.util.Properties;
-import java.util.Set;
+import com.google.common.collect.Sets;
 
 public class BaseMarconiApiLiveTest extends BaseApiLiveTest<MarconiApi> {
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApiMetadata.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApiMetadata.java
index fec4e6a..1487af0 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApiMetadata.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApiMetadata.java
@@ -16,17 +16,18 @@
  */
 package org.jclouds.openstack.neutron.v2;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
 import org.jclouds.apis.ApiMetadata;
-import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule;
-import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule;
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.auth.config.AuthenticationModule;
+import org.jclouds.openstack.keystone.auth.config.CredentialTypes;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.openstack.neutron.v2.config.NeutronHttpApiModule;
 import org.jclouds.openstack.v2_0.ServiceType;
 import org.jclouds.rest.internal.BaseHttpApiMetadata;
@@ -59,6 +60,7 @@ public class NeutronApiMetadata extends 
BaseHttpApiMetadata<NeutronApi> {
       Properties properties = BaseHttpApiMetadata.defaultProperties();
       properties.setProperty(SERVICE_TYPE, ServiceType.NETWORK);
       properties.setProperty(CREDENTIAL_TYPE, 
CredentialTypes.PASSWORD_CREDENTIALS);
+      properties.setProperty(KEYSTONE_VERSION, "2");
       return properties;
    }
 
@@ -76,8 +78,8 @@ public class NeutronApiMetadata extends 
BaseHttpApiMetadata<NeutronApi> {
             .defaultEndpoint("http://localhost:5000/v2.0/";)
             .defaultProperties(NeutronApiMetadata.defaultProperties())
             .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-               .add(AuthenticationApiModule.class)
-               .add(KeystoneAuthenticationModule.class)
+               .add(AuthenticationModule.class)
+               .add(ServiceCatalogModule.class)
                .add(RegionModule.class)
                .add(NeutronHttpApiModule.class).build());
       }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FWaaSApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FWaaSApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FWaaSApi.java
index 35307b1..a4f45db 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FWaaSApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FWaaSApi.java
@@ -31,8 +31,8 @@ import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import 
org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.CreateFirewall;
 import org.jclouds.openstack.neutron.v2.domain.CreateFirewallPolicy;
 import org.jclouds.openstack.neutron.v2.domain.CreateFirewallRule;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApi.java
index ffd5c9e..a00bc04 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApi.java
@@ -31,7 +31,7 @@ import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.FloatingIP;
 import org.jclouds.openstack.neutron.v2.domain.FloatingIPs;
 import org.jclouds.openstack.neutron.v2.fallbacks.EmptyFloatingIPsFallback;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/RouterApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/RouterApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/RouterApi.java
index b79553d..383c70e 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/RouterApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/RouterApi.java
@@ -31,7 +31,7 @@ import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.Router;
 import org.jclouds.openstack.neutron.v2.domain.RouterInterface;
 import org.jclouds.openstack.neutron.v2.domain.Routers;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApi.java
index 6f6d767..f67c6e3 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApi.java
@@ -32,7 +32,7 @@ import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.lbaas.v1.HealthMonitor;
 import org.jclouds.openstack.neutron.v2.domain.lbaas.v1.HealthMonitors;
 import org.jclouds.openstack.neutron.v2.domain.lbaas.v1.Member;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/NetworkApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/NetworkApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/NetworkApi.java
index 2706517..af908fc 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/NetworkApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/NetworkApi.java
@@ -31,7 +31,7 @@ import org.jclouds.Fallbacks;
 import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.Network;
 import org.jclouds.openstack.neutron.v2.domain.Networks;
 import org.jclouds.openstack.neutron.v2.fallbacks.EmptyNetworksFallback;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/PortApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/PortApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/PortApi.java
index 3797810..3cd0e35 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/PortApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/PortApi.java
@@ -16,13 +16,23 @@
  */
 package org.jclouds.openstack.neutron.v2.features;
 
-import com.google.common.annotations.Beta;
-import com.google.common.collect.FluentIterable;
+import java.util.List;
+
+import javax.inject.Named;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.MediaType;
+
 import org.jclouds.Fallbacks;
 import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.Port;
 import org.jclouds.openstack.neutron.v2.domain.Ports;
 import org.jclouds.openstack.neutron.v2.fallbacks.EmptyPortsFallback;
@@ -36,16 +46,8 @@ import org.jclouds.rest.annotations.SelectJson;
 import org.jclouds.rest.annotations.Transform;
 import org.jclouds.rest.annotations.WrapWith;
 
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-import java.util.List;
+import com.google.common.annotations.Beta;
+import com.google.common.collect.FluentIterable;
 
 /**
  * Provides access to Port operations for the OpenStack Networking (Neutron) 
v2 API.

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApi.java
index 4b9803c..3646c17 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApi.java
@@ -30,7 +30,7 @@ import org.jclouds.Fallbacks;
 import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.Rule;
 import org.jclouds.openstack.neutron.v2.domain.Rules;
 import org.jclouds.openstack.neutron.v2.domain.SecurityGroup;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SubnetApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SubnetApi.java
 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SubnetApi.java
index ffb7dcd..62fa7bb 100644
--- 
a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SubnetApi.java
+++ 
b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/features/SubnetApi.java
@@ -16,12 +16,24 @@
  */
 package org.jclouds.openstack.neutron.v2.features;
 
-import com.google.common.collect.FluentIterable;
+import java.util.List;
+
+import javax.inject.Named;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
 import org.jclouds.Fallbacks;
 import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.neutron.v2.domain.Subnet;
 import org.jclouds.openstack.neutron.v2.domain.Subnets;
 import org.jclouds.openstack.neutron.v2.fallbacks.EmptySubnetsFallback;
@@ -35,17 +47,7 @@ import org.jclouds.rest.annotations.SelectJson;
 import org.jclouds.rest.annotations.Transform;
 import org.jclouds.rest.annotations.WrapWith;
 
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import java.util.List;
+import com.google.common.collect.FluentIterable;
 
 /**
  * Provides access to Subnet operations for the OpenStack Networking (Neutron) 
v2 API.

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApiLiveTest.java
 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApiLiveTest.java
index 2cb30fc..37ebe3d 100644
--- 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApiLiveTest.java
+++ 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SecurityGroupApiLiveTest.java
@@ -17,6 +17,8 @@
 
 package org.jclouds.openstack.neutron.v2.features;
 
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.size;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
@@ -29,6 +31,8 @@ import org.jclouds.openstack.neutron.v2.domain.SecurityGroup;
 import org.jclouds.openstack.neutron.v2.internal.BaseNeutronApiLiveTest;
 import org.testng.annotations.Test;
 
+import com.google.common.base.Predicate;
+
 /**
  * Tests parsing and Guice wiring of RouterApi
  */
@@ -67,8 +71,12 @@ public class SecurityGroupApiLiveTest extends 
BaseNeutronApiLiveTest {
 
             assertEquals(securityGroup.getName(), "jclouds-test");
             assertEquals(securityGroup.getDescription(), "jclouds test 
security group");
-
-            assertEquals(securityGroup.getRules().size(), 1);
+            assertEquals(size(filter(securityGroup.getRules(), new 
Predicate<Rule>() {
+               @Override
+               public boolean apply(Rule input) {
+                  return RuleDirection.INGRESS.equals(input.getDirection());
+               }
+            })), 1);
 
             Rule newSecGroupRule = null;
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiLiveTest.java
 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiLiveTest.java
index f220a92..d544aba 100644
--- 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiLiveTest.java
+++ 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiLiveTest.java
@@ -16,13 +16,15 @@
  */
 package org.jclouds.openstack.neutron.v2.internal;
 
+import java.util.Properties;
+
 import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
+import org.jclouds.logging.config.LoggingModule;
+import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
+import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.jclouds.openstack.neutron.v2.NeutronApi;
 import org.testng.annotations.Test;
 
-import java.util.Properties;
-
 /**
  * Tests behavior of {@code NeutronApi}
  *
@@ -35,6 +37,11 @@ public class BaseNeutronApiLiveTest extends 
BaseApiLiveTest<NeutronApi> {
    }
 
    @Override
+   protected LoggingModule getLoggingModule() {
+      return new SLF4JLoggingModule();
+   }
+
+   @Override
    protected Properties setupProperties() {
       Properties props = super.setupProperties();
       setIfTestSystemPropertyPresent(props, 
KeystoneProperties.CREDENTIAL_TYPE);

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiMockTest.java
 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiMockTest.java
index d180e55..be7d245 100644
--- 
a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiMockTest.java
+++ 
b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/internal/BaseNeutronApiMockTest.java
@@ -16,12 +16,12 @@
  */
 package org.jclouds.openstack.neutron.v2.internal;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+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 org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
+import org.jclouds.openstack.keystone.auth.config.CredentialTypes;
 import org.jclouds.openstack.neutron.v2.NeutronApi;
 import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-neutron/src/test/resources/logback.xml
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/resources/logback.xml 
b/openstack-neutron/src/test/resources/logback.xml
index 02685ca..5c37355 100644
--- a/openstack-neutron/src/test/resources/logback.xml
+++ b/openstack-neutron/src/test/resources/logback.xml
@@ -1,35 +1,42 @@
 <?xml version="1.0"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<configuration>
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+<configuration scan="false">
+    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/test-data/jclouds.log</file>
         <encoder>
-            <pattern>-  %msg%n</pattern>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
         </encoder>
     </appender>
-    <root level="info">
-        <appender-ref ref="STDOUT"/>
-    </root>
-    <logger name="jclouds.compute" level="debug"/>
-    <logger name="net.schmizz" level="warn"/>
-    <logger name="jclouds.wire" level="debug"/>
-    <logger name="jclouds.headers" level="debug"/>
-    <logger name="jclouds.ssh" level="debug"/>
-</configuration>
+    <appender name="WIREFILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/test-data/jclouds-wire.log</file>
+        <encoder>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+        </encoder>
+    </appender>
+    <appender name="COMPUTEFILE" class="ch.qos.logback.core.FileAppender">
+        <file>target/test-data/jclouds-compute.log</file>
+        <encoder>
+            <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+        </encoder>
+    </appender>
+
+    <logger name="org.jclouds">
+        <level value="DEBUG" />
+        <appender-ref ref="FILE" />
+    </logger>
+    <logger name="jclouds.compute">
+        <level value="DEBUG" />
+        <appender-ref ref="COMPUTEFILE" />
+    </logger>
+    <logger name="jclouds.wire">
+        <level value="DEBUG" />
+        <appender-ref ref="WIREFILE" />
+    </logger>
+    <logger name="jclouds.headers">
+        <level value="DEBUG" />
+        <appender-ref ref="WIREFILE" />
+    </logger>
 
+    <root>
+        <level value="INFO" />
+    </root>
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApi.java 
b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApi.java
index 6f011f5..04caf4f 100644
--- a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApi.java
+++ b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApi.java
@@ -24,7 +24,7 @@ import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.core.MediaType;
 
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.poppy.v1.config.CDN;
 import org.jclouds.openstack.poppy.v1.fallbacks.PoppyFallbacks.FalseOn500or503;
 import org.jclouds.openstack.poppy.v1.features.FlavorApi;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApiMetadata.java
 
b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApiMetadata.java
index b5e9a44..3c00bb1 100644
--- 
a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApiMetadata.java
+++ 
b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/PoppyApiMetadata.java
@@ -16,18 +16,19 @@
  */
 package org.jclouds.openstack.poppy.v1;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
 import org.jclouds.apis.ApiMetadata;
 import org.jclouds.http.okhttp.config.OkHttpCommandExecutorServiceModule;
-import org.jclouds.openstack.keystone.v2_0.config.AuthenticationApiModule;
-import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule;
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ProviderModule;
+import org.jclouds.openstack.keystone.auth.config.AuthenticationModule;
+import org.jclouds.openstack.keystone.auth.config.CredentialTypes;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.ProviderModule;
 import org.jclouds.openstack.poppy.v1.config.PoppyHttpApiModule;
 import org.jclouds.rest.internal.BaseHttpApiMetadata;
 
@@ -58,6 +59,7 @@ public class PoppyApiMetadata extends 
BaseHttpApiMetadata<PoppyApi> {
       Properties properties = BaseHttpApiMetadata.defaultProperties();
       properties.setProperty(SERVICE_TYPE, "cdn");
       properties.setProperty(CREDENTIAL_TYPE, 
CredentialTypes.PASSWORD_CREDENTIALS);
+      properties.setProperty(KEYSTONE_VERSION, "2");
       return properties;
    }
 
@@ -74,8 +76,8 @@ public class PoppyApiMetadata extends 
BaseHttpApiMetadata<PoppyApi> {
          .defaultEndpoint("http://localhost:5000/v2.0/";)
          .defaultProperties(PoppyApiMetadata.defaultProperties())
          .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                           .add(AuthenticationApiModule.class)
-                           .add(KeystoneAuthenticationModule.class)
+                           .add(AuthenticationModule.class)
+                           .add(ServiceCatalogModule.class)
                            .add(OkHttpCommandExecutorServiceModule.class)
                            .add(ProviderModule.class)
                            .add(PoppyHttpApiModule.class).build());

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/FlavorApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/FlavorApi.java
 
b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/FlavorApi.java
index 5e498ba..fc4561e 100644
--- 
a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/FlavorApi.java
+++ 
b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/FlavorApi.java
@@ -26,7 +26,7 @@ import javax.ws.rs.core.MediaType;
 import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.poppy.v1.config.CDN;
 import org.jclouds.openstack.poppy.v1.domain.Flavor;
 import org.jclouds.rest.annotations.Endpoint;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/ServiceApi.java
----------------------------------------------------------------------
diff --git 
a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/ServiceApi.java
 
b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/ServiceApi.java
index dfc86de..b6dcbd8 100644
--- 
a/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/ServiceApi.java
+++ 
b/openstack-poppy/src/main/java/org/jclouds/openstack/poppy/v1/features/ServiceApi.java
@@ -34,8 +34,8 @@ import 
org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.collect.PagedIterable;
 import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import 
org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
 import org.jclouds.openstack.poppy.v1.config.CDN;
 import org.jclouds.openstack.poppy.v1.domain.CreateService;
 import org.jclouds.openstack.poppy.v1.domain.Service;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiLiveTest.java
 
b/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiLiveTest.java
index 10d3acd..6d72d09 100644
--- 
a/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiLiveTest.java
+++ 
b/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiLiveTest.java
@@ -19,7 +19,7 @@ package org.jclouds.openstack.poppy.v1.internal;
 import java.util.Properties;
 
 import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
+import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.jclouds.openstack.poppy.v1.PoppyApi;
 import org.testng.annotations.Test;
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiMockTest.java
 
b/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiMockTest.java
index c57a5e1..4f805d1 100644
--- 
a/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiMockTest.java
+++ 
b/openstack-poppy/src/test/java/org/jclouds/openstack/poppy/v1/internal/BasePoppyApiMockTest.java
@@ -16,11 +16,11 @@
  */
 package org.jclouds.openstack.poppy.v1.internal;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
 
 import java.util.Properties;
 
-import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
+import org.jclouds.openstack.keystone.auth.config.CredentialTypes;
 import org.jclouds.openstack.poppy.v1.PoppyApi;
 import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale-uk/src/main/java/org/jclouds/rackspace/autoscale/uk/AutoscaleUKProviderMetadata.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale-uk/src/main/java/org/jclouds/rackspace/autoscale/uk/AutoscaleUKProviderMetadata.java
 
b/rackspace-autoscale-uk/src/main/java/org/jclouds/rackspace/autoscale/uk/AutoscaleUKProviderMetadata.java
index e4e688e..4737430 100644
--- 
a/rackspace-autoscale-uk/src/main/java/org/jclouds/rackspace/autoscale/uk/AutoscaleUKProviderMetadata.java
+++ 
b/rackspace-autoscale-uk/src/main/java/org/jclouds/rackspace/autoscale/uk/AutoscaleUKProviderMetadata.java
@@ -19,20 +19,21 @@ package org.jclouds.rackspace.autoscale.uk;
 import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES;
 import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION;
 import static 
org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.internal.BaseProviderMetadata;
 import org.jclouds.rackspace.autoscale.v1.AutoscaleApiMetadata;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleHttpApiModule;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleParserModule;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
-import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
 
@@ -67,6 +68,7 @@ public class AutoscaleUKProviderMetadata extends 
BaseProviderMetadata {
       Properties properties = new Properties();
       properties.setProperty(CREDENTIAL_TYPE, 
CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
       properties.setProperty(SERVICE_TYPE, ServiceType.AUTO_SCALE);
+      properties.setProperty(KEYSTONE_VERSION, "2");
 
       properties.setProperty(PROPERTY_REGIONS, "LON");
       properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, 
"GB-SLG");
@@ -86,8 +88,8 @@ public class AutoscaleUKProviderMetadata extends 
BaseProviderMetadata {
                
.documentation(URI.create("http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/Overview.html";))
                .version("1.0")
                .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                     .add(CloudIdentityAuthenticationApiModule.class)
                      .add(CloudIdentityAuthenticationModule.class)
+                     .add(ServiceCatalogModule.class)
                      .add(RegionModule.class)
                      .add(AutoscaleParserModule.class)
                      .add(AutoscaleHttpApiModule.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/AutoscaleUSProviderMetadata.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/AutoscaleUSProviderMetadata.java
 
b/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/AutoscaleUSProviderMetadata.java
index bacdea5..aeaf539 100644
--- 
a/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/AutoscaleUSProviderMetadata.java
+++ 
b/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/AutoscaleUSProviderMetadata.java
@@ -19,20 +19,21 @@ package org.jclouds.rackspace.autoscale.us;
 import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES;
 import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION;
 import static 
org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.internal.BaseProviderMetadata;
 import org.jclouds.rackspace.autoscale.v1.AutoscaleApiMetadata;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleHttpApiModule;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleParserModule;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
-import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
 
@@ -67,6 +68,7 @@ public class AutoscaleUSProviderMetadata extends 
BaseProviderMetadata {
       Properties properties = new Properties();
       properties.setProperty(CREDENTIAL_TYPE, 
CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
       properties.setProperty(SERVICE_TYPE, ServiceType.AUTO_SCALE);
+      properties.setProperty(KEYSTONE_VERSION, "2");
 
       properties.setProperty(PROPERTY_REGIONS, "ORD,DFW,IAD,SYD,HKG");
       properties.setProperty(PROPERTY_REGION + ".ORD." + ISO3166_CODES, 
"US-IL");
@@ -91,8 +93,8 @@ public class AutoscaleUSProviderMetadata extends 
BaseProviderMetadata {
                
.documentation(URI.create("http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/Overview.html";))
                .version("1.0")
                .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                     .add(CloudIdentityAuthenticationApiModule.class)
                      .add(CloudIdentityAuthenticationModule.class)
+                     .add(ServiceCatalogModule.class)
                      .add(RegionModule.class)
                      .add(AutoscaleParserModule.class)
                      .add(AutoscaleHttpApiModule.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/v1/AutoscaleUSProviderMetadata.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/v1/AutoscaleUSProviderMetadata.java
 
b/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/v1/AutoscaleUSProviderMetadata.java
index 1cc53e6..dfd843a 100644
--- 
a/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/v1/AutoscaleUSProviderMetadata.java
+++ 
b/rackspace-autoscale-us/src/main/java/org/jclouds/rackspace/autoscale/us/v1/AutoscaleUSProviderMetadata.java
@@ -19,20 +19,21 @@ package org.jclouds.rackspace.autoscale.us.v1;
 import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES;
 import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION;
 import static 
org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.internal.BaseProviderMetadata;
 import org.jclouds.rackspace.autoscale.v1.AutoscaleApiMetadata;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleHttpApiModule;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleParserModule;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
-import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
 
@@ -69,6 +70,7 @@ public class AutoscaleUSProviderMetadata extends 
BaseProviderMetadata {
       Properties properties = new Properties();
       properties.setProperty(CREDENTIAL_TYPE, 
CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
       properties.setProperty(SERVICE_TYPE, ServiceType.AUTO_SCALE);
+      properties.setProperty(KEYSTONE_VERSION, "2");
 
       properties.setProperty(PROPERTY_REGIONS, "ORD,DFW,IAD,SYD,HKG");
       properties.setProperty(PROPERTY_REGION + ".ORD." + ISO3166_CODES, 
"US-IL");
@@ -93,8 +95,8 @@ public class AutoscaleUSProviderMetadata extends 
BaseProviderMetadata {
                
.documentation(URI.create("http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/Overview.html";))
                .version("1.0")
                .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                     .add(CloudIdentityAuthenticationApiModule.class)
                      .add(CloudIdentityAuthenticationModule.class)
+                     .add(ServiceCatalogModule.class)
                      .add(RegionModule.class)
                      .add(AutoscaleParserModule.class)
                      .add(AutoscaleHttpApiModule.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
index 3161f81..7abde0e 100644
--- 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
+++ 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/AutoscaleApiMetadata.java
@@ -16,20 +16,21 @@
  */
 package org.jclouds.rackspace.autoscale.v1;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
 import org.jclouds.apis.ApiMetadata;
-import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.RegionModule;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.RegionModule;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleHttpApiModule;
 import org.jclouds.rackspace.autoscale.v1.config.AutoscaleParserModule;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
-import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule;
+import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
 import org.jclouds.rest.internal.BaseHttpApiMetadata;
 
 import com.google.auto.service.AutoService;
@@ -60,7 +61,8 @@ public class AutoscaleApiMetadata extends 
BaseHttpApiMetadata<AutoscaleApi> {
    public static Properties defaultProperties() {
       Properties properties = BaseHttpApiMetadata.defaultProperties();
       properties.setProperty(SERVICE_TYPE, ServiceType.AUTO_SCALE);
-      properties.setProperty(CREDENTIAL_TYPE, 
CredentialTypes.PASSWORD_CREDENTIALS);
+      properties.setProperty(CREDENTIAL_TYPE, 
CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
+      properties.setProperty(KEYSTONE_VERSION, "2");
       return properties;
    }
 
@@ -77,8 +79,8 @@ public class AutoscaleApiMetadata extends 
BaseHttpApiMetadata<AutoscaleApi> {
          .defaultEndpoint("http://localhost:5000/v2.0/";)
          .defaultProperties(AutoscaleApiMetadata.defaultProperties())
          .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-               .add(CloudIdentityAuthenticationApiModule.class)
                .add(CloudIdentityAuthenticationModule.class)
+               .add(ServiceCatalogModule.class)
                .add(RegionModule.class)
                .add(AutoscaleParserModule.class)
                .add(AutoscaleHttpApiModule.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/config/AutoscaleHttpApiModule.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/config/AutoscaleHttpApiModule.java
 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/config/AutoscaleHttpApiModule.java
index 7c32ce8..3a43d29 100644
--- 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/config/AutoscaleHttpApiModule.java
+++ 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/config/AutoscaleHttpApiModule.java
@@ -24,8 +24,10 @@ import org.jclouds.http.HttpErrorHandler;
 import org.jclouds.http.annotation.ClientError;
 import org.jclouds.http.annotation.Redirection;
 import org.jclouds.http.annotation.ServerError;
+import org.jclouds.openstack.keystone.auth.domain.AuthInfo;
 import org.jclouds.openstack.keystone.v2_0.domain.Access;
 import org.jclouds.openstack.keystone.v2_0.domain.Tenant;
+import org.jclouds.openstack.keystone.v3.domain.Token;
 import org.jclouds.rackspace.autoscale.v1.AutoscaleApi;
 import org.jclouds.rackspace.autoscale.v1.handlers.AutoscaleErrorHandler;
 import org.jclouds.rest.ConfiguresHttpApi;
@@ -64,14 +66,25 @@ public class AutoscaleHttpApiModule extends 
HttpApiModule<AutoscaleApi> {
    }
 
    @Provides
-   Supplier<Optional<Tenant>> supplyTenant(Supplier<Access> access) {
+   Supplier<Optional<String>> supplyTenant(Supplier<AuthInfo> access) {
       return Suppliers.compose(GetTenant.INSTANCE, access);
    }
 
-   private static enum GetTenant implements Function<Access, Optional<Tenant>> 
{
+   private static enum GetTenant implements Function<AuthInfo, 
Optional<String>> {
       INSTANCE;
-      public Optional<Tenant> apply(Access in){
-         return in.getToken().getTenant();
+      public Optional<String> apply(AuthInfo in){
+         if (in instanceof Access) {
+            return Access.class.cast(in).getToken().getTenant().transform(new 
Function<Tenant, String>() {
+               @Override
+               public String apply(Tenant input) {
+                  return input.getId();
+               }
+            });
+         } else if (in instanceof Token) {
+            // FIXME: What if user authenticated scoped to another project?
+            return Optional.of(Token.class.cast(in).user().defaultProjectId());
+         }
+         return Optional.absent();
       }
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
index eb5d3eb..e295581 100644
--- 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
+++ 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/GroupApi.java
@@ -32,7 +32,7 @@ import javax.ws.rs.core.MediaType;
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.rackspace.autoscale.v1.binders.BindCreateGroupToJson;
 import 
org.jclouds.rackspace.autoscale.v1.binders.BindLaunchConfigurationToJson;
 import 
org.jclouds.rackspace.autoscale.v1.binders.BindToGroupConfigurationRequestPayload;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
index 92e428c..dbdd232 100644
--- 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
+++ 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/PolicyApi.java
@@ -34,7 +34,7 @@ import 
org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.rackspace.autoscale.v1.binders.BindScalingPoliciesToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindScalingPolicyToJson;
 import org.jclouds.rackspace.autoscale.v1.domain.CreateScalingPolicy;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
index f37cec9..2f586c0 100644
--- 
a/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
+++ 
b/rackspace-autoscale/src/main/java/org/jclouds/rackspace/autoscale/v1/features/WebhookApi.java
@@ -34,7 +34,7 @@ import 
org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404;
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.rackspace.autoscale.v1.binders.BindWebhookToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindWebhookUpdateToJson;
 import org.jclouds.rackspace.autoscale.v1.binders.BindWebhooksToJson;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiLiveTest.java
 
b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiLiveTest.java
index 4809d91..85cfe3d 100644
--- 
a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiLiveTest.java
+++ 
b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiLiveTest.java
@@ -19,7 +19,7 @@ package org.jclouds.rackspace.autoscale.v1.internal;
 import java.util.Properties;
 
 import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
+import org.jclouds.openstack.keystone.config.KeystoneProperties;
 import org.jclouds.rackspace.autoscale.v1.AutoscaleApi;
 
 /**

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiMockTest.java
 
b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiMockTest.java
index 50377d1..618f611 100644
--- 
a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiMockTest.java
+++ 
b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleApiMockTest.java
@@ -16,15 +16,15 @@
  */
 package org.jclouds.rackspace.autoscale.v1.internal;
 
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+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 org.jclouds.openstack.keystone.v2_0.config.CredentialTypes;
 import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
 import org.jclouds.rackspace.autoscale.v1.AutoscaleApi;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
+import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
 
 /**
  * Base class for writing Autoscale Expect tests
@@ -33,7 +33,7 @@ public class BaseAutoscaleApiMockTest extends 
BaseOpenStackMockTest<AutoscaleApi
    protected Properties overrides;
    public BaseAutoscaleApiMockTest() {
       overrides = new Properties();
-      overrides.setProperty(CREDENTIAL_TYPE, 
CredentialTypes.PASSWORD_CREDENTIALS);
+      overrides.setProperty(CREDENTIAL_TYPE, 
CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
       overrides.setProperty(SERVICE_TYPE, ServiceType.AUTO_SCALE);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleExpectTest.java
----------------------------------------------------------------------
diff --git 
a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleExpectTest.java
 
b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleExpectTest.java
index dec2136..c95fc4f 100644
--- 
a/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleExpectTest.java
+++ 
b/rackspace-autoscale/src/test/java/org/jclouds/rackspace/autoscale/v1/internal/BaseAutoscaleExpectTest.java
@@ -17,6 +17,7 @@
 package org.jclouds.rackspace.autoscale.v1.internal;
 
 import javax.ws.rs.core.MediaType;
+
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.keystone.v2_0.internal.KeystoneFixture;

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-cdn-uk/src/main/java/org/jclouds/rackspace/cdn/uk/CDNUKProviderMetadata.java
----------------------------------------------------------------------
diff --git 
a/rackspace-cdn-uk/src/main/java/org/jclouds/rackspace/cdn/uk/CDNUKProviderMetadata.java
 
b/rackspace-cdn-uk/src/main/java/org/jclouds/rackspace/cdn/uk/CDNUKProviderMetadata.java
index e9563e1..d7f3583 100644
--- 
a/rackspace-cdn-uk/src/main/java/org/jclouds/rackspace/cdn/uk/CDNUKProviderMetadata.java
+++ 
b/rackspace-cdn-uk/src/main/java/org/jclouds/rackspace/cdn/uk/CDNUKProviderMetadata.java
@@ -19,19 +19,20 @@ package org.jclouds.rackspace.cdn.uk;
 import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES;
 import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION;
 import static 
org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ProviderModule;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.ProviderModule;
 import org.jclouds.openstack.poppy.v1.PoppyApiMetadata;
 import org.jclouds.openstack.poppy.v1.config.PoppyHttpApiModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.internal.BaseProviderMetadata;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
-import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
 
@@ -67,6 +68,7 @@ public class CDNUKProviderMetadata extends 
BaseProviderMetadata {
       Properties properties = new Properties();
       properties.setProperty(CREDENTIAL_TYPE, 
CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
       properties.setProperty(SERVICE_TYPE, ServiceType.CDN);
+      properties.setProperty(KEYSTONE_VERSION, "2");
 
       properties.setProperty(PROPERTY_REGIONS, "LON");
       properties.setProperty(PROPERTY_REGION + ".LON." + ISO3166_CODES, 
"GB-SLG");
@@ -87,8 +89,8 @@ public class CDNUKProviderMetadata extends 
BaseProviderMetadata {
                .endpointName("Rackspace Cloud Identity service URL ending in 
/v2.0/")
                .version("1")
                .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                     .add(CloudIdentityAuthenticationApiModule.class)
                      .add(CloudIdentityAuthenticationModule.class)
+                     .add(ServiceCatalogModule.class)
                      .add(ProviderModule.class)
                      .add(PoppyHttpApiModule.class)
                      .build())

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/d3afa6ee/rackspace-cdn-us/src/main/java/org/jclouds/rackspace/cdn/us/CDNUSProviderMetadata.java
----------------------------------------------------------------------
diff --git 
a/rackspace-cdn-us/src/main/java/org/jclouds/rackspace/cdn/us/CDNUSProviderMetadata.java
 
b/rackspace-cdn-us/src/main/java/org/jclouds/rackspace/cdn/us/CDNUSProviderMetadata.java
index 6b50c3a..4215c62 100644
--- 
a/rackspace-cdn-us/src/main/java/org/jclouds/rackspace/cdn/us/CDNUSProviderMetadata.java
+++ 
b/rackspace-cdn-us/src/main/java/org/jclouds/rackspace/cdn/us/CDNUSProviderMetadata.java
@@ -19,19 +19,20 @@ package org.jclouds.rackspace.cdn.us;
 import static org.jclouds.location.reference.LocationConstants.ISO3166_CODES;
 import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGION;
 import static 
org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE;
-import static 
org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERVICE_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.CREDENTIAL_TYPE;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.KEYSTONE_VERSION;
+import static 
org.jclouds.openstack.keystone.config.KeystoneProperties.SERVICE_TYPE;
 
 import java.net.URI;
 import java.util.Properties;
 
-import 
org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ProviderModule;
+import org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule;
+import 
org.jclouds.openstack.keystone.catalog.config.ServiceCatalogModule.ProviderModule;
 import org.jclouds.openstack.poppy.v1.PoppyApiMetadata;
 import org.jclouds.openstack.poppy.v1.config.PoppyHttpApiModule;
 import org.jclouds.providers.ProviderMetadata;
 import org.jclouds.providers.internal.BaseProviderMetadata;
 import org.jclouds.rackspace.cloudidentity.v2_0.ServiceType;
-import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationModule;
 import 
org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityCredentialTypes;
 
@@ -67,6 +68,7 @@ public class CDNUSProviderMetadata extends 
BaseProviderMetadata {
       Properties properties = new Properties();
       properties.setProperty(CREDENTIAL_TYPE, 
CloudIdentityCredentialTypes.API_KEY_CREDENTIALS);
       properties.setProperty(SERVICE_TYPE, ServiceType.CDN);
+      properties.setProperty(KEYSTONE_VERSION, "2");
 
       properties.setProperty(PROPERTY_REGIONS, "ORD,DFW,IAD,SYD,HKG");
       properties.setProperty(PROPERTY_REGION + ".ORD." + ISO3166_CODES, 
"US-IL");
@@ -91,8 +93,8 @@ public class CDNUSProviderMetadata extends 
BaseProviderMetadata {
                .endpointName("Rackspace Cloud Identity service URL ending in 
/v2.0/")
                .version("1")
                .defaultModules(ImmutableSet.<Class<? extends Module>>builder()
-                     .add(CloudIdentityAuthenticationApiModule.class)
                      .add(CloudIdentityAuthenticationModule.class)
+                     .add(ServiceCatalogModule.class)
                      .add(ProviderModule.class)
                      .add(PoppyHttpApiModule.class)
                      .build())

Reply via email to