diff --git a/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/features/ImageApiExpectTest.java b/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/features/ImageApiExpectTest.java
index 7236aff..9b4e053 100644
--- a/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/features/ImageApiExpectTest.java
+++ b/openstack-glance/src/test/java/org/jclouds/openstack/glance/v1_0/features/ImageApiExpectTest.java
@@ -51,7 +51,7 @@
 
    public void testListWhenResponseIs2xx() throws Exception {
       HttpRequest list = HttpRequest.builder().method("GET")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images")
+            .endpoint("https://glance.jclouds.org:9292/images")
             .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken).build();
 
@@ -70,7 +70,7 @@
 
    public void testListWhenReponseIs404IsEmpty() throws Exception {
       HttpRequest list = HttpRequest.builder().method("GET")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images")
+            .endpoint("https://glance.jclouds.org:9292/images")
             .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken).build();
 
@@ -84,7 +84,7 @@
 
    public void testListInDetailWhenResponseIs2xx() throws Exception {
       HttpRequest listInDetail = HttpRequest.builder().method("GET")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/detail")
+            .endpoint("https://glance.jclouds.org:9292/images/detail")
             .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken).build();
 
@@ -103,7 +103,7 @@
 
    public void testListInDetailWhenReponseIs404IsEmpty() throws Exception {
       HttpRequest listInDetail = HttpRequest.builder().method("GET")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/detail")
+            .endpoint("https://glance.jclouds.org:9292/images/detail")
             .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken).build();
 
@@ -120,7 +120,7 @@
       HttpRequest show = HttpRequest
             .builder()
             .method("HEAD")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .addHeader("X-Auth-Token", authToken).build();
 
 
@@ -137,7 +137,7 @@
 
    public void testShowWhenReponseIs404IsNull() throws Exception {
       HttpRequest show = HttpRequest.builder().method("HEAD")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .addHeader("X-Auth-Token", authToken).build();
 
 
@@ -152,7 +152,7 @@
 
    public void testGetAsStreamWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("GET")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .addHeader("X-Auth-Token", authToken).build();
 
 
@@ -169,7 +169,7 @@
 
    public void testGetAsStreamWhenReponseIs404IsNull() throws Exception {
       HttpRequest get = HttpRequest.builder().method("GET")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .addHeader("X-Auth-Token", authToken).build();
 
 
@@ -183,7 +183,7 @@
 
    public void testCreateWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("POST")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images")
+            .endpoint("https://glance.jclouds.org:9292/images")
             .addHeader("x-image-meta-name", "test")
             .addHeader("Accept", MediaType.APPLICATION_JSON)
             .addHeader("X-Auth-Token", authToken)
@@ -204,7 +204,7 @@
    @Test(expectedExceptions = AuthorizationException.class)
    public void testCreateWhenResponseIs4xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("POST")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images")
+            .endpoint("https://glance.jclouds.org:9292/images")
             .addHeader("x-image-meta-name", "test")
             .addHeader("Accept", MediaType.APPLICATION_JSON)
             .addHeader("X-Auth-Token", authToken)
@@ -223,7 +223,7 @@
 
    public void testReserveWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("POST")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images")
+            .endpoint("https://glance.jclouds.org:9292/images")
             .addHeader("x-image-meta-name", "test")
             .addHeader("Accept", MediaType.APPLICATION_JSON)
             .addHeader("X-Auth-Token", authToken).build();
@@ -242,7 +242,7 @@
    @Test(expectedExceptions = AuthorizationException.class)
    public void testReserveWhenResponseIs4xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("POST")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images")
+            .endpoint("https://glance.jclouds.org:9292/images")
             .addHeader("x-image-meta-name", "test")
             .addHeader("Accept", MediaType.APPLICATION_JSON)
             .addHeader("X-Auth-Token", authToken).build();
@@ -260,7 +260,7 @@
    
    public void testUpdateMetadataWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("PUT")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .headers(
                   ImmutableMultimap.<String, String>builder()
                         .put("Accept", MediaType.APPLICATION_JSON)
@@ -297,7 +297,7 @@
    @Test(expectedExceptions = ResourceNotFoundException.class)
    public void testUpdateMetadataWhenResponseIs4xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("PUT")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .headers(
                   ImmutableMultimap.<String, String>builder()
                         .put("Accept", MediaType.APPLICATION_JSON)
@@ -321,7 +321,7 @@
 
    public void testUpdateImageWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("PUT")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .addHeader("Accept", MediaType.APPLICATION_JSON)
             .addHeader("X-Auth-Token", authToken)
             .payload(payloadFromStringWithContentType("somenewdata", MediaType.APPLICATION_OCTET_STREAM))
@@ -342,7 +342,7 @@
 
    public void testUpdateNameAndImageWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("PUT")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .headers(
                   ImmutableMultimap.<String, String>builder()
                         .put("Accept", MediaType.APPLICATION_JSON)
@@ -367,7 +367,7 @@
    @Test(expectedExceptions = AuthorizationException.class)
    public void testUpdateNameAndImageWhenResponseIs4xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("PUT")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .headers(
                   ImmutableMultimap.<String, String>builder()
                         .put("Accept", MediaType.APPLICATION_JSON)
@@ -389,7 +389,7 @@
 
    public void testDeleteWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("DELETE")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .addHeader("X-Auth-Token", authToken).build();
 
       HttpResponse getResponse = HttpResponse.builder().statusCode(200).build();
@@ -404,7 +404,7 @@
 
    public void testDeleteWhenResponseIs4xx() throws Exception {
       HttpRequest get = HttpRequest.builder().method("DELETE")
-            .endpoint("https://glance.jclouds.org:9292/v1.0/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
+            .endpoint("https://glance.jclouds.org:9292/images/fcc451d0-f6e4-4824-ad8f-70ec12326d07")
             .addHeader("X-Auth-Token", authToken).build();
 
 
