You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by za...@apache.org on 2014/11/15 12:58:55 UTC

[2/2] jclouds-labs-openstack git commit: Adds rackspace cloudnetworks-us provider

Adds rackspace cloudnetworks-us provider


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/3faafe06
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/tree/3faafe06
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/diff/3faafe06

Branch: refs/heads/master
Commit: 3faafe06e91bf6512bc97de0ab420016a6b9ac47
Parents: df6a645
Author: Zack Shoylev <za...@rackspace.com>
Authored: Wed Oct 22 11:57:43 2014 -0500
Committer: Zack Shoylev <za...@rackspace.com>
Committed: Sat Nov 15 05:55:32 2014 -0600

----------------------------------------------------------------------
 .../openstack/neutron/v2/NeutronApi.java        |  29 +++--
 .../functions/VersionAwareRegionToEndpoint.java |  67 ++++++++++
 .../v2/extensions/FloatingIPApiMockTest.java    |  50 ++++----
 .../v2/extensions/RouterApiMockTest.java        |  78 +++++------
 .../v2/extensions/SecurityGroupApiMockTest.java |  76 +++++------
 .../extensions/lbaas/v1/LBaaSApiMockTest.java   | 102 +++++++--------
 .../v2/features/ExtensionApiMockTest.java       |   8 +-
 .../neutron/v2/features/NetworkApiMockTest.java |  26 ++--
 .../neutron/v2/features/PortApiMockTest.java    |  57 +++++----
 .../neutron/v2/features/SubnetApiMockTest.java  |  53 ++++----
 .../v2/internal/BaseNeutronApiMockTest.java     |   5 +-
 pom.xml                                         |   1 +
 rackspace-cloudnetworks-us/README.md            |   4 +
 rackspace-cloudnetworks-us/pom.xml              | 128 +++++++++++++++++++
 .../us/CloudNetworksUSProviderMetadata.java     | 121 ++++++++++++++++++
 .../us/CloudNetworksUSNetworkApiLiveTest.java   |  76 +++++++++++
 .../us/CloudNetworksUSPortApiLiveTest.java      |  85 ++++++++++++
 .../us/CloudNetworksUSProviderTest.java         |  28 ++++
 .../us/CloudNetworksUSSubnetApiLiveTest.java    |  89 +++++++++++++
 .../src/test/resources/logback.xml              |  69 ++++++++++
 20 files changed, 916 insertions(+), 236 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApi.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApi.java b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApi.java
index 983fe94..4dca71b 100644
--- a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApi.java
+++ b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/NeutronApi.java
@@ -21,9 +21,7 @@ import java.util.Set;
 
 import javax.ws.rs.Path;
 
-import org.jclouds.Constants;
 import org.jclouds.location.Region;
-import org.jclouds.location.functions.RegionToEndpoint;
 import org.jclouds.openstack.neutron.v2.extensions.FloatingIPApi;
 import org.jclouds.openstack.neutron.v2.extensions.RouterApi;
 import org.jclouds.openstack.neutron.v2.extensions.SecurityGroupApi;
@@ -31,6 +29,7 @@ import org.jclouds.openstack.neutron.v2.extensions.lbaas.v1.LBaaSApi;
 import org.jclouds.openstack.neutron.v2.features.NetworkApi;
 import org.jclouds.openstack.neutron.v2.features.PortApi;
 import org.jclouds.openstack.neutron.v2.features.SubnetApi;
+import org.jclouds.openstack.neutron.v2.functions.VersionAwareRegionToEndpoint;
 import org.jclouds.openstack.v2_0.features.ExtensionApi;
 import org.jclouds.rest.annotations.Delegate;
 import org.jclouds.rest.annotations.EndpointParam;
@@ -40,8 +39,16 @@ import com.google.inject.Provides;
 
 /**
  * Provides access to the OpenStack Networking (Neutron) v2 API.
+ *
+ * The service-side API will always have a v2.0 in the path.
+ * However, the endpoint will sometimes contain a v2.0 and sometimes it will not.
+ * The @Path annotation here ensures the path is always added. The VersionAwareRegionToEndpoint ensures that the
+ * endpoint will always look the same.
+ *
+ * Cannot leave labs until fixed:
+ * TODO: https://issues.apache.org/jira/browse/JCLOUDS-773
  */
-@Path("{" + Constants.PROPERTY_API_VERSION + "}")
+@Path("v2.0")
 public interface NeutronApi extends Closeable {
    /**
     * @return the Region codes configured
@@ -54,25 +61,25 @@ public interface NeutronApi extends Closeable {
     * Provides access to Extension features.
     */
    @Delegate
-   ExtensionApi getExtensionApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   ExtensionApi getExtensionApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 
    /**
     * Provides access to Network features.
     */
    @Delegate
-   NetworkApi getNetworkApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   NetworkApi getNetworkApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 
    /**
     * Provides access to Subnet features.
     */
    @Delegate
-   SubnetApi getSubnetApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   SubnetApi getSubnetApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 
    /**
     * Provides access to Port features.
     */
    @Delegate
-   PortApi getPortApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   PortApi getPortApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 
    /**
     * Provides access to Router features.
@@ -82,7 +89,7 @@ public interface NeutronApi extends Closeable {
     * to determine if it is present.
     */
    @Delegate
-   Optional<RouterApi> getRouterApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   Optional<RouterApi> getRouterApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 
    /**
     * Provides access to Floating IP features.
@@ -92,7 +99,7 @@ public interface NeutronApi extends Closeable {
     * to determine if it is present.
     */
    @Delegate
-   Optional<FloatingIPApi> getFloatingIPApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   Optional<FloatingIPApi> getFloatingIPApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 
    /**
     * Provides access to SecurityGroup features.
@@ -102,7 +109,7 @@ public interface NeutronApi extends Closeable {
     * to determine if it is present.
     */
    @Delegate
-   Optional<SecurityGroupApi> getSecurityGroupApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   Optional<SecurityGroupApi> getSecurityGroupApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 
    /**
     * Provides access to LBaaS features.
@@ -112,5 +119,5 @@ public interface NeutronApi extends Closeable {
     * to determine if it is present.
     */
    @Delegate
-   Optional<LBaaSApi> getLBaaSApi(@EndpointParam(parser = RegionToEndpoint.class) String region);
+   Optional<LBaaSApi> getLBaaSApi(@EndpointParam(parser = VersionAwareRegionToEndpoint.class) String region);
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/functions/VersionAwareRegionToEndpoint.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/functions/VersionAwareRegionToEndpoint.java b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/functions/VersionAwareRegionToEndpoint.java
new file mode 100644
index 0000000..36c93b9
--- /dev/null
+++ b/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/functions/VersionAwareRegionToEndpoint.java
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+package org.jclouds.openstack.neutron.v2.functions;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+
+import java.net.URI;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.jclouds.location.Region;
+
+import com.google.common.base.Function;
+import com.google.common.base.Supplier;
+
+public class VersionAwareRegionToEndpoint implements Function<Object, URI> {
+
+   private final Supplier<Map<String, Supplier<URI>>> regionToEndpointSupplier;
+
+   @Inject
+   public VersionAwareRegionToEndpoint(@Region Supplier<Map<String, Supplier<URI>>> regionToEndpointSupplier) {
+      this.regionToEndpointSupplier = checkNotNull(regionToEndpointSupplier, "regionToEndpointSupplier");
+   }
+
+   /**
+    * A quick fix to ensure Neutron works with endpoint definitions that are not version-agnostic.
+    * The service-side API will always have a v2.0 in the path.
+    * However, the endpoint will sometimes contain a v2.0 and sometimes it will not.
+    * The VersionAwareRegionToEndpoint ensures that the endpoint will always look the same
+    * before /v2.0 is added to it.
+    *
+    * Cannot leave labs until fixed:
+    * TODO: https://issues.apache.org/jira/browse/JCLOUDS-773
+    * This code will be unnecessary once this is supported.
+    */
+   @Override
+   public URI apply(Object from) {
+      Map<String, Supplier<URI>> regionToEndpoint = regionToEndpointSupplier.get();
+      checkState(!regionToEndpoint.isEmpty(), "no region name to endpoint mappings configured!");
+      checkArgument(regionToEndpoint.containsKey(from),
+               "requested location %s, which is not in the configured locations: %s", from, regionToEndpoint);
+      String uri = regionToEndpoint.get(from).get().toString();
+
+      if (uri.endsWith("/v2.0")) {
+         return URI.create(uri.substring(0, uri.length() - 5));
+      }
+
+      return regionToEndpoint.get(from).get();
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApiMockTest.java
index 576d6d3..279dca9 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/FloatingIPApiMockTest.java
@@ -66,8 +66,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "POST", "/v2.0/floatingips", "/floatingip_create_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/floatingips", "/floatingip_create_request.json");
 
          /*
           * Check response
@@ -125,8 +125,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/floatingips?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/floatingips?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -157,8 +157,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/floatingips?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/floatingips?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -189,9 +189,9 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/floatingips");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/floatingips?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/floatingips");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/floatingips?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -223,8 +223,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/floatingips");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/floatingips");
 
          /*
           * Check response
@@ -254,8 +254,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/floatingips/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/floatingips/12345");
 
          /*
           * Check response
@@ -292,8 +292,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/floatingips/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/floatingips/12345");
 
          /*
           * Check response
@@ -327,8 +327,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/floatingips/12345", "/floatingip_update_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/floatingips/12345", "/floatingip_update_request.json");
 
          /*
           * Check response
@@ -361,8 +361,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/floatingips/12345", "/floatingip_update_dissociate_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/floatingips/12345", "/floatingip_update_dissociate_request.json");
 
          /*
           * Check response
@@ -397,8 +397,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/floatingips/12345", "/floatingip_update_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/floatingips/12345", "/floatingip_update_request.json");
 
          /*
           * Check response
@@ -427,8 +427,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/floatingips/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/floatingips/12345");
 
          /*
           * Check response
@@ -457,8 +457,8 @@ public class FloatingIPApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/floatingips/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/floatingips/12345");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/RouterApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/RouterApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/RouterApiMockTest.java
index dab3b78..902518e 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/RouterApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/RouterApiMockTest.java
@@ -73,8 +73,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "POST", "/v2.0/routers", "/router_create_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/routers", "/router_create_request.json");
 
          /*
           * Check response
@@ -133,8 +133,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/routers?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/routers?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -164,8 +164,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/routers?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/routers?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -196,9 +196,9 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/routers");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/routers?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/routers");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/routers?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -230,8 +230,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/routers");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/routers");
 
          /*
           * Check response
@@ -261,8 +261,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/routers/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/routers/12345");
 
          /*
           * Check response
@@ -297,8 +297,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/routers/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/routers/12345");
 
          /*
           * Check response
@@ -332,8 +332,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345", "/router_update_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345", "/router_update_request.json");
 
          /*
           * Check response
@@ -373,8 +373,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345", "/router_update_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345", "/router_update_request.json");
 
          /*
           * Check response
@@ -403,8 +403,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/routers/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/routers/12345");
 
          /*
           * Check response
@@ -433,8 +433,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/routers/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/routers/12345");
 
          /*
           * Check response
@@ -462,8 +462,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/add_router_interface", "/router_add_interface_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/add_router_interface", "/router_add_interface_request.json");
 
          /*
           * Check response
@@ -494,8 +494,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/add_router_interface", "/router_add_interface_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/add_router_interface", "/router_add_interface_request.json");
 
          /*
           * Check response
@@ -524,8 +524,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/add_router_interface", "/router_add_interface_port_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/add_router_interface", "/router_add_interface_port_request.json");
 
          /*
           * Check response
@@ -556,8 +556,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/add_router_interface", "/router_add_interface_port_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/add_router_interface", "/router_add_interface_port_request.json");
 
          /*
           * Check response
@@ -586,8 +586,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/remove_router_interface", "/router_remove_interface_subnet_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/remove_router_interface", "/router_remove_interface_subnet_request.json");
 
          /*
           * Check response
@@ -616,8 +616,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/remove_router_interface", "/router_remove_interface_subnet_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/remove_router_interface", "/router_remove_interface_subnet_request.json");
 
          /*
           * Check response
@@ -646,8 +646,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/remove_router_interface", "/router_remove_interface_port_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/remove_router_interface", "/router_remove_interface_port_request.json");
 
          /*
           * Check response
@@ -676,8 +676,8 @@ public class RouterApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/routers/12345/remove_router_interface", "/router_remove_interface_port_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/routers/12345/remove_router_interface", "/router_remove_interface_port_request.json");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/SecurityGroupApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/SecurityGroupApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/SecurityGroupApiMockTest.java
index e766b6d..6494a05 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/SecurityGroupApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/SecurityGroupApiMockTest.java
@@ -71,8 +71,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "POST", "/v2.0/security-groups", "/security_group_create_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/security-groups", "/security_group_create_request.json");
 
          /*
           * Check response
@@ -142,8 +142,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "POST", "/v2.0/security-group-rules", "/security_group_rule_create_request.json");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/security-group-rules", "/security_group_rule_create_request.json");
 
          /*
           * Check response
@@ -208,8 +208,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-groups?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-groups?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -241,8 +241,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-groups?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-groups?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -271,8 +271,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-group-rules?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-group-rules?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -304,8 +304,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-group-rules?limit=2&marker=abcdefg");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-group-rules?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -336,9 +336,9 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-groups");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-groups?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-groups");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-groups?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -372,8 +372,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-groups");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-groups");
 
          /*
           * Check response
@@ -405,9 +405,9 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-group-rules");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-group-rules?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-group-rules");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-group-rules?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -441,8 +441,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-group-rules");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-group-rules");
 
          /*
           * Check response
@@ -473,8 +473,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-groups/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-groups/12345");
 
          /*
           * Check response
@@ -509,8 +509,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-groups/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-groups/12345");
 
          /*
           * Check response
@@ -540,8 +540,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-group-rules/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-group-rules/12345");
 
          /*
           * Check response
@@ -576,8 +576,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/security-group-rules/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/security-group-rules/12345");
 
          /*
           * Check response
@@ -607,8 +607,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/security-groups/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/security-groups/12345");
 
          /*
           * Check response
@@ -637,8 +637,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/security-groups/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/security-groups/12345");
 
          /*
           * Check response
@@ -667,8 +667,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/security-group-rules/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/security-group-rules/12345");
 
          /*
           * Check response
@@ -697,8 +697,8 @@ public class SecurityGroupApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/security-group-rules/12345");
+         assertExtensions(server, uriApiVersion + "");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/security-group-rules/12345");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApiMockTest.java
index 31a7ecf..f83dcf9 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/extensions/lbaas/v1/LBaaSApiMockTest.java
@@ -115,7 +115,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "POST", "/v2.0/lb/pools", "/lbaas/v1/pool_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/lb/pools", "/lbaas/v1/pool_create_request.json");
 
          /*
           * Check response
@@ -184,7 +184,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/pools?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/pools?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -214,7 +214,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/pools?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/pools?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -246,8 +246,8 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/pools");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/pools?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/pools");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/pools?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -280,7 +280,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/pools");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/pools");
 
          /*
           * Check response
@@ -309,7 +309,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
 
          /*
           * Check response
@@ -355,7 +355,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
 
          /*
           * Check response
@@ -386,7 +386,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab", "/lbaas/v1/pool_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab", "/lbaas/v1/pool_update_request.json");
 
          /*
           * Check response
@@ -437,7 +437,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab", "/lbaas/v1/pool_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab", "/lbaas/v1/pool_update_request.json");
 
          /*
           * Check response
@@ -465,7 +465,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
 
          /*
           * Check response
@@ -493,7 +493,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab");
 
          /*
           * Check response
@@ -524,7 +524,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "POST", "/v2.0/lb/members", "/lbaas/v1/member_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/lb/members", "/lbaas/v1/member_create_request.json");
 
          /*
           * Check response
@@ -584,7 +584,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/members?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/members?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -614,7 +614,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/members?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/members?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -646,8 +646,8 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/members");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/members?marker=396f12f8-521e-4b91-8e21-2e003500433a");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/members");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/members?marker=396f12f8-521e-4b91-8e21-2e003500433a");
 
          /*
           * Check response
@@ -680,7 +680,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/members");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/members");
 
          /*
           * Check response
@@ -709,7 +709,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
 
          /*
           * Check response
@@ -746,7 +746,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
 
          /*
           * Check response
@@ -777,7 +777,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f", "/lbaas/v1/member_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f", "/lbaas/v1/member_update_request.json");
 
          /*
           * Check response
@@ -817,7 +817,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f", "/lbaas/v1/member_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f", "/lbaas/v1/member_update_request.json");
 
          /*
           * Check response
@@ -845,7 +845,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
 
          /*
           * Check response
@@ -873,7 +873,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/members/48a471ea-64f1-4eb6-9be7-dae6bbe40a0f");
 
          /*
           * Check response
@@ -904,7 +904,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "POST", "/v2.0/lb/vips", "/lbaas/v1/vip_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/lb/vips", "/lbaas/v1/vip_create_request.json");
 
          /*
           * Check response
@@ -970,7 +970,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/vips?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/vips?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -1000,7 +1000,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/vips?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/vips?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -1032,8 +1032,8 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/vips");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/vips?marker=396f12f8-521e-4b91-8e21-2e003500433a");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/vips");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/vips?marker=396f12f8-521e-4b91-8e21-2e003500433a");
 
          /*
           * Check response
@@ -1066,7 +1066,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/vips");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/vips");
 
          /*
           * Check response
@@ -1095,7 +1095,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/vips/4ec89087-d057-4e2c-911f-60a3b47ee304");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/vips/4ec89087-d057-4e2c-911f-60a3b47ee304");
 
          /*
           * Check response
@@ -1139,7 +1139,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/vips/4ec89087-d057-4e2c-911f-60a3b47ee304");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/vips/4ec89087-d057-4e2c-911f-60a3b47ee304");
 
          /*
           * Check response
@@ -1171,7 +1171,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2", "/lbaas/v1/vip_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2", "/lbaas/v1/vip_update_request.json");
 
          /*
           * Check response
@@ -1218,7 +1218,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2", "/lbaas/v1/vip_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2", "/lbaas/v1/vip_update_request.json");
 
          /*
           * Check response
@@ -1246,7 +1246,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2");
 
          /*
           * Check response
@@ -1274,7 +1274,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/vips/c987d2be-9a3c-4ac9-a046-e8716b1350e2");
 
          /*
           * Check response
@@ -1305,7 +1305,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "POST", "/v2.0/lb/health_monitors", "/lbaas/v1/health_monitor_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/lb/health_monitors", "/lbaas/v1/health_monitor_create_request.json");
 
          /*
           * Check response
@@ -1370,7 +1370,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/health_monitors?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/health_monitors?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -1400,7 +1400,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/health_monitors?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/health_monitors?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -1432,8 +1432,8 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 4);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/health_monitors");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/health_monitors?marker=396f12f8-521e-4b91-8e21-2e003500433a");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/health_monitors");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/health_monitors?marker=396f12f8-521e-4b91-8e21-2e003500433a");
 
          /*
           * Check response
@@ -1466,7 +1466,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/health_monitors");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/health_monitors");
 
          /*
           * Check response
@@ -1495,7 +1495,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
 
          /*
           * Check response
@@ -1537,7 +1537,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "GET", "/v2.0/lb/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/lb/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
 
          /*
           * Check response
@@ -1568,7 +1568,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d", "/lbaas/v1/health_monitor_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d", "/lbaas/v1/health_monitor_update_request.json");
 
          /*
           * Check response
@@ -1613,7 +1613,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d", "/lbaas/v1/health_monitor_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d", "/lbaas/v1/health_monitor_update_request.json");
 
          /*
           * Check response
@@ -1641,7 +1641,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d");
 
          /*
           * Check response
@@ -1669,7 +1669,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/health_monitors/466c8345-28d8-4f84-a246-e04380b0461d");
 
          /*
           * Check response
@@ -1697,7 +1697,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "POST", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab/health_monitors", "/lbaas/v1/pool_associate_health_monitor_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab/health_monitors", "/lbaas/v1/pool_associate_health_monitor_request.json");
 
          /*
           * Check response
@@ -1745,7 +1745,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
 
          /*
           * Check response
@@ -1773,7 +1773,7 @@ public class LBaaSApiMockTest extends BaseNeutronApiMockTest {
           */
          assertAuthentication(server);
          server.takeRequest();
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/lb/pools/72741b06-df4d-4715-b142-276b6bce75ab/health_monitors/5d4b5228-33b0-4e60-b225-9b727c1a20e7");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/ExtensionApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/ExtensionApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/ExtensionApiMockTest.java
index b9615d6..38d36fb 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/ExtensionApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/ExtensionApiMockTest.java
@@ -55,7 +55,7 @@ public class ExtensionApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertExtensions(server, "/v2.0");
+         assertExtensions(server, uriApiVersion + "");
 
          /*
           * Check response
@@ -83,7 +83,7 @@ public class ExtensionApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/extensions");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/extensions");
 
          /*
           * Check response
@@ -110,7 +110,7 @@ public class ExtensionApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/extensions/router");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/extensions/router");
 
          /*
           * Check response
@@ -137,7 +137,7 @@ public class ExtensionApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/extensions/router");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/extensions/router");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/NetworkApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/NetworkApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/NetworkApiMockTest.java
index 641e276..5de307e 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/NetworkApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/NetworkApiMockTest.java
@@ -66,7 +66,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "POST", "/v2.0/networks", "/network_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/networks", "/network_create_request.json");
 
          /*
           * Check response
@@ -117,7 +117,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/networks?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -145,7 +145,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/networks?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -177,8 +177,8 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/networks");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/networks?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -209,7 +209,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/networks");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks");
 
          /*
           * Check response
@@ -236,7 +236,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/networks/12345");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks/12345");
 
          /*
           * Check response
@@ -265,7 +265,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/networks/12345");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/networks/12345");
 
          /*
           * Check response
@@ -299,7 +299,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "POST", "/v2.0/networks", "/network_bulk_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/networks", "/network_bulk_create_request.json");
 
          /*
           * Check response
@@ -366,7 +366,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/networks/123456", "/network_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/networks/123456", "/network_update_request.json");
 
          /*
           * Check response
@@ -399,7 +399,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/networks/123456");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/networks/123456");
 
          /*
           * Check response
@@ -425,7 +425,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/networks/123456");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/networks/123456");
 
          /*
           * Check response
@@ -451,7 +451,7 @@ public class NetworkApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/networks/123456");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/networks/123456");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/PortApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/PortApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/PortApiMockTest.java
index 8f7ebc8..8b4797d 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/PortApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/PortApiMockTest.java
@@ -16,11 +16,17 @@
  */
 package org.jclouds.openstack.neutron.v2.features;
 
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.Map;
+
 import org.jclouds.openstack.neutron.v2.NeutronApi;
 import org.jclouds.openstack.neutron.v2.domain.AddressPair;
 import org.jclouds.openstack.neutron.v2.domain.NetworkStatus;
@@ -33,16 +39,11 @@ import org.jclouds.openstack.v2_0.options.PaginationOptions;
 import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.List;
-import java.util.Map;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.squareup.okhttp.mockwebserver.MockResponse;
+import com.squareup.okhttp.mockwebserver.MockWebServer;
 
 /**
  * Tests NetworkApi Guice wiring and parsing
@@ -74,7 +75,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "POST", "/v2.0/ports", "/port_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/ports", "/port_create_request.json");
 
          /*
           * Check response
@@ -136,7 +137,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/ports?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/ports?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -164,7 +165,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/ports?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/ports?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -193,8 +194,8 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/ports");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/ports?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/ports");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/ports?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -225,7 +226,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/ports");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/ports");
 
          /*
           * Check response
@@ -266,7 +267,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "POST", "/v2.0/ports", "/port_create_bulk_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/ports", "/port_create_bulk_request.json");
 
          /*
           * Check response
@@ -327,7 +328,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/ports/12345");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/ports/12345");
 
          /*
           * Check response
@@ -363,7 +364,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/ports/12345");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/ports/12345");
 
          /*
           * Check response
@@ -395,7 +396,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/ports/12345", "/port_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/ports/12345", "/port_update_request.json");
 
          /*
           * Check response
@@ -427,7 +428,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/ports/12345", "/port_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/ports/12345", "/port_update_request.json");
 
          /*
           * Check response
@@ -453,7 +454,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/ports/12345");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/ports/12345");
 
          /*
           * Check response
@@ -479,7 +480,7 @@ public class PortApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/ports/12345");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/ports/12345");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SubnetApiMockTest.java
----------------------------------------------------------------------
diff --git a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SubnetApiMockTest.java b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SubnetApiMockTest.java
index 3571b0c..bfe3d12 100644
--- a/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SubnetApiMockTest.java
+++ b/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/SubnetApiMockTest.java
@@ -16,10 +16,16 @@
  */
 package org.jclouds.openstack.neutron.v2.features;
 
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.List;
+
 import org.jclouds.openstack.neutron.v2.NeutronApi;
 import org.jclouds.openstack.neutron.v2.domain.IPv6DHCPMode;
 import org.jclouds.openstack.neutron.v2.domain.Subnet;
@@ -29,15 +35,10 @@ import org.jclouds.openstack.v2_0.options.PaginationOptions;
 import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.List;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableList;
+import com.squareup.okhttp.mockwebserver.MockResponse;
+import com.squareup.okhttp.mockwebserver.MockWebServer;
 
 /**
  * Tests NetworkApi Guice wiring and parsing
@@ -66,7 +67,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "POST", "/v2.0/subnets", "/subnet_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/subnets", "/subnet_create_request.json");
 
          /*
           * Check response
@@ -118,7 +119,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/subnets?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/subnets?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -145,7 +146,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/subnets?limit=2&marker=abcdefg");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/subnets?limit=2&marker=abcdefg");
 
          /*
           * Check response
@@ -174,8 +175,8 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 3);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/subnets");
-         assertRequest(server.takeRequest(), "GET", "/v2.0/subnets?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/subnets");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/subnets?marker=71c1e68c-171a-4aa2-aca5-50ea153a3718");
 
          /*
           * Check response
@@ -206,7 +207,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/subnets");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/subnets");
 
          /*
           * Check response
@@ -233,7 +234,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/subnets/12345");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/subnets/12345");
 
          /*
           * Check response
@@ -264,7 +265,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", "/v2.0/subnets/12345");
+         assertRequest(server.takeRequest(), "GET", uriApiVersion + "/subnets/12345");
 
          /*
           * Check response
@@ -300,7 +301,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           * Check request
           */
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "POST", "/v2.0/subnets", "/subnet_bulk_create_request.json");
+         assertRequest(server.takeRequest(), "POST", uriApiVersion + "/subnets", "/subnet_bulk_create_request.json");
 
          /*
           * Check response
@@ -370,7 +371,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/subnets/12345", "/subnet_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/subnets/12345", "/subnet_update_request.json");
 
          /*
           * Check response
@@ -405,7 +406,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", "/v2.0/subnets/12345", "/subnet_update_request.json");
+         assertRequest(server.takeRequest(), "PUT", uriApiVersion + "/subnets/12345", "/subnet_update_request.json");
 
          /*
           * Check response
@@ -432,7 +433,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/subnets/12345");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/subnets/12345");
 
          /*
           * Check response
@@ -459,7 +460,7 @@ public class SubnetApiMockTest extends BaseNeutronApiMockTest {
           */
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
-         assertRequest(server.takeRequest(), "DELETE", "/v2.0/subnets/12345");
+         assertRequest(server.takeRequest(), "DELETE", uriApiVersion + "/subnets/12345");
 
          /*
           * Check response

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/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 fd4a50e..d180e55 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
@@ -17,6 +17,7 @@
 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 java.util.Properties;
 
@@ -30,12 +31,14 @@ import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
  */
 public class BaseNeutronApiMockTest extends BaseOpenStackMockTest<NeutronApi> {
    protected Properties overrides;
+   protected String uriApiVersion = "/v2.0";
+
    /**
     * Base Mock Test
     */
    public BaseNeutronApiMockTest() {
       overrides = new Properties();
-      //overrides.setProperty(SERVICE_TYPE, "neutron");
+      overrides.setProperty(SERVICE_TYPE, "network");
       overrides.setProperty(CREDENTIAL_TYPE, CredentialTypes.PASSWORD_CREDENTIALS);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c3f24a2..a0a2cc3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,6 +68,7 @@
     <module>rackspace-cloudfiles</module>
     <module>rackspace-cloudfiles-uk</module>
     <module>rackspace-cloudfiles-us</module>
+    <module>rackspace-cloudnetworks-us</module>
   </modules>
 
   <profiles>

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3faafe06/rackspace-cloudnetworks-us/README.md
----------------------------------------------------------------------
diff --git a/rackspace-cloudnetworks-us/README.md b/rackspace-cloudnetworks-us/README.md
new file mode 100644
index 0000000..4a83307
--- /dev/null
+++ b/rackspace-cloudnetworks-us/README.md
@@ -0,0 +1,4 @@
+Rackspace Networks US
+========================
+
+Beta