You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2016/02/04 12:26:45 UTC

[1/4] jclouds git commit: JCLOUDS-691: Remove 404 fallbacks of PUT and POST calls from OpenStack APIs

Repository: jclouds
Updated Branches:
  refs/heads/master 0cf13c61e -> d83282ca5


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java
index dae8dd7..df6b0bc 100644
--- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java
+++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/FlavorApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.trove.v1.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
 import java.util.Set;
@@ -49,19 +47,6 @@ public class FlavorApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(flavors.iterator().next().getRam(), 512);
    }
 
-   public void testListFlavorsFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/flavors");
-      FlavorApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getFlavorApi("RegionOne");
-
-      Set<? extends Flavor> flavors = api.list().toSet();
-      assertTrue(flavors.isEmpty());
-   }
-
    public void testGetFlavor() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/flavors/1");
       FlavorApi api = requestsSendResponses(
@@ -79,31 +64,20 @@ public class FlavorApiExpectTest extends BaseTroveApiExpectTest {
    }
 
    public void testGetFlavorByAccountId() {
-	      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/flavors/40806637803162");
-	      TroveApi troveApi = requestsSendResponses(
-               keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess,
-               authenticatedGET().endpoint(endpoint).build(),
-               HttpResponse.builder().statusCode(200).payload(payloadFromResource("/flavor_list.json")).build() );
-	      FlavorApi api = troveApi.getFlavorApi("RegionOne");
-
-	      Set<? extends Flavor> flavors = api.list(troveApi.getCurrentTenantId().get().getId() ).toSet();
-	      Flavor flavor = flavors.iterator().next();
-	      assertEquals(flavor.getName(), "512MB Instance");
-	      assertEquals(flavor.getId(), 1);
-	      assertEquals(flavor.getRam(), 512);
-	      assertEquals(flavor.getLinks().size(), 2);
-	   }
+      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/flavors/40806637803162");
+      TroveApi troveApi = requestsSendResponses(
+      keystoneAuthWithUsernameAndPasswordAndTenantName,
+      responseWithKeystoneAccess,
+      authenticatedGET().endpoint(endpoint).build(),
+      HttpResponse.builder().statusCode(200).payload(payloadFromResource("/flavor_list.json")).build() );
+      FlavorApi api = troveApi.getFlavorApi("RegionOne");
 
-   public void testGetFlavorFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/flavors/12312");
-      FlavorApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getFlavorApi("RegionOne");
-
-      assertNull(api.get(12312));
+      Set<? extends Flavor> flavors = api.list(troveApi.getCurrentTenantId().get().getId() ).toSet();
+      Flavor flavor = flavors.iterator().next();
+      assertEquals(flavor.getName(), "512MB Instance");
+      assertEquals(flavor.getId(), 1);
+      assertEquals(flavor.getRam(), 512);
+      assertEquals(flavor.getLinks().size(), 2);
    }
+
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java
index e7c2f04..2f79ba3 100644
--- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java
+++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/InstanceApiExpectTest.java
@@ -17,15 +17,16 @@
 package org.jclouds.openstack.trove.v1.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
+
 import java.net.URI;
 import java.util.Set;
+
 import javax.ws.rs.core.MediaType;
+
 import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.trove.v1.domain.Instance;
 import org.jclouds.openstack.trove.v1.internal.BaseTroveApiExpectTest;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 /**
@@ -51,22 +52,6 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest {
         assertEquals(instance.getName(), "json_rack_instance");  
     }
     
-    @Test(expectedExceptions = ResourceNotFoundException.class)
-    public void testCreateInstanceFail() {
-        URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances");
-        InstanceApi api = requestsSendResponses(
-                keystoneAuthWithUsernameAndPasswordAndTenantName,
-                responseWithKeystoneAccess,
-                authenticatedGET().endpoint(endpoint) // bad naming convention, you should not be able to change the method to POST
-                .method("POST")
-                .payload(payloadFromResourceWithContentType("/instance_create_request.json", MediaType.APPLICATION_JSON))
-                .build(),
-                HttpResponse.builder().statusCode(404).payload(payloadFromResource("/instance_create.json")).build() // response
-                ).getInstanceApi("RegionOne");
-
-        api.create("1", 2, "json_rack_instance");
-    }
-    
     public void testDeleteInstance() {
         URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/098653ba-218b-47ce-936a-e0b749101f81");
         InstanceApi api = requestsSendResponses(
@@ -79,19 +64,6 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest {
         assertTrue( api.delete("098653ba-218b-47ce-936a-e0b749101f81") );
     }
     
-    public void testDeleteInstanceFail() {
-        URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/098653ba-218b-47ce-936a-e0b749101f81");
-        InstanceApi api = requestsSendResponses(
-                keystoneAuthWithUsernameAndPasswordAndTenantName,
-                responseWithKeystoneAccess,
-                authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-                HttpResponse.builder().statusCode(404).build() // response
-                ).getInstanceApi("RegionOne");
-
-        assertTrue( !api.delete("098653ba-218b-47ce-936a-e0b749101f81") );
-    }
-
-   
    public void testListInstances() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances");
       InstanceApi api = requestsSendResponses(
@@ -106,19 +78,6 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(instances.iterator().next().getSize(), 2);
    }
 
-   public void testListInstancesFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances");
-      InstanceApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getInstanceApi("RegionOne");
-
-      Set<? extends Instance> instances = api.list().toSet();
-      assertTrue(instances.isEmpty());
-   }   
-
    public void testGetInstance() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/44b277eb-39be-4921-be31-3d61b43651d7");
       InstanceApi api = requestsSendResponses(
@@ -135,18 +94,6 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(instance.getHostname(), "e09ad9a3f73309469cf1f43d11e79549caf9acf2.rackspaceclouddb.com");
    }
    
-   public void testGetInstanceFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/12312");
-      InstanceApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getInstanceApi("RegionOne");
-
-      assertNull(api.get("12312"));
-   }  
-   
    public void testEnableRootOnInstance() {
        URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/44b277eb-39be-4921-be31-3d61b43651d7/root");
        InstanceApi api = requestsSendResponses(
@@ -160,19 +107,6 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest {
        assertEquals(password, "12345");
     }
    
-   public void testEnableRootOnInstanceFail() {
-       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/44b277eb-39be-4921-be31-3d61b43651d7/root");
-       InstanceApi api = requestsSendResponses(
-             keystoneAuthWithUsernameAndPasswordAndTenantName,
-             responseWithKeystoneAccess,
-             authenticatedGET().method("POST").endpoint(endpoint).build(),
-             HttpResponse.builder().statusCode(404).payload(payloadFromResource("/instance_root.json")).build()
-       ).getInstanceApi("RegionOne");
-
-       String password = api.enableRoot("44b277eb-39be-4921-be31-3d61b43651d7");
-       assertEquals(password, null);
-    }
-   
    public void testIsRootInstance() {
        URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/44b277eb-39be-4921-be31-3d61b43651d7/root");
        InstanceApi api = requestsSendResponses(
@@ -199,17 +133,4 @@ public class InstanceApiExpectTest extends BaseTroveApiExpectTest {
        assertEquals(rooted.booleanValue(), false);
     }
    
-   @Test(expectedExceptions = ResourceNotFoundException.class)  
-   public void testIsRootInstanceFail() {
-       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/44b277eb-39be-4921-be31-3d61b43651d7/root");
-       InstanceApi api = requestsSendResponses(
-             keystoneAuthWithUsernameAndPasswordAndTenantName,
-             responseWithKeystoneAccess,
-             authenticatedGET().endpoint(endpoint).build(),
-             HttpResponse.builder().statusCode(404).payload(payloadFromResource("/instance_is_rooted.json")).build()
-       ).getInstanceApi("RegionOne");
-
-       Boolean rooted = api.isRooted("44b277eb-39be-4921-be31-3d61b43651d7");
-       assertNull(rooted);
-    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java
index 59a5a20..e1845c9 100644
--- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java
+++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiExpectTest.java
@@ -17,9 +17,7 @@
 package org.jclouds.openstack.trove.v1.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertFalse;
 
 import java.net.URI;
 import java.util.List;
@@ -30,6 +28,7 @@ import javax.ws.rs.core.MediaType;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.trove.v1.domain.User;
 import org.jclouds.openstack.trove.v1.internal.BaseTroveApiExpectTest;
+import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 import org.testng.collections.Lists;
 
@@ -55,26 +54,9 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
             HttpResponse.builder().statusCode(202).build() // response
             ).getUserApi("RegionOne", "instanceId-1234-5678");
 
-      boolean result = api.create("dbuser1", "password", "databaseA");
-      assertTrue(result);
+      api.create("dbuser1", "password", "databaseA");
    }
 
-   public void testCreateUserSimpleFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint) // bad naming convention, you should not be able to change the method to POST
-            .method("POST")
-            .payload(payloadFromResourceWithContentType("/user_create_simple_request.json", MediaType.APPLICATION_JSON))
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      boolean result = api.create("dbuser1", "password", "databaseA");
-      assertFalse(result);
-   }
-   
    public void testCreateUserSimpleWithHost() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users");
       UserApi api = requestsSendResponses(
@@ -87,26 +69,9 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
             HttpResponse.builder().statusCode(202).build() // response
             ).getUserApi("RegionOne", "instanceId-1234-5678");
 
-      boolean result = api.create("dbuser1", "password", "192.168.64.64", "databaseA");
-      assertTrue(result);
+      api.create("dbuser1", "password", "192.168.64.64", "databaseA");
    }
    
-   public void testCreateUserSimpleWithHostFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint) // bad naming convention, you should not be able to change the method to POST
-            .method("POST")
-            .payload(payloadFromResourceWithContentType("/user_create_with_host_simple_request.json", MediaType.APPLICATION_JSON))
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      boolean result = api.create("dbuser1", "password", "192.168.64.64", "databaseA");
-      assertFalse(result);
-   }
-
    public void testCreateUser() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users");
       UserApi api = requestsSendResponses(
@@ -135,10 +100,10 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       users.add(user2);
       users.add(user3);
       
-      boolean result = api.create(ImmutableSortedSet.<User>naturalOrder().addAll(users).build());
-      assertTrue(result);
+      api.create(ImmutableSortedSet.<User>naturalOrder().addAll(users).build());
    }
 
+   @Test(expectedExceptions = ResourceNotFoundException.class)
    public void testCreateUserFail() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users");
       UserApi api = requestsSendResponses(
@@ -167,8 +132,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       users.add(user2);
       users.add(user3);
       
-      boolean result = api.create( ImmutableSortedSet.<User>naturalOrder().addAll(users).build());
-      assertFalse(result);
+      api.create( ImmutableSortedSet.<User>naturalOrder().addAll(users).build());
    }
 
    public void testGrantUserSimple() {
@@ -183,24 +147,7 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
             HttpResponse.builder().statusCode(202).build() // response
             ).getUserApi("RegionOne", "instanceId-1234-5678");
 
-      boolean result = api.grant("dbuser1", "databaseZ");
-      assertTrue(result);
-   }
-
-   public void testGrantUserSimpleFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1/databases");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint) // bad naming convention, you should not be able to change the method to POST
-            .method("PUT")
-            .payload(payloadFromResourceWithContentType("/user_grant_simple_request.json", MediaType.APPLICATION_JSON))
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      boolean result = api.grant("dbuser1", "databaseZ");
-      assertFalse(result);
+      api.grant("dbuser1", "databaseZ");
    }
 
    public void testGrantUser() {
@@ -219,30 +166,9 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       databases.add( "databaseC" );
       databases.add( "databaseD" );
       
-      boolean result = api.grant("dbuser1", databases);
-      assertTrue(result);
+      api.grant("dbuser1", databases);
    }
 
-   public void testGrantUserFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1/databases");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint) // bad naming convention, you should not be able to change the method to POST
-            .method("PUT")
-            .payload(payloadFromResourceWithContentType("/user_grant_request.json", MediaType.APPLICATION_JSON))
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      List<String> databases = Lists.newArrayList();
-      databases.add( "databaseC" );
-      databases.add( "databaseD" );
-      
-      boolean result = api.grant("dbuser1", databases);
-      assertFalse(result);
-   }
-   
    public void testRevokeUser() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1/databases/databaseA");
       UserApi api = requestsSendResponses(
@@ -261,24 +187,6 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       assertTrue(result);
    }
    
-   public void testRevokeUserFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1/databases/databaseA");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint) // bad naming convention, you should not be able to change the method to POST
-            .method("DELETE")
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      Set<String> databases = Sets.newHashSet();
-      databases.add( "database" );
-      databases.add( "database" );
-      boolean result = api.revoke("dbuser1", "databaseA");
-      assertFalse(result);
-   }
-   
    public void testDeleteUser() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1");
       UserApi api = requestsSendResponses(
@@ -297,24 +205,6 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       assertTrue(result);
    }
    
-   public void testDeleteUserFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint) // bad naming convention, you should not be able to change the method to POST
-            .method("DELETE")
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      Set<String> databases = Sets.newHashSet();
-      databases.add( "database" );
-      databases.add( "database" );
-      boolean result = api.delete("dbuser1");
-      assertFalse(result);
-   }
-   
    public void testListUsers() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users");
       UserApi api = requestsSendResponses(
@@ -330,19 +220,6 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(users.iterator().next().getName(), "dbuser1");
    }
    
-   public void testListUsersFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).payload(payloadFromResource("/trove_user_list.json")).build()
-      ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      Set<User> users = api.list().toSet();
-      assertTrue(users.isEmpty());
-   }
-   
    public void testUserGetDatabaseList() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1/databases");
       UserApi api = requestsSendResponses(
@@ -357,19 +234,6 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(databases.iterator().next(), "databaseA");
    }
    
-   public void testUserGetDatabaseListFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/dbuser1/databases");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).payload(payloadFromResource("/user_list_access.json")).build()
-      ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      Set<String> databases = api.getDatabaseList("dbuser1").toSet();
-      assertTrue(databases.isEmpty());
-   }
-   
    public void testGetUser() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/exampleuser");
       UserApi api = requestsSendResponses(
@@ -386,19 +250,6 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(user.getDatabases().iterator().next(), "databaseA");
    }
    
-   public void testGetUserFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/exampleuser");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).payload(payloadFromResource("/user_get.json")).build()
-      ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      User user = api.get("exampleuser");
-      assertNull(user);
-   }
-   
    public void testGetUserWithHostname() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/example%2euser%40192%2e168%2e64%2e64");
       UserApi api = requestsSendResponses(
@@ -416,16 +267,4 @@ public class UserApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(user.getDatabases().iterator().next(), "databaseA");
    }
    
-   public void testGetUserWithHostnameFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/users/example%2euser%40192%2e168%2e64%2e64");
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).payload(payloadFromResource("/user_get_withhost.json")).build()
-      ).getUserApi("RegionOne", "instanceId-1234-5678");
-
-      User user = api.get("example.user", "192.168.64.64");
-      assertNull(user);
-   }
 }


[2/4] jclouds git commit: JCLOUDS-691: Remove 404 fallbacks of PUT and POST calls from OpenStack APIs

Posted by na...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java
index b905b57..564faac 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeAttachmentApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -32,8 +30,6 @@ import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.nova.v2_0.domain.Volume;
 import org.jclouds.openstack.nova.v2_0.domain.VolumeAttachment;
 import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableSet;
@@ -65,19 +61,6 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(attachment.getVolumeId(), "1");
    }
 
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testListAttachmentsFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-2/os-volume_attachments");
-      VolumeAttachmentApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(401).build()
-      ).getVolumeAttachmentApi("az-1.region-a.geo-1").get();
-
-      api.listAttachmentsOnServer("instance-2");
-   }
-
    public void testGetAttachment() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments/1");
       VolumeAttachmentApi api = requestsSendResponses(
@@ -91,18 +74,6 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(attachment, testAttachment());
    }
 
-   public void testGetAttachmentFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments/1");
-      VolumeAttachmentApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeAttachmentApi("az-1.region-a.geo-1").get();
-
-     assertNull(api.getAttachmentForVolumeOnServer("1", "instance-1"));
-   }
-
    public void testAttachVolume() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments");
       VolumeAttachmentApi api = requestsSendResponses(
@@ -117,20 +88,6 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(result, testAttachment());
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testAttachVolumeFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments");
-      VolumeAttachmentApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("POST")
-                  .payload(payloadFromStringWithContentType("{\"volumeAttachment\":{\"volumeId\":\"1\",\"device\":\"/dev/vdc\"}}", MediaType.APPLICATION_JSON)).endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeAttachmentApi("az-1.region-a.geo-1").get();
-
-      api.attachVolumeToServerAsDevice("1", "instance-1", "/dev/vdc");
-   }
-
    public void testDetachVolume() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments/1");
       VolumeAttachmentApi api = requestsSendResponses(
@@ -143,18 +100,6 @@ public class VolumeAttachmentApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.detachVolumeFromServer("1", "instance-1"));
    }
 
-   public void testDetachVolumeFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/instance-1/os-volume_attachments/1");
-      VolumeAttachmentApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeAttachmentApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.detachVolumeFromServer("1", "instance-1"));
-   }
-
    protected Volume testVolume() {
       return Volume.builder().status(Volume.Status.IN_USE).description("This is a test volume").zone("nova").name("test")
             .attachments(ImmutableSet.of(testAttachment())).size(1).id("1").created(dateService.iso8601SecondsDateParse("2012-04-23 12:16:45")).build();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java
index 2c8e8c0..89a47fb 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -70,18 +68,6 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(type, testVolumeType());
    }
 
-   public void testGetVolumeTypeFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/8");
-      VolumeTypeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeTypeApi("az-1.region-a.geo-1").get();
-
-      assertNull(api.get("8"));
-   }
-
    public void testCreateVolumeType() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types");
       VolumeTypeApi api = requestsSendResponses(
@@ -139,18 +125,6 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.delete("8"));
    }
 
-   public void testDeleteVolumeTypeFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/8");
-      VolumeTypeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeTypeApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.delete("8"));
-   }
-
    public void testGetAllExtraSpecs() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/9/extra_specs");
       VolumeTypeApi api = requestsSendResponses(
@@ -163,18 +137,6 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(api.getExtraSpecs("9"), ImmutableMap.of("test", "value1"));
    }
 
-   public void testGetAllExtraSpecsFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/9/extra_specs");
-      VolumeTypeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeTypeApi("az-1.region-a.geo-1").get();
-
-      assertTrue(api.getExtraSpecs("9").isEmpty());
-   }
-
    public void testSetAllExtraSpecs() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/9/extra_specs");
       VolumeTypeApi api = requestsSendResponses(
@@ -186,7 +148,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(200).build()
       ).getVolumeTypeApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.updateExtraSpecs("9", ImmutableMap.of("test1", "somevalue")));
+      api.updateExtraSpecs("9", ImmutableMap.of("test1", "somevalue"));
    }
 
    public void testSetExtraSpec() {
@@ -200,7 +162,7 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(200).build()
       ).getVolumeTypeApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.updateExtraSpec("5", "test1", "somevalue"));
+      api.updateExtraSpec("5", "test1", "somevalue");
    }
 
    public void testGetExtraSpec() {
@@ -215,18 +177,6 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(api.getExtraSpec("5", "test1"), "another value");
    }
 
-   public void testGetExtraSpecFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/5/extra_specs/test1");
-      VolumeTypeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeTypeApi("az-1.region-a.geo-1").get();
-
-      assertNull(api.getExtraSpec("5", "test1"));
-   }
-
    public void testDeleteExtraSpec() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/5/extra_specs/test1");
       VolumeTypeApi api = requestsSendResponses(
@@ -239,18 +189,6 @@ public class VolumeTypeApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.deleteExtraSpec("5", "test1"));
    }
 
-   public void testDeleteExtraSpecFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types/5/extra_specs/test1");
-      VolumeTypeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeTypeApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.deleteExtraSpec("5", "test1"));
-   }
-
    public VolumeType testVolumeType() {
       return VolumeType.builder().id("8").name("jclouds-test-1").created(dateService.iso8601SecondsDateParse("2012-05-10 12:33:06")).extraSpecs(ImmutableMap.of("test", "value1", "test1", "wibble")).build();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java
index 84b47cc..edfa021 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApiLiveTest.java
@@ -110,14 +110,14 @@ public class VolumeTypeApiLiveTest extends BaseNovaApiLiveTest {
       if (volumeTypeOption.isPresent()) {
          assertEquals(volumeTypeOption.get().getExtraSpecs(testVolumeType.getId()), ImmutableMap.of("test", "value1"));
          assertEquals(volumeTypeOption.get().getExtraSpec(testVolumeType.getId(), "test"),  "value1");
-         assertTrue(volumeTypeOption.get().updateExtraSpecs(testVolumeType.getId(), ImmutableMap.of("test1", "wibble")));
+         volumeTypeOption.get().updateExtraSpecs(testVolumeType.getId(), ImmutableMap.of("test1", "wibble"));
       }
    }
 
    @Test(dependsOnMethods = "testCreateVolumeType")
    public void testUpdateIndividualSpec() {
       if (volumeTypeOption.isPresent()) {
-         assertTrue(volumeTypeOption.get().updateExtraSpec(testVolumeType.getId(), "test1", "freddy"));
+         volumeTypeOption.get().updateExtraSpec(testVolumeType.getId(), "test1", "freddy");
          assertEquals(volumeTypeOption.get().getExtraSpec(testVolumeType.getId(), "test1"), "freddy");
       }
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java
index 6b8d279..7d1db8a 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ExtensionApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
 
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -56,22 +54,6 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest {
             new ParseExtensionListTest().expected().toString());
    }
 
-   public void testListExtensionsWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listExtensions = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/extensions")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse listExtensionsResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, listExtensions, listExtensionsResponse);
-
-      assertTrue(apiWhenNoServersExist.getExtensionApi("az-1.region-a.geo-1").list().isEmpty());
-   }
-
    // TODO: gson deserializer for Multimap
    public void testGetExtensionByAliasWhenResponseIs2xx() throws Exception {
       HttpRequest getExtension = HttpRequest.builder()
@@ -91,20 +73,4 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest {
             .toString(), new ParseExtensionTest().expected().toString());
    }
 
-   public void testGetExtensionByAliasWhenResponseIs404() throws Exception {
-      HttpRequest getExtension = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/extensions/RS-PIE")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse getExtensionResponse = HttpResponse.builder().statusCode(404)
-            .payload(payloadFromResource("/extension_details.json")).build();
-
-      NovaApi apiWhenNoExtensionsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, getExtension, getExtensionResponse);
-
-      assertNull(apiWhenNoExtensionsExist.getExtensionApi("az-1.region-a.geo-1").get("RS-PIE"));
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java
index d6cb506..37804a4 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/FlavorApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
 
 import javax.ws.rs.HttpMethod;
 import javax.ws.rs.core.MediaType;
@@ -62,22 +60,6 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
             new ParseFlavorListTest().expected().toString());
    }
 
-   public void testListFlavorsWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listFlavors = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/flavors")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse listFlavorsResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, listFlavors, listFlavorsResponse);
-
-      assertTrue(apiWhenNoServersExist.getFlavorApi("az-1.region-a.geo-1").list().concat().isEmpty());
-   }
-
    // TODO: gson deserializer for Multimap
    public void testGetFlavorWhenResponseIs2xx() throws Exception {
       HttpRequest getFlavor = HttpRequest.builder()
@@ -98,22 +80,6 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
                   .toString(), new ParseFlavorTest().expected().toString());
    }
 
-   public void testGetFlavorWhenResponseIs404() throws Exception {
-      HttpRequest getFlavor = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/flavors/123")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse getFlavorResponse = HttpResponse.builder().statusCode(404)
-            .payload(payloadFromResource("/flavor_details.json")).build();
-
-      NovaApi apiWhenNoFlavorsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, getFlavor, getFlavorResponse);
-
-      assertNull(apiWhenNoFlavorsExist.getFlavorApi("az-1.region-a.geo-1").get("123"));
-   }
-
    public void testCreateFlavor200() throws Exception {
       ParseCreateFlavorTest parser = new ParseCreateFlavorTest();
       HttpRequest listFlavors = HttpRequest.builder()

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java
index f2d2689..541a3b4 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ImageApiExpectTest.java
@@ -17,9 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
 
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -61,22 +58,6 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
             new ParseImageListTest().expected().toString());
    }
 
-   public void testListImagesWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest list = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, list, listResponse);
-
-      assertTrue(apiWhenNoServersExist.getImageApi("az-1.region-a.geo-1").list().concat().isEmpty());
-   }
-
    public void testGetImageWhenResponseIs2xx() throws Exception {
 
       HttpRequest getImage = HttpRequest.builder()
@@ -97,22 +78,6 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
                   .toString(), new ParseImageTest().expected().toString());
    }
 
-   public void testGetImageWhenResponseIs404() throws Exception {
-      HttpRequest getImage = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/52415800-8b69-11e0-9b19-734f5736d2a2")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse getImageResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoImagesExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, getImage, getImageResponse);
-
-      assertNull(apiWhenNoImagesExist.getImageApi("az-1.region-a.geo-1").get("52415800-8b69-11e0-9b19-734f5736d2a2"));
-   }
-
    public void testListMetadataWhenResponseIs2xx() throws Exception {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       HttpRequest getMetadata = HttpRequest.builder()
@@ -132,28 +97,6 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
              new ParseMetadataListTest().expected().toString());
    }
 
-   public void testListMetadataWhenResponseIs404() throws Exception {
-      String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
-      HttpRequest getMetadata = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/" + imageId + "/metadata")
-            .addHeader("Accept", "*/*")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse getMetadataResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, getMetadata, getMetadataResponse);
-
-      try {
-         apiWhenServerExists.getImageApi("az-1.region-a.geo-1").getMetadata(imageId);
-         fail("Expected an exception.");
-         } catch (Exception e) {
-            // expected
-         }
-   }
-
    public void testSetMetadataWhenResponseIs2xx() throws Exception {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
@@ -180,35 +123,6 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
              new ParseMetadataListTest().expected().toString());
    }
 
-   public void testSetMetadataWhenResponseIs404() throws Exception {
-      String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
-      ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
-              .put("Server Label", "Web Head 1")
-              .put("Image Version", "2.1")
-              .build();
-
-      HttpRequest setMetadata = HttpRequest.builder()
-            .method("PUT")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/" + imageId + "/metadata")
-            .addHeader("Accept", "*/*")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"metadata\":{\"Server Label\":\"Web Head 1\",\"Image Version\":\"2.1\"}}", "application/json"))
-            .build();
-
-      HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, setMetadata, setMetadataResponse);
-
-      try {
-    	 apiWhenServerExists.getImageApi("az-1.region-a.geo-1").setMetadata(imageId, metadata);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testUpdateMetadataWhenResponseIs2xx() throws Exception {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
@@ -235,35 +149,6 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
              new ParseMetadataUpdateTest().expected().toString());
    }
 
-   public void testUpdateMetadataWhenResponseIs404() throws Exception {
-      String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
-      ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
-              .put("Server Label", "Web Head 2")
-              .put("Server Description", "Simple Server")
-              .build();
-
-      HttpRequest setMetadata = HttpRequest.builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + imageId + "/metadata")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType("{\"metadata\":{\"Server Label\":\"Web Head 2\",\"Server Description\":\"Simple Server\"}}", "application/json"))
-            .build();
-
-      HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(404)
-              .payload(payloadFromResource("/metadata_updated.json")).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, setMetadata, setMetadataResponse);
-
-      try {
-         apiWhenServerExists.getImageApi("az-1.region-a.geo-1").setMetadata(imageId, metadata);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testGetMetadataItemWhenResponseIs2xx() throws Exception {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       String key = "Image Version";
@@ -286,27 +171,6 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
              "2.5");
    }
 
-   public void testGetMetadataItemWhenResponseIs404() throws Exception {
-      String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
-      String key = "Image Version";
-
-      HttpRequest getMetadata = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/" + imageId + "/metadata/" +
-                  Strings2.urlEncode(key))
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse getMetadataResponse = HttpResponse.builder().statusCode(404)
-              .payload(payloadFromStringWithContentType("{\"metadata\":{\"Image Version\":\"2.5\"}}", "application/json")).build();
-
-      NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, getMetadata, getMetadataResponse);
-
-      assertNull(apiWhenImageExists.getImageApi("az-1.region-a.geo-1").getMetadata(imageId, key));
-   }
-
    public void testSetMetadataItemWhenResponseIs2xx() throws Exception {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       String key = "Image Version";
@@ -349,23 +213,4 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
       apiWhenImageExists.getImageApi("az-1.region-a.geo-1").deleteMetadata(imageId, key);
    }
 
-   public void testDeleteMetadataItemWhenResponseIs404() throws Exception {
-      String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
-      String key = "Image Version";
-
-      HttpRequest deleteMetadata = HttpRequest.builder()
-            .method("DELETE")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/images/" + imageId + "/metadata/" +
-                  Strings2.urlEncode(key))
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse deleteMetadataResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, deleteMetadata, deleteMetadataResponse);
-
-      apiWhenImageExists.getImageApi("az-1.region-a.geo-1").deleteMetadata(imageId, key);
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java
index 95cd4b3..b030654 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/features/ServerApiExpectTest.java
@@ -18,7 +18,6 @@ package org.jclouds.openstack.nova.v2_0.features;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
 
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -66,21 +65,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
             new ParseServerListTest().expected().toString());
    }
 
-   public void testListServersWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listServers = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listServersResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, listServers, listServersResponse);
-
-      assertTrue(apiWhenNoServersExist.getServerApi("az-1.region-a.geo-1").list().concat().isEmpty());
-   }
-
    public void testListInDetailServersWhenResponseIs2xx() throws Exception {
       HttpRequest listServers = HttpRequest
               .builder()
@@ -101,22 +85,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
               new ParseServerDetailsStatesTest().expected().toString());
    }
 
-   public void testListInDetailServersWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listServers = HttpRequest
-              .builder()
-              .method("GET")
-              .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/detail")
-              .addHeader("Accept", "application/json")
-              .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listInDetailServersResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-              responseWithKeystoneAccess, listServers, listInDetailServersResponse);
-
-      assertTrue(apiWhenNoServersExist.getServerApi("az-1.region-a.geo-1").listInDetail().concat().isEmpty());
-   }
-
    public void testCreateServerWhenResponseIs202() throws Exception {
       HttpRequest createServer = HttpRequest.builder()
             .method("POST")
@@ -228,34 +196,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
               new ParseCreatedServerTest().expected().toString());
    }
 
-   public void testCreateServerWithBootVolumeWhenResponseIs404() throws Exception {
-      HttpRequest createServer = HttpRequest
-            .builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                     "{\"server\":{\"name\":\"test-e92\",\"imageRef\":\"\",\"flavorRef\":\"12345\",\"block_device_mapping_v2\":[{\"volume_size\":100,\"uuid\":\"f0c907a5-a26b-48ba-b803-83f6b7450ba5\",\"destination_type\":\"volume\",\"source_type\":\"image\"}]}}", "application/json"))
-            .build();
-
-      HttpResponse createServerResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWithNewServer = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, createServer, createServerResponse);
-
-      BlockDeviceMapping blockDeviceMapping = BlockDeviceMapping.builder()
-            .uuid("f0c907a5-a26b-48ba-b803-83f6b7450ba5").sourceType("image")
-            .destinationType("volume").volumeSize(100).build();
-
-      try {
-         apiWithNewServer.getServerApi("az-1.region-a.geo-1").create("test-e92", "", "12345", new CreateServerOptions().blockDeviceMappings(ImmutableSet.of(blockDeviceMapping)));
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testCreateServerWithDiskConfigAuto() throws Exception {
       HttpRequest createServer = HttpRequest.builder()
          .method("POST")
@@ -347,32 +287,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
             imageId);
    }
 
-   public void testCreateImageWhenResponseIs404IsEmpty() throws Exception {
-      String serverId = "123";
-      String imageName = "foo";
-
-      HttpRequest createImage = HttpRequest.builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/action")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"createImage\":{\"name\":\"" + imageName + "\", \"metadata\": {}}}", "application/json"))
-            .build();
-
-      HttpResponse createImageResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerDoesNotExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, createImage, createImageResponse);
-
-      try {
-         apiWhenServerDoesNotExist.getServerApi("az-1.region-a.geo-1").createImageFromServer(imageName, serverId);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testStopServerWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       HttpRequest stopServer = HttpRequest.builder()
@@ -392,30 +306,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
       apiWhenServerExists.getServerApi("az-1.region-a.geo-1").stop(serverId);
    }
 
-   public void testStopServerWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      HttpRequest stopServer = HttpRequest.builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/action")
-            .addHeader("Accept", "*/*")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"os-stop\":null}", "application/json"))
-            .build();
-
-      HttpResponse stopServerResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, stopServer, stopServerResponse);
-
-      try {
-         apiWhenServerExists.getServerApi("az-1.region-a.geo-1").stop(serverId);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testStartServerWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       HttpRequest startServer = HttpRequest
@@ -436,30 +326,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
       apiWhenServerExists.getServerApi("az-1.region-a.geo-1").start(serverId);
    }
 
-   public void testStartServerWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      HttpRequest startServer = HttpRequest.builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/action")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"os-start\":null}", "application/json"))
-            .build();
-
-      HttpResponse startServerResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, startServer, startServerResponse);
-
-      try {
-         apiWhenServerExists.getServerApi("az-1.region-a.geo-1").start(serverId);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testListMetadataWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       HttpRequest getMetadata = HttpRequest.builder()
@@ -479,28 +345,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
              new ParseMetadataListTest().expected().toString());
    }
 
-   public void testListMetadataWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      HttpRequest getMetadata = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/metadata")
-            .addHeader("Accept", "*/*")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse getMetadataResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, getMetadata, getMetadataResponse);
-
-      try {
-         apiWhenServerExists.getServerApi("az-1.region-a.geo-1").getMetadata(serverId);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testSetMetadataWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
@@ -527,35 +371,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
              new ParseMetadataListTest().expected().toString());
    }
 
-   public void testSetMetadataWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
-              .put("Server Label", "Web Head 1")
-              .put("Image Version", "2.1")
-              .build();
-
-      HttpRequest setMetadata = HttpRequest.builder()
-            .method("PUT")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/metadata")
-            .addHeader("Accept", "*/*")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"metadata\":{\"Server Label\":\"Web Head 1\",\"Image Version\":\"2.1\"}}", "application/json"))
-            .build();
-
-      HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, setMetadata, setMetadataResponse);
-
-      try {
-         apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testUpdateMetadataWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
@@ -582,36 +397,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
              new ParseMetadataUpdateTest().expected().toString());
    }
 
-   public void testUpdateMetadataWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
-              .put("Server Label", "Web Head 2")
-              .put("Server Description", "Simple Server")
-              .build();
-
-      HttpRequest setMetadata = HttpRequest.builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/metadata")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"metadata\":{\"Server Label\":\"Web Head 2\",\"Server Description\":\"Simple Server\"}}", "application/json"))
-            .build();
-
-      HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(404)
-              .payload(payloadFromResource("/metadata_updated.json")).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, setMetadata, setMetadataResponse);
-
-      try {
-         apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testGetMetadataItemWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       String key = "Server Label";
@@ -635,35 +420,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
              "Web Head 1");
    }
 
-   public void testGetMetadataItemWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
-              .put("Server Label", "Web Head 1")
-              .build();
-
-      HttpRequest setMetadata = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/metadata")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"metadata\":{\"Server Label\":\"Web Head 2\",\"Server Description\":\"Simple Server\"}}", "application/json"))
-            .build();
-
-      HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(404)
-              .payload(payloadFromResource("/metadata_updated.json")).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, setMetadata, setMetadataResponse);
-
-      try {
-         apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testSetMetadataItemWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
@@ -690,36 +446,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
              new ParseMetadataUpdateTest().expected().toString());
    }
 
-   public void testSetMetadataItemWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      ImmutableMap<String, String> metadata = new ImmutableMap.Builder<String, String>()
-              .put("Server Label", "Web Head 2")
-              .put("Server Description", "Simple Server")
-              .build();
-
-      HttpRequest setMetadata = HttpRequest.builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/metadata")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType(
-                  "{\"metadata\":{\"Server Label\":\"Web Head 2\",\"Server Description\":\"Simple Server\"}}", "application/json"))
-            .build();
-
-      HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(404)
-              .payload(payloadFromResource("/metadata_updated.json")).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, setMetadata, setMetadataResponse);
-
-      try {
-         apiWhenServerExists.getServerApi("az-1.region-a.geo-1").setMetadata(serverId, metadata);
-         fail("Expected an exception.");
-      } catch (Exception e) {
-         // expected
-      }
-   }
-
    public void testDeleteMetadataItemWhenResponseIs2xx() throws Exception {
       String serverId = "123";
       String key = "Server Label";
@@ -740,26 +466,6 @@ public class ServerApiExpectTest extends BaseNovaApiExpectTest {
       apiWhenServerExists.getServerApi("az-1.region-a.geo-1").deleteMetadata(serverId, key);
    }
 
-   public void testDeleteMetadataItemWhenResponseIs404() throws Exception {
-      String serverId = "123";
-      String key = "Server Label";
-
-      HttpRequest deleteMetadata = HttpRequest.builder()
-            .method("DELETE")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/" + serverId + "/metadata/" +
-                  Strings2.urlEncode(key))
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .build();
-
-      HttpResponse deleteMetadataResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, deleteMetadata, deleteMetadataResponse);
-
-      apiWhenServerExists.getServerApi("az-1.region-a.geo-1").deleteMetadata(serverId, key);
-   }
-
    public void testGetDiagnosticsWhenResponseIs200() throws Exception {
        String serverId = "123";
        HttpRequest getDiagnostics = HttpRequest.builder()

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
index 19c4f91..a0d40bc 100644
--- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
+++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
@@ -310,10 +310,7 @@ public class RegionScopedSwiftBlobStore implements BlobStore {
          userMetadata = metadata.getMetadata();
       }
 
-      boolean copied = objectApi.copy(toName, fromContainer, fromName, userMetadata, systemMetadata);
-      if (!copied) {
-         throw new KeyNotFoundException(fromContainer, fromName, "Swift could not find the specified key");
-      }
+      objectApi.copy(toName, fromContainer, fromName, userMetadata, systemMetadata);
 
       // TODO: Swift copy object *appends* user metadata, does not overwrite
       return objectApi.getWithoutBody(toName).getETag();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/AccountApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/AccountApi.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/AccountApi.java
index c9d5b9d..63911db 100644
--- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/AccountApi.java
+++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/AccountApi.java
@@ -73,27 +73,19 @@ public interface AccountApi {
     * Creates or updates the {@link Account} metadata.
     *
     * @param metadata  the metadata to create or update.
-    *
-    * @return {@code true} if the metadata was successfully created or updated,
-    *         {@code false} if not.
     */
    @Named("account:updateMetadata")
    @POST
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean updateMetadata(@BinderParam(BindAccountMetadataToHeaders.class) Map<String, String> metadata);
+   void updateMetadata(@BinderParam(BindAccountMetadataToHeaders.class) Map<String, String> metadata);
 
    /**
     * Replaces the temporary URL key for the {@link Account}.
     *
     * @param temporaryUrlKey  the temporary URL key to update.
-    *
-    * @return {@code true} if the temporary URL key was successfully updated,
-    *         {@code false} if not.
     */
    @Named("account:updateTemporaryUrlKey")
    @POST
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean updateTemporaryUrlKey(@HeaderParam(ACCOUNT_TEMPORARY_URL_KEY) String temporaryUrlKey);
+   void updateTemporaryUrlKey(@HeaderParam(ACCOUNT_TEMPORARY_URL_KEY) String temporaryUrlKey);
 
    /**
     * Deletes metadata from the {@link Account}.

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ContainerApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ContainerApi.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ContainerApi.java
index 54164d9..e9da15b 100644
--- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ContainerApi.java
+++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ContainerApi.java
@@ -150,15 +150,11 @@ public interface ContainerApi {
     *           the container name corresponding to {@link Container#getName()}.
     * @param options
     *           the container options to update.
-    *
-    * @return {@code true} if the container metadata was successfully created or updated,
-    *         {@code false} if not.
     */
    @Named("container:update")
    @POST
    @Path("/{containerName}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean update(@PathParam("containerName") String containerName, UpdateContainerOptions options);
+   void update(@PathParam("containerName") String containerName, UpdateContainerOptions options);
 
    /**
     * Creates or updates the {@link Container} metadata.
@@ -167,15 +163,11 @@ public interface ContainerApi {
     *           the container name corresponding to {@link Container#getName()}.
     * @param metadata
     *           the container metadata to create or update.
-    *
-    * @return {@code true} if the container metadata was successfully created or updated,
-    *         {@code false} if not.
     */
    @Named("container:updateMetadata")
    @POST
    @Path("/{containerName}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean updateMetadata(@PathParam("containerName") String containerName,
+   void updateMetadata(@PathParam("containerName") String containerName,
          @BinderParam(BindContainerMetadataToHeaders.class) Map<String, String> metadata);
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
index 4063bfc..335dfa6 100644
--- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
+++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/features/ObjectApi.java
@@ -37,8 +37,6 @@ import javax.ws.rs.Produces;
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.blobstore.BlobStoreFallbacks.FalseOnContainerNotFound;
-import org.jclouds.blobstore.BlobStoreFallbacks.FalseOnKeyNotFound;
 import org.jclouds.blobstore.KeyNotFoundException;
 import org.jclouds.http.options.GetOptions;
 import org.jclouds.io.Payload;
@@ -198,16 +196,12 @@ public interface ObjectApi {
     *           corresponds to {@link SwiftObject#getName()}.
     * @param metadata
     *           the metadata to create or update.
-    *
-    * @return {@code true} if the metadata was successfully created or updated,
-    *         {@code false} if not.
     */
    @Named("object:updateMetadata")
    @POST
    @Path("/{objectName}")
    @Produces("")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean updateMetadata(@PathParam("objectName") String objectName,
+   void updateMetadata(@PathParam("objectName") String objectName,
          @BinderParam(BindObjectMetadataToHeaders.class) Map<String, String> metadata);
 
    /**
@@ -219,15 +213,12 @@ public interface ObjectApi {
     * @param metadata
     *           the metadata to create or update.
     *
-    * @return {@code true} if the metadata was successfully created or updated,
-    *         {@code false} if not.
     */
    @Named("object:updateMetadata")
    @POST
    @Path("/{objectName}")
    @Produces("")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean updateHeaders(@PathParam("objectName") String objectName,
+   void updateHeaders(@PathParam("objectName") String objectName,
          @BinderParam(BindToHeaders.class) Map<String, String> metadata);
 
    /**
@@ -273,16 +264,13 @@ public interface ObjectApi {
     * @param sourceObject
     *           the source object name.
     *
-    * @return {@code true} if the object was successfully copied, {@code false} if not.
-    *
     * @throws KeyNotFoundException if the source or destination container do not exist.
     */
    @Named("object:copy")
    @PUT
    @Path("/{destinationObject}")
    @Headers(keys = OBJECT_COPY_FROM, values = "/{sourceContainer}/{sourceObject}")
-   @Fallback(FalseOnContainerNotFound.class)
-   boolean copy(@PathParam("destinationObject") String destinationObject,
+   void copy(@PathParam("destinationObject") String destinationObject,
                 @PathParam("sourceContainer") String sourceContainer,
                 @PathParam("sourceObject") String sourceObject);
 
@@ -303,16 +291,13 @@ public interface ObjectApi {
     * @param objectMetadata
     *           Unprefixed/unescaped metadata, such as Content-Disposition
     *
-    * @return {@code true} if the object was successfully copied, {@code false} if not.
-    *
     * @throws KeyNotFoundException if the source or destination container do not exist.
     */
    @Named("object:copy")
    @PUT
    @Path("/{destinationObject}")
    @Headers(keys = {OBJECT_COPY_FROM, OBJECT_COPY_FRESH_METADATA}, values = {"/{sourceContainer}/{sourceObject}", "True"})
-   @Fallback(FalseOnKeyNotFound.class)
-   boolean copy(@PathParam("destinationObject") String destinationObject,
+   void copy(@PathParam("destinationObject") String destinationObject,
          @PathParam("sourceContainer") String sourceContainer,
          @PathParam("sourceObject") String sourceObject,
          @BinderParam(BindObjectMetadataToHeaders.class) Map<String, String> userMetadata,
@@ -336,16 +321,13 @@ public interface ObjectApi {
     * @param objectMetadata
     *           Unprefixed/unescaped metadata, such as Content-Disposition
     *
-    * @return {@code true} if the object was successfully copied, {@code false} if not.
-    *
     * @throws KeyNotFoundException if the source or destination container do not exist.
     */
    @Named("object:copy")
    @PUT
    @Path("/{destinationObject}")
    @Headers(keys = OBJECT_COPY_FROM, values = "/{sourceContainer}/{sourceObject}")
-   @Fallback(FalseOnKeyNotFound.class)
-   boolean copyAppendMetadata(@PathParam("destinationObject") String destinationObject,
+   void copyAppendMetadata(@PathParam("destinationObject") String destinationObject,
          @PathParam("sourceContainer") String sourceContainer,
          @PathParam("sourceObject") String sourceObject,
          @BinderParam(BindObjectMetadataToHeaders.class) Map<String, String> userMetadata,

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java
index 3841b33..4448422 100644
--- a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java
+++ b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java
@@ -52,7 +52,7 @@ public class AccountApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
 
          Map<String, String> meta = ImmutableMap.of("MyAdd1", "foo", "MyAdd2", "bar");
 
-         assertTrue(accountApi.updateMetadata(meta));
+         accountApi.updateMetadata(meta);
 
          accountHasMetadata(accountApi, meta);
       }
@@ -64,7 +64,7 @@ public class AccountApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
 
          Map<String, String> meta = ImmutableMap.of("MyDelete1", "foo", "MyDelete2", "bar");
 
-         assertTrue(accountApi.updateMetadata(meta));
+         accountApi.updateMetadata(meta);
          accountHasMetadata(accountApi, meta);
 
          assertTrue(accountApi.deleteMetadata(meta));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
index 84d08fe..8069770 100644
--- a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
+++ b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
@@ -77,7 +77,7 @@ public class AccountApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
 
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getAccountApi("DFW").updateMetadata(metadata));
+         api.getAccountApi("DFW").updateMetadata(metadata);
 
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);
@@ -99,7 +99,7 @@ public class AccountApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
 
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getAccountApi("DFW").updateTemporaryUrlKey("foobar"));
+         api.getAccountApi("DFW").updateTemporaryUrlKey("foobar");
 
          assertEquals(server.getRequestCount(), 2);
          assertAuthentication(server);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
index 7e0d398..a2e2a34 100644
--- a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
+++ b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
@@ -124,7 +124,7 @@ public class ContainerApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
          assertEquals(container.getName(), name);
          assertTrue(container.getMetadata().isEmpty());
 
-         assertNotNull(api.getContainerApi(regionId).update(name, opts));
+         api.getContainerApi(regionId).update(name, opts);
 
          Container updatedContainer = api.getContainerApi(regionId).get(name);
          assertNotNull(updatedContainer);
@@ -144,7 +144,7 @@ public class ContainerApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
 
          assertThat(containerApi.get(name).getAnybodyRead().get()).isFalse();
 
-         assertThat(containerApi.update(name, new UpdateContainerOptions().anybodyRead())).isTrue();
+         containerApi.update(name, new UpdateContainerOptions().anybodyRead());
          assertThat(containerApi.get(name).getAnybodyRead().get()).isTrue();
 
          assertThat(containerApi.deleteIfEmpty(name)).isTrue();
@@ -165,7 +165,7 @@ public class ContainerApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
 
       for (String regionId : regions) {
          ContainerApi containerApi = api.getContainerApi(regionId);
-         assertTrue(containerApi.updateMetadata(name, meta));
+         containerApi.updateMetadata(name, meta);
          containerHasMetadata(containerApi, name, meta);
       }
    }
@@ -176,7 +176,7 @@ public class ContainerApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
       for (String regionId : regions) {
          ContainerApi containerApi = api.getContainerApi(regionId);
          // update
-         assertTrue(containerApi.updateMetadata(name, meta));
+         containerApi.updateMetadata(name, meta);
          containerHasMetadata(containerApi, name, meta);
          // delete
          assertTrue(containerApi.deleteMetadata(name, meta));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
index 6b3ef66..c158b71 100644
--- a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
+++ b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
@@ -259,7 +259,7 @@ public class ContainerApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
 
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").updateMetadata("myContainer", metadata));
+         api.getContainerApi("DFW").updateMetadata("myContainer", metadata);
 
          assertEquals(server.getRequestCount(), 2);
          assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
@@ -315,25 +315,6 @@ public class ContainerApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
       }
    }
 
-   public void testAlreadyDeleted() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").deleteIfEmpty("myContainer"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "DELETE /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void testDeleteWhenNotEmpty() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json"))));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
index 6b7f2a5..dc5b4c1 100644
--- a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
+++ b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
@@ -132,7 +132,7 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
          checkObject(object);
 
          // check the copy operation
-         assertTrue(destApi.copy(destinationObject, sourceContainer, sourceObjectName));
+         destApi.copy(destinationObject, sourceContainer, sourceObjectName);
          assertNotNull(destApi.get(destinationObject));
 
          // now get a real SwiftObject
@@ -191,9 +191,9 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
          checkObject(object);
 
          // check the copy append metadata operation
-         assertTrue(destApi.copyAppendMetadata(destinationObject, sourceContainer, sourceObjectName,
+         destApi.copyAppendMetadata(destinationObject, sourceContainer, sourceObjectName,
                ImmutableMap.<String, String>of("additionalUserMetakey", "additionalUserMetavalue"),
-               ImmutableMap.of("Content-Disposition", "attachment; filename=\"updatedname.txt\"")));
+               ImmutableMap.of("Content-Disposition", "attachment; filename=\"updatedname.txt\""));
 
          // now get a real SwiftObject
          SwiftObject destSwiftObject = destApi.get(destinationObject);
@@ -217,9 +217,9 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
          assertEquals(destSwiftObject.getPayload().getContentMetadata().getContentDisposition(), "attachment; filename=\"updatedname.txt\"");
 
          // check the copy replace metadata operation
-         assertTrue(destApi.copy(destinationObject, sourceContainer, sourceObjectName,
+         destApi.copy(destinationObject, sourceContainer, sourceObjectName,
                ImmutableMap.<String, String>of("key3", "value3"),
-               ImmutableMap.of("Content-Disposition", "attachment; filename=\"updatedname.txt\"")));
+               ImmutableMap.of("Content-Disposition", "attachment; filename=\"updatedname.txt\""));
 
          // now get a real SwiftObject
          destSwiftObject = destApi.get(destinationObject);
@@ -281,7 +281,7 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
          ObjectApi objectApi = api.getObjectApi(regionId, containerName);
 
          Map<String, String> meta = ImmutableMap.of("MyAdd1", "foo", "MyAdd2", "bar");
-         assertTrue(objectApi.updateMetadata(name, meta));
+         objectApi.updateMetadata(name, meta);
 
          SwiftObject object = objectApi.get(name);
          for (Entry<String, String> entry : meta.entrySet()) {
@@ -337,7 +337,7 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
 
          Map<String, String> meta = ImmutableMap.of("MyDelete1", "foo", "MyDelete2", "bar");
 
-         assertTrue(objectApi.updateMetadata(name, meta));
+         objectApi.updateMetadata(name, meta);
          assertFalse(objectApi.get(name).getMetadata().isEmpty());
 
          assertTrue(objectApi.deleteMetadata(name, meta));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
index e5d715b..77305eb 100644
--- a/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
+++ b/apis/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
@@ -33,7 +33,6 @@ import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_METAD
 import static org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_REMOVE_METADATA_PREFIX;
 import static org.jclouds.util.Strings2.toStringAndClose;
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
@@ -363,7 +362,7 @@ public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
 
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", "myContainer").updateMetadata("myObject", metadata));
+         api.getObjectApi("DFW", "myContainer").updateMetadata("myObject", metadata);
 
          assertEquals(server.getRequestCount(), 2);
          assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
@@ -387,7 +386,7 @@ public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
 
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", "myContainer").updateMetadata("myObject", metadata));
+         api.getObjectApi("DFW", "myContainer").updateMetadata("myObject", metadata);
 
          assertEquals(server.getRequestCount(), 2);
          assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
@@ -472,8 +471,7 @@ public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
             .addHeader(SwiftHeaders.OBJECT_COPY_FROM, "/bar/foo.txt")));
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", "foo")
-               .copy("bar.txt", "bar", "foo.txt"));
+         api.getObjectApi("DFW", "foo").copy("bar.txt", "bar", "foo.txt");
 
          assertEquals(server.getRequestCount(), 2);
          assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
@@ -510,9 +508,9 @@ public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
 
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", "foo")
+         api.getObjectApi("DFW", "foo")
                .copy("bar.txt", "bar", "foo.txt", ImmutableMap.of("someUserHeader", "someUserMetadataValue"),
-                     ImmutableMap.of("Content-Disposition", "attachment; filename=\"fname.ext\"")));
+                     ImmutableMap.of("Content-Disposition", "attachment; filename=\"fname.ext\""));
 
          assertEquals(server.getRequestCount(), 2);
          assertEquals(server.takeRequest().getRequestLine(), "POST /tokens HTTP/1.1");
@@ -530,6 +528,7 @@ public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
       }
    }
 
+   @Test(expectedExceptions = KeyNotFoundException.class)
    public void testCopyObjectWithMetadataFail() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json"))));
@@ -538,9 +537,9 @@ public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
 
       try {
          SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertFalse(api.getObjectApi("DFW", "foo")
+         api.getObjectApi("DFW", "foo")
                .copy("bar.txt", "bar", "foo.txt", ImmutableMap.of("someUserHeader", "someUserMetadataValue"),
-                     ImmutableMap.of("Content-Disposition", "attachment; filename=\"fname.ext\"")));
+                     ImmutableMap.of("Content-Disposition", "attachment; filename=\"fname.ext\""));
       } finally {
          server.shutdown();
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java
index cec9cac..d640622 100644
--- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java
+++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/DatabaseApi.java
@@ -55,9 +55,8 @@ public interface DatabaseApi {
    @POST
    @Path("/databases")
    @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindCreateDatabaseToJson.class)
-   boolean create(@PayloadParam("database") String database);
+   void create(@PayloadParam("database") String database);
 
    /**
     * This operation creates a new database within the specified instance.
@@ -71,9 +70,8 @@ public interface DatabaseApi {
    @POST
    @Path("/databases")
    @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindCreateDatabaseToJson.class)
-   boolean create(@PayloadParam("database") String database, @PayloadParam("character_set") String character_set, @PayloadParam("collate") String collate);
+   void create(@PayloadParam("database") String database, @PayloadParam("character_set") String character_set, @PayloadParam("collate") String collate);
 
    /**
     * This operation deletes the specified database for the specified database instance.

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java
index 84d8f96..f64c75d 100644
--- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java
+++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/InstanceApi.java
@@ -111,7 +111,6 @@ public interface InstanceApi {
    @Path("/instances/{id}/root")
    @Consumes(MediaType.APPLICATION_JSON)
    @ResponseParser(ParsePasswordFromRootedInstance.class)
-   @Fallback(NullOnNotFoundOr404.class)
    String enableRoot(@PathParam("id") String instanceId);
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java
index 45f4ea2..97449a4 100644
--- a/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java
+++ b/apis/openstack-trove/src/main/java/org/jclouds/openstack/trove/v1/features/UserApi.java
@@ -69,9 +69,8 @@ public interface UserApi {
    @POST
    @Path("/users")
    @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindCreateUserToJson.class)
-   boolean create(@PayloadParam("users") Set<User> users);
+   void create(@PayloadParam("users") Set<User> users);
 
    /**
     * Create a database user by name, password, and database name. Simpler overload for {@link #create(String, Set)}.
@@ -85,9 +84,8 @@ public interface UserApi {
    @POST
    @Path("/users")
    @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindCreateUserToJson.class)
-   boolean create(@PayloadParam("name") String userName, @PayloadParam("password") String password, @PayloadParam("databaseName") String databaseName);
+   void create(@PayloadParam("name") String userName, @PayloadParam("password") String password, @PayloadParam("databaseName") String databaseName);
 
    /**
     * Create a database user by name, password, and database name. Simpler overload for {@link #create(String, Set)}.
@@ -102,9 +100,8 @@ public interface UserApi {
    @POST
    @Path("/users")
    @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindCreateUserToJson.class)
-   boolean create(@PayloadParam("name") String userName, @PayloadParam("password") String password, @PayloadParam("host") String host, @PayloadParam("databaseName") String databaseName);
+   void create(@PayloadParam("name") String userName, @PayloadParam("password") String password, @PayloadParam("host") String host, @PayloadParam("databaseName") String databaseName);
 
    /**
     * This operation grants access for the specified user to a database for the specified instance.
@@ -118,9 +115,8 @@ public interface UserApi {
    @PUT
    @Path("/users/{name}/databases")
    @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindGrantUserToJson.class)
-   boolean grant(@PathParam("name") String userName, @PayloadParam("databases") List<String> databases);
+   void grant(@PathParam("name") String userName, @PayloadParam("databases") List<String> databases);
 
    /**
     * This operation grants access for the specified user to a database for the specified instance. Simpler overload for {@link #create(String, Set)}.
@@ -134,9 +130,8 @@ public interface UserApi {
    @PUT
    @Path("/users/{name}/databases")
    @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(FalseOnNotFoundOr404.class)
    @MapBinder(BindGrantUserToJson.class)
-   boolean grant(@PathParam("name") String userName, @PayloadParam("databaseName") String databaseName);
+   void grant(@PathParam("name") String userName, @PayloadParam("databaseName") String databaseName);
 
    /**
     * This operation grants access for the specified user to a database for the specified instance.

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java
index e165afc..e00d90a 100644
--- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java
+++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiExpectTest.java
@@ -17,12 +17,10 @@
 package org.jclouds.openstack.trove.v1.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
 import java.util.List;
-import java.util.Set;
 
 import javax.ws.rs.core.MediaType;
 
@@ -48,24 +46,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest {
             HttpResponse.builder().statusCode(202).build() // response
             ).getDatabaseApi("RegionOne", "instanceId-1234-5678");
 
-      boolean result = api.create("testingdb");
-      assertTrue(result);
-   }
-
-   public void testCreateDatabaseSimpleFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/databases");
-      DatabaseApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint)
-            .method("POST")
-            .payload(payloadFromResourceWithContentType("/database_create_simple_request.json", MediaType.APPLICATION_JSON))
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getDatabaseApi("RegionOne", "instanceId-1234-5678");
-
-      boolean result = api.create("testingdb");
-      assertFalse(result);
+      api.create("testingdb");
    }
 
    public void testCreateDatabase() {
@@ -80,24 +61,7 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest {
             HttpResponse.builder().statusCode(202).build() // response
             ).getDatabaseApi("RegionOne", "instanceId-1234-5678");
 
-      boolean result = api.create("testingdb", "utf8", "utf8_general_ci");
-      assertTrue(result);
-   }
-
-   public void testCreateDatabaseFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/databases");
-      DatabaseApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint)
-            .method("POST")
-            .payload(payloadFromResourceWithContentType("/database_create_request.json", MediaType.APPLICATION_JSON))
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getDatabaseApi("RegionOne", "instanceId-1234-5678");
-
-      boolean result = api.create("testingdb", "utf8", "utf8_general_ci");
-      assertFalse(result);
+      api.create("testingdb", "utf8", "utf8_general_ci");
    }
    
    public void testDeleteDatabase() {
@@ -115,21 +79,6 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest {
       assertTrue(result);
    }
    
-   public void testDeleteDatabaseFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/databases/db1");
-      DatabaseApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint) 
-            .method("DELETE")
-            .build(),
-            HttpResponse.builder().statusCode(404).build() // response
-            ).getDatabaseApi("RegionOne", "instanceId-1234-5678");
-
-      boolean result = api.delete("db1");
-      assertFalse(result);
-   }
-   
    public void testListDatabases() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/databases");
       DatabaseApi api = requestsSendResponses(
@@ -144,16 +93,4 @@ public class DatabaseApiExpectTest extends BaseTroveApiExpectTest {
       assertEquals(databases.iterator().next(), "anotherdb");
    }
    
-   public void testListDatabasesFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances/instanceId-1234-5678/databases");
-      DatabaseApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).payload(payloadFromResource("/database_list.json")).build()
-      ).getDatabaseApi("RegionOne", "instanceId-1234-5678");
-
-      Set<String> databases = api.list().toSet();
-      assertTrue(databases.isEmpty());
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java
index 57ef1a5..77e75ee 100644
--- a/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java
+++ b/apis/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/DatabaseApiLiveTest.java
@@ -105,7 +105,7 @@ public class DatabaseApiLiveTest extends BaseTroveApiLiveTest {
                assertNotNull(database);
                assertTrue(database.equals("livetest_db1") || database.equals("livetest_db2") || database.equals("livetest_db3") );
                assertTrue(databaseApi.delete(database));
-               assertTrue(databaseApi.create(database));
+               databaseApi.create(database);
             }
          }
       }


[4/4] jclouds git commit: JCLOUDS-691: Remove 404 fallbacks of PUT and POST calls from OpenStack APIs

Posted by na...@apache.org.
JCLOUDS-691: Remove 404 fallbacks of PUT and POST calls from OpenStack APIs


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

Branch: refs/heads/master
Commit: d83282ca532636b4d2d6d4b47c8f5e1f394332a2
Parents: 0cf13c6
Author: Reijhanniel Jearl Campos <de...@gmail.com>
Authored: Thu Feb 4 06:38:58 2016 +0800
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Feb 4 12:10:06 2016 +0100

----------------------------------------------------------------------
 .../features/AvailabilityZoneApiExpectTest.java |  25 +-
 .../v1/features/SnapshotApiExpectTest.java      | 109 -------
 .../cinder/v1/features/VolumeApiExpectTest.java |  73 -----
 .../v1/features/VolumeTypeApiExpectTest.java    |  13 -
 .../keystone/v2_0/extensions/RoleAdminApi.java  |   1 -
 .../v2_0/extensions/ServiceAdminApi.java        |   1 -
 .../v2_0/extensions/TenantAdminApi.java         |   9 +-
 .../keystone/v2_0/extensions/UserAdminApi.java  |   4 -
 .../keystone/v2_0/KeystoneApiExpectTest.java    |   9 -
 .../v2_0/extensions/RoleAdminApiMockTest.java   |  98 -------
 .../extensions/ServiceAdminApiMockTest.java     | 103 -------
 .../v2_0/extensions/TenantAdminApiMockTest.java | 127 --------
 .../v2_0/extensions/UserAdminApiMockTest.java   |  79 -----
 .../v2_0/features/ServiceApiExpectTest.java     |   7 -
 .../v2_0/features/TenantApiExpectTest.java      |  28 --
 .../v2_0/features/TokenApiExpectTest.java       |  52 ----
 .../v2_0/features/UserApiExpectTest.java        |  41 ---
 .../features/NovaEC2KeyPairApiExpectTest.java   |  16 -
 .../AllocateAndAddFloatingIpToNode.java         |  12 +-
 .../v2_0/extensions/FlavorExtraSpecsApi.java    |  24 +-
 .../nova/v2_0/extensions/FloatingIPApi.java     |   6 +-
 .../nova/v2_0/extensions/SecurityGroupApi.java  |   3 -
 .../nova/v2_0/extensions/ServerAdminApi.java    |  31 +-
 .../nova/v2_0/extensions/VolumeTypeApi.java     |   6 +-
 .../openstack/nova/v2_0/features/FlavorApi.java |   2 -
 .../openstack/nova/v2_0/features/ImageApi.java  |   7 +-
 .../openstack/nova/v2_0/features/ServerApi.java |   2 -
 .../compute/NovaComputeServiceExpectTest.java   |  16 -
 .../extensions/AdminActionsApiExpectTest.java   | 182 +-----------
 .../extensions/AdminActionsApiLiveTest.java     |  24 +-
 .../AvailabilityZoneApiExpectTest.java          |  29 --
 .../v2_0/extensions/ConsolesApiMockTest.java    |  53 ----
 .../FlavorExtraSpecsApiExpectTest.java          |  42 +--
 .../extensions/FlavorExtraSpecsApiLiveTest.java |   4 +-
 .../extensions/FloatingIPApiExpectTest.java     |  51 ----
 .../extensions/FloatingIPPoolApiExpectTest.java |  15 -
 .../HostAdministrationApiExpectTest.java        |  28 --
 .../extensions/HostAggregateApiExpectTest.java  |  22 --
 .../v2_0/extensions/HypervisorApiMockTest.java  |  26 --
 .../v2_0/extensions/KeyPairApiExpectTest.java   |  33 ---
 .../v2_0/extensions/QuotaApiExpectTest.java     |  36 ---
 .../extensions/SecurityGroupApiExpectTest.java  |  34 ---
 .../ServerWithSecurityGroupsApiExpectTest.java  |  12 -
 .../VirtualInterfaceApiExpectTest.java          |  12 -
 .../v2_0/extensions/VolumeApiExpectTest.java    | 138 ---------
 .../VolumeAttachmentApiExpectTest.java          |  55 ----
 .../extensions/VolumeTypeApiExpectTest.java     |  66 +----
 .../v2_0/extensions/VolumeTypeApiLiveTest.java  |   4 +-
 .../v2_0/features/ExtensionApiExpectTest.java   |  34 ---
 .../nova/v2_0/features/FlavorApiExpectTest.java |  34 ---
 .../nova/v2_0/features/ImageApiExpectTest.java  | 155 ----------
 .../nova/v2_0/features/ServerApiExpectTest.java | 294 -------------------
 .../blobstore/RegionScopedSwiftBlobStore.java   |   5 +-
 .../openstack/swift/v1/features/AccountApi.java |  12 +-
 .../swift/v1/features/ContainerApi.java         |  12 +-
 .../openstack/swift/v1/features/ObjectApi.java  |  28 +-
 .../swift/v1/features/AccountApiLiveTest.java   |   4 +-
 .../swift/v1/features/AccountApiMockTest.java   |   4 +-
 .../swift/v1/features/ContainerApiLiveTest.java |   8 +-
 .../swift/v1/features/ContainerApiMockTest.java |  21 +-
 .../swift/v1/features/ObjectApiLiveTest.java    |  14 +-
 .../swift/v1/features/ObjectApiMockTest.java    |  17 +-
 .../trove/v1/features/DatabaseApi.java          |   6 +-
 .../trove/v1/features/InstanceApi.java          |   1 -
 .../openstack/trove/v1/features/UserApi.java    |  15 +-
 .../v1/features/DatabaseApiExpectTest.java      |  67 +----
 .../trove/v1/features/DatabaseApiLiveTest.java  |   2 +-
 .../trove/v1/features/FlavorApiExpectTest.java  |  54 +---
 .../v1/features/InstanceApiExpectTest.java      |  85 +-----
 .../trove/v1/features/UserApiExpectTest.java    | 177 +----------
 70 files changed, 137 insertions(+), 2682 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/AvailabilityZoneApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/AvailabilityZoneApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/AvailabilityZoneApiExpectTest.java
index b1c07fa..e201287 100644
--- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/AvailabilityZoneApiExpectTest.java
+++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/AvailabilityZoneApiExpectTest.java
@@ -16,6 +16,11 @@
  */
 package org.jclouds.openstack.cinder.v1.features;
 
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+
+import java.net.URI;
+
 import com.google.common.collect.Iterables;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.cinder.v1.domain.AvailabilityZone;
@@ -23,13 +28,6 @@ import org.jclouds.openstack.cinder.v1.extensions.AvailabilityZoneApi;
 import org.jclouds.openstack.cinder.v1.internal.BaseCinderApiExpectTest;
 import org.testng.annotations.Test;
 
-import java.net.URI;
-import java.util.Set;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
 @Test(groups = "unit", testName = "AvailabilityZoneApiExpectTest")
 public class AvailabilityZoneApiExpectTest extends BaseCinderApiExpectTest {
 
@@ -49,19 +47,6 @@ public class AvailabilityZoneApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(availabilityZoneActual, availabilityZoneExpected);
    }
 
-   public void testListAvailabilityZonesFail() throws Exception {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/os-availability-zone");
-      AvailabilityZoneApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getAvailabilityZoneApi("RegionOne");
-
-      Set<? extends AvailabilityZone> availabilityZones = api.list().toSet();
-      assertTrue(availabilityZones.isEmpty());
-   }
-
    protected AvailabilityZone getTestAvailabilityZone() {
       return AvailabilityZone.builder()
             .name("nova")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java
index d8813e3..11ecca1 100644
--- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java
+++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/SnapshotApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.cinder.v1.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -35,8 +33,6 @@ import org.jclouds.openstack.cinder.v1.domain.SnapshotExtendedAttributes;
 import org.jclouds.openstack.cinder.v1.domain.Volume;
 import org.jclouds.openstack.cinder.v1.internal.BaseCinderApiExpectTest;
 import org.jclouds.openstack.cinder.v1.options.CreateSnapshotOptions;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableSet;
@@ -63,19 +59,6 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(snapshots, ImmutableSet.of(testSnapshot()));
    }
 
-   public void testListSnapshotsFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots");
-      SnapshotApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getSnapshotApi("RegionOne");
-
-      Set<? extends Snapshot> snapshots = api.list().toSet();
-      assertTrue(snapshots.isEmpty());
-   }
-
    public void testListSnapshotsInDetail() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/detail");
       SnapshotApi api = requestsSendResponses(
@@ -98,19 +81,6 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(snappy.getSize(), 1);
    }
 
-   public void testListSnapshotsInDetailFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/detail");
-      SnapshotApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getSnapshotApi("RegionOne");
-
-      Set<? extends Snapshot> snapshots = api.listInDetail().toSet();
-      assertTrue(snapshots.isEmpty());
-   }
-
    public void testGetSnapshot() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/67d03df1-ce5d-4ba7-adbe-492ceb80170b");
       SnapshotApi api = requestsSendResponses(
@@ -124,18 +94,6 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(snapshot, testSnapshotDetailed());
    }
 
-   public void testGetSnapshotFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/67d03df1-ce5d-4ba7-adbe-492ceb80170b");
-      SnapshotApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getSnapshotApi("RegionOne");
-
-      assertNull(api.get("67d03df1-ce5d-4ba7-adbe-492ceb80170b"));
-   }
-
    public void testCreateSnapshot() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots");
       SnapshotApi api = requestsSendResponses(
@@ -157,27 +115,6 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(snapshot, testSnapshotCreate());
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testCreateSnapshotVolumeNotFoundFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots");
-      SnapshotApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint)
-                  .method("POST")
-                  .payload(payloadFromResourceWithContentType("/snapshot_create.json", MediaType.APPLICATION_JSON))
-                  .build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getSnapshotApi("RegionOne");
-
-      CreateSnapshotOptions options = CreateSnapshotOptions.Builder
-            .name("jclouds-test-snapshot")
-            .description("jclouds test snapshot")
-            .force();
-
-      api.create("ea6f70ef-2784-40b9-9d14-d7f33c507c3f", options);
-   }
-
    @Test(expectedExceptions = IllegalStateException.class)
    public void testCreateSnapshotVolumeIllegalStateFail() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots");
@@ -204,27 +141,6 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest {
       api.create("ea6f70ef-2784-40b9-9d14-d7f33c507c3f", options);
    }
 
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testCreateSnapshotFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots");
-      SnapshotApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint)
-                  .method("POST")
-                  .payload(payloadFromResourceWithContentType("/snapshot_create.json", MediaType.APPLICATION_JSON))
-                  .build(),
-            HttpResponse.builder().statusCode(401).build()
-      ).getSnapshotApi("RegionOne");
-
-      CreateSnapshotOptions options = CreateSnapshotOptions.Builder
-            .name("jclouds-test-snapshot")
-            .description("jclouds test snapshot")
-            .force();
-
-      api.create("ea6f70ef-2784-40b9-9d14-d7f33c507c3f", options);
-   }
-
    public void testDeleteSnapshot() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/67d03df1-ce5d-4ba7-adbe-492ceb80170b");
       SnapshotApi api = requestsSendResponses(
@@ -237,31 +153,6 @@ public class SnapshotApiExpectTest extends BaseCinderApiExpectTest {
       assertTrue(api.delete("67d03df1-ce5d-4ba7-adbe-492ceb80170b"));
    }
 
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testDeleteSnapshotFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/67d03df1-ce5d-4ba7-adbe-492ceb80170b");
-      SnapshotApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(401).build()
-      ).getSnapshotApi("RegionOne");
-
-      api.delete("67d03df1-ce5d-4ba7-adbe-492ceb80170b");
-   }
-
-   public void testDeleteSnapshotNotFoundFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/67d03df1-ce5d-4ba7-adbe-492ceb80170b");
-      SnapshotApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getSnapshotApi("RegionOne");
-
-      assertFalse(api.delete("67d03df1-ce5d-4ba7-adbe-492ceb80170b"));
-   }
-
    @Test(expectedExceptions = IllegalStateException.class)
    public void testDeleteSnapshotIllegalStateFail() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/snapshots/67d03df1-ce5d-4ba7-adbe-492ceb80170b");

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java
index ef26f7e..d309f2d 100644
--- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java
+++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.cinder.v1.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -33,7 +31,6 @@ import org.jclouds.openstack.cinder.v1.domain.Volume;
 import org.jclouds.openstack.cinder.v1.domain.VolumeAttachment;
 import org.jclouds.openstack.cinder.v1.internal.BaseCinderApiExpectTest;
 import org.jclouds.openstack.cinder.v1.options.CreateVolumeOptions;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableSet;
@@ -59,19 +56,6 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(volumes, ImmutableSet.of(testVolume()));
    }
    
-   public void testListVolumesFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, 
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("RegionOne");
-
-      Set<? extends Volume> volumes = api.list().toSet();
-      assertTrue(volumes.isEmpty());
-   }
-
    public void testListVolumesInDetail() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes/detail");
       VolumeApi api = requestsSendResponses(
@@ -85,19 +69,6 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(volumes, ImmutableSet.of(testVolumeDetailed()));
    }
 
-   public void testListVolumesInDetailFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes/detail");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("RegionOne");
-
-      Set<? extends Volume> volumes = api.listInDetail().toSet();
-      assertTrue(volumes.isEmpty());
-   }
-
    public void testCreateVolume() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes");
       VolumeApi api = requestsSendResponses(
@@ -117,26 +88,6 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(volume, testVolumeCreate());
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testCreateVolumeFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint)
-               .endpoint(endpoint)
-               .method("POST")
-                  .payload(payloadFromResourceWithContentType("/volume_create.json", MediaType.APPLICATION_JSON))
-               .build(),
-            HttpResponse.builder().statusCode(404).payload(payloadFromResource("/volume_create_response.json")).build()
-      ).getVolumeApi("RegionOne");
-
-      CreateVolumeOptions options = CreateVolumeOptions.Builder
-            .name("jclouds-test-volume")
-            .description("description of test volume");
-      api.create(1, options);
-   }
-
    public void testGetVolume() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes/60761c60-0f56-4499-b522-ff13e120af10");
       VolumeApi api = requestsSendResponses(
@@ -156,18 +107,6 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(Iterables.getOnlyElement(volume.getAttachments()), testAttachment());
    }
 
-   public void testGetVolumeFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes/60761c60-0f56-4499-b522-ff13e120af10");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("RegionOne");
-
-      assertNull(api.get("60761c60-0f56-4499-b522-ff13e120af10"));
-   }
-
    public void testDeleteVolume() {
       URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes/60761c60-0f56-4499-b522-ff13e120af10");
       VolumeApi api = requestsSendResponses(
@@ -180,18 +119,6 @@ public class VolumeApiExpectTest extends BaseCinderApiExpectTest {
       assertTrue(api.delete("60761c60-0f56-4499-b522-ff13e120af10"));
    }
 
-   public void testDeleteVolumeFail() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/volumes/60761c60-0f56-4499-b522-ff13e120af10");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("RegionOne");
-
-      assertFalse(api.delete("60761c60-0f56-4499-b522-ff13e120af10"));
-   }
-   
    protected Volume testVolumeCreate() {
       return Volume.builder()
             .id("60761c60-0f56-4499-b522-ff13e120af10")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java
index d8c8b92..2166ef3 100644
--- a/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java
+++ b/apis/openstack-cinder/src/test/java/org/jclouds/openstack/cinder/v1/features/VolumeTypeApiExpectTest.java
@@ -17,7 +17,6 @@
 package org.jclouds.openstack.cinder.v1.features;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
 
 import java.net.URI;
 import java.util.Set;
@@ -65,18 +64,6 @@ public class VolumeTypeApiExpectTest extends BaseCinderApiExpectTest {
       assertEquals(type, testVolumeType());
    }
 
-   public void testGetVolumeTypeFailNotFound() {
-      URI endpoint = URI.create("http://172.16.0.1:8776/v1/50cdb4c60374463198695d9f798fa34d/types/X");
-      VolumeTypeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeTypeApi("RegionOne");
-
-      assertNull(api.get("X"));
-   }
-
    public VolumeType testVolumeType() {
       return VolumeType.builder()
             .id("1")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApi.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApi.java
index 68bc5c5..f164a4d 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApi.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApi.java
@@ -75,7 +75,6 @@ public interface RoleAdminApi {
    @SelectJson("role")
    @Produces(MediaType.APPLICATION_JSON)
    @WrapWith("role")
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    Role create(@PayloadParam("name") String name);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApi.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApi.java
index 01e3d3b..6de37c8 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApi.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApi.java
@@ -87,7 +87,6 @@ public interface ServiceAdminApi {
    @POST
    @SelectJson("OS-KSADM:service")
    @WrapWith("OS-KSADM:service")
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    Service create(@PayloadParam("name") String name, @PayloadParam("type") String type,
          @PayloadParam("description") String description);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApi.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApi.java
index a58f917..82c0591 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApi.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApi.java
@@ -27,7 +27,6 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.openstack.keystone.v2_0.domain.Tenant;
 import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
@@ -62,7 +61,6 @@ public interface TenantAdminApi {
    @POST
    @SelectJson("tenant")
    @Produces(MediaType.APPLICATION_JSON)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    Tenant create(@PayloadParam("name") String name);
 
@@ -75,7 +73,6 @@ public interface TenantAdminApi {
    @POST
    @SelectJson("tenant")
    @MapBinder(CreateTenantOptions.class)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    Tenant create(@PayloadParam("name") String name, CreateTenantOptions options);
 
@@ -100,20 +97,16 @@ public interface TenantAdminApi {
    @Path("/{id}")
    @SelectJson("tenant")
    @MapBinder(UpdateTenantOptions.class)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    Tenant update(@PathParam("id") String id, UpdateTenantOptions options);
 
    /**
     * Adds role to a user on a tenant
-    *
-    * @return true if successful
     */
    @Named("tenant:addRoleOnTenant")
    @PUT
    @Path("/{id}/users/{userId}/roles/OS-KSADM/{roleId}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean addRoleOnTenant(@PathParam("id") String tenantId, @PathParam("userId") String userId,
+   void addRoleOnTenant(@PathParam("id") String tenantId, @PathParam("userId") String userId,
          @PathParam("roleId") String roleId);
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApi.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApi.java
index 3a9ae91..0255505 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApi.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApi.java
@@ -26,7 +26,6 @@ import javax.ws.rs.PathParam;
 import javax.ws.rs.core.MediaType;
 
 import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.openstack.keystone.v2_0.domain.User;
 import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
@@ -60,7 +59,6 @@ public interface UserAdminApi {
    @Named("user:create")
    @POST
    @SelectJson("user")
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    User create(@PayloadParam("name") String name, @PayloadParam("password") String password);
 
@@ -73,7 +71,6 @@ public interface UserAdminApi {
    @POST
    @SelectJson("user")
    @MapBinder(CreateUserOptions.class)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    User create(@PayloadParam("name") String name,
          @PayloadParam("password") String password, CreateUserOptions options);
@@ -99,7 +96,6 @@ public interface UserAdminApi {
    @Path("/{id}")
    @SelectJson("user")
    @MapBinder(UpdateUserOptions.class)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    User update(@PathParam("id") String id, UpdateUserOptions options);
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/KeystoneApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/KeystoneApiExpectTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/KeystoneApiExpectTest.java
index b8c7be8..d51e2be 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/KeystoneApiExpectTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/KeystoneApiExpectTest.java
@@ -18,7 +18,6 @@ package org.jclouds.openstack.keystone.v2_0;
 
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
 
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -42,13 +41,5 @@ public class KeystoneApiExpectTest extends BaseKeystoneRestApiExpectTest<Keyston
       assertEquals(metadata, new ParseRackspaceApiMetadataTest().expected());
    }
 
-   public void testGetApiMetaDataFailNotFound() {
-      KeystoneApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            HttpRequest.builder().method("GET").endpoint(endpoint + "/v2.0/").addHeader("Accept", APPLICATION_JSON).build(),
-            HttpResponse.builder().statusCode(404).build());
-      assertNull(api.getApiMetadata());
-   }
-
 }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiMockTest.java
index 7b2fdea..e50cc2e 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/RoleAdminApiMockTest.java
@@ -17,9 +17,7 @@
 package org.jclouds.openstack.keystone.v2_0.extensions;
 
 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.util.Set;
@@ -30,7 +28,6 @@ import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
 import org.testng.annotations.Test;
 
 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;
@@ -73,32 +70,6 @@ public class RoleAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void listZeroRoles() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         RoleAdminApi roleAdminApi = keystoneApi.getRoleAdminApi().get();
-         FluentIterable<? extends Role> roles = roleAdminApi.list();
-
-         ImmutableList<? extends Role> roleList = roles.toList();
-
-         assertTrue(roleList.isEmpty());
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateRoleRequest = server.takeRequest();
-         assertEquals(updateRoleRequest.getRequestLine(), "GET /OS-KSADM/roles HTTP/1.1");
-
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void createRole() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -125,31 +96,6 @@ public class RoleAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void createRoleFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404).setBody(
-            stringFromResource("/role_create_response.json"))));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         RoleAdminApi roleAdminApi = keystoneApi.getRoleAdminApi().get();
-         Role testRole = roleAdminApi.create("jclouds-role");
-
-         assertNull(testRole);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest createRoleRequest = server.takeRequest();
-         assertEquals(createRoleRequest.getRequestLine(), "POST /OS-KSADM/roles HTTP/1.1");
-         assertEquals(new String(createRoleRequest.getBody()), "{\"role\":{\"name\":\"jclouds-role\"}}");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void getRole() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -178,29 +124,6 @@ public class RoleAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void getRoleFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         RoleAdminApi roleAdminApi = keystoneApi.getRoleAdminApi().get();
-         Role role = roleAdminApi.get("r1000");
-
-         assertNull(role);
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateRoleRequest = server.takeRequest();
-         assertEquals(updateRoleRequest.getRequestLine(), "GET /OS-KSADM/roles/r1000 HTTP/1.1");
-
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void deleteRole() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -223,25 +146,4 @@ public class RoleAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void deleteRoleFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         RoleAdminApi roleAdminApi = keystoneApi.getRoleAdminApi().get();
-         boolean success = roleAdminApi.delete("r1000");
-
-         assertFalse(success);
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateRoleRequest = server.takeRequest();
-         assertEquals(updateRoleRequest.getRequestLine(), "DELETE /OS-KSADM/roles/r1000 HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiMockTest.java
index 9cbc5ea..b68f8eb 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/ServiceAdminApiMockTest.java
@@ -17,10 +17,7 @@
 package org.jclouds.openstack.keystone.v2_0.extensions;
 
 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.util.Set;
 
@@ -32,7 +29,6 @@ import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
 import org.jclouds.openstack.v2_0.options.PaginationOptions;
 import org.testng.annotations.Test;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.squareup.okhttp.mockwebserver.MockResponse;
 import com.squareup.okhttp.mockwebserver.MockWebServer;
@@ -76,31 +72,6 @@ public class ServiceAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi>
       }
    }
 
-   public void listZeroServices() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         ServiceAdminApi serviceAdminApi = keystoneApi.getServiceAdminApi().get();
-         PagedIterable<? extends Service> services = serviceAdminApi.list();
-
-         ImmutableList<? extends Service> servicesList = services.concat().toList();
-         assertTrue(servicesList.isEmpty());
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateServiceRequest = server.takeRequest();
-         assertEquals(updateServiceRequest.getRequestLine(), "GET /OS-KSADM/services HTTP/1.1");
-
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void listServicesPage() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -157,34 +128,6 @@ public class ServiceAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi>
       }
    }
 
-   public void createServiceFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         ServiceAdminApi serviceAdminApi = keystoneApi.getServiceAdminApi().get();
-         Service testService = serviceAdminApi.create("jclouds-service-test", "jclouds-service-type",
-               "jclouds-service-description");
-
-         assertNull(testService);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest createServiceRequest = server.takeRequest();
-         assertEquals(createServiceRequest.getRequestLine(), "POST /OS-KSADM/services HTTP/1.1");
-         String bodyRequest = new String(createServiceRequest.getBody());
-         assertEquals(
-               bodyRequest,
-               "{\"OS-KSADM:service\":{\"name\":\"jclouds-service-test\",\"type\":\"jclouds-service-type\",\"description\":\"jclouds-service-description\"}}");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void getService() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -213,30 +156,6 @@ public class ServiceAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi>
       }
    }
 
-   public void getServiceFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         ServiceAdminApi serviceAdminApi = keystoneApi.getServiceAdminApi().get();
-         Service service = serviceAdminApi.get("s1000");
-
-         assertNull(service);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateServiceRequest = server.takeRequest();
-         assertEquals(updateServiceRequest.getRequestLine(), "GET /OS-KSADM/services/s1000 HTTP/1.1");
-
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void deleteService() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -258,26 +177,4 @@ public class ServiceAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi>
       }
    }
 
-   public void deleteServiceFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         ServiceAdminApi serviceAdminApi = keystoneApi.getServiceAdminApi().get();
-         boolean success = serviceAdminApi.delete("s1000");
-
-         assertFalse(success);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateServiceRequest = server.takeRequest();
-         assertEquals(updateServiceRequest.getRequestLine(), "DELETE /OS-KSADM/services/s1000 HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiMockTest.java
index 2daae12..4a052fd 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/TenantAdminApiMockTest.java
@@ -17,9 +17,7 @@
 package org.jclouds.openstack.keystone.v2_0.extensions;
 
 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 org.jclouds.openstack.keystone.v2_0.KeystoneApi;
 import org.jclouds.openstack.keystone.v2_0.domain.Tenant;
@@ -67,33 +65,6 @@ public class TenantAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void createTenantFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         TenantAdminApi tenantAdminApi = keystoneApi.getTenantAdminApi().get();
-         CreateTenantOptions createTenantOptions = CreateTenantOptions.Builder.description("jclouds-description")
-               .enabled(true);
-         Tenant testTenant = tenantAdminApi.create("jclouds-tenant", createTenantOptions);
-
-         assertNull(testTenant);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest createTenantRequest = server.takeRequest();
-         assertEquals(createTenantRequest.getRequestLine(), "POST /tenants HTTP/1.1");
-         assertEquals(new String(createTenantRequest.getBody()),
-               "{\"tenant\":{\"name\":\"jclouds-tenant\",\"description\":\"jclouds-description\",\"enabled\":true}}");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void updateTenant() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -124,34 +95,6 @@ public class TenantAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void updateTenantFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         TenantAdminApi tenantAdminApi = keystoneApi.getTenantAdminApi().get();
-         UpdateTenantOptions updateTenantOptions = UpdateTenantOptions.Builder
-               .description("jclouds-description-modified").enabled(false).name("jclouds-tenant-modified");
-         Tenant updatedTenant = tenantAdminApi.update("t1000", updateTenantOptions);
-
-         assertNull(updatedTenant);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateTenantRequest = server.takeRequest();
-         assertEquals(updateTenantRequest.getRequestLine(), "PUT /tenants/t1000 HTTP/1.1");
-         assertEquals(
-               new String(updateTenantRequest.getBody()),
-               "{\"tenant\":{\"name\":\"jclouds-tenant-modified\",\"description\":\"jclouds-description-modified\",\"enabled\":false}}");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void deleteTenant() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -173,29 +116,6 @@ public class TenantAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void deleteTenantFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         TenantAdminApi tenantAdminApi = keystoneApi.getTenantAdminApi().get();
-         boolean success = tenantAdminApi.delete("t1000");
-
-         assertFalse(success);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateTenantRequest = server.takeRequest();
-         assertEquals(updateTenantRequest.getRequestLine(), "DELETE /tenants/t1000 HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void addRoleOnTenant() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -218,30 +138,6 @@ public class TenantAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void addRoleOnTenantFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         TenantAdminApi tenantAdminApi = keystoneApi.getTenantAdminApi().get();
-         boolean success = tenantAdminApi.addRoleOnTenant("u1000", "t1000", "r1000");
-
-         assertFalse(success);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateTenantRequest = server.takeRequest();
-         assertEquals(updateTenantRequest.getRequestLine(),
-               "PUT /tenants/u1000/users/t1000/roles/OS-KSADM/r1000 HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void deleteRoleOnTenant() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -264,27 +160,4 @@ public class TenantAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void deleteRoleOnTenantFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         TenantAdminApi tenantAdminApi = keystoneApi.getTenantAdminApi().get();
-         boolean success = tenantAdminApi.deleteRoleOnTenant("t1000", "u1000", "r1000");
-
-         assertFalse(success);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateTenantRequest = server.takeRequest();
-         assertEquals(updateTenantRequest.getRequestLine(),
-               "DELETE /tenants/t1000/users/u1000/roles/OS-KSADM/r1000 HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiMockTest.java
index 86798e3..3b269c0 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/extensions/UserAdminApiMockTest.java
@@ -17,9 +17,7 @@
 package org.jclouds.openstack.keystone.v2_0.extensions;
 
 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 org.jclouds.openstack.keystone.v2_0.KeystoneApi;
 import org.jclouds.openstack.keystone.v2_0.domain.User;
@@ -68,33 +66,6 @@ public class UserAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void createUserFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         UserAdminApi userAdminApi = keystoneApi.getUserAdminApi().get();
-         CreateUserOptions createUserOptions = CreateUserOptions.Builder.email("john.smith@example.org").enabled(true);
-         User testUser = userAdminApi.create("jqsmith", "jclouds-password", createUserOptions);
-
-         assertNull(testUser);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest createUserRequest = server.takeRequest();
-         assertEquals(createUserRequest.getRequestLine(), "POST /users HTTP/1.1");
-         assertEquals(
-               new String(createUserRequest.getBody()),
-               "{\"user\":{\"name\":\"jqsmith\",\"password\":\"jclouds-password\",\"email\":\"john.smith@example.org\",\"enabled\":true}}");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void updateUser() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -125,34 +96,6 @@ public class UserAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void updateUserFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         UserAdminApi userAdminApi = keystoneApi.getUserAdminApi().get();
-         UpdateUserOptions updateUserOptions = UpdateUserOptions.Builder.email("john.smith.renamed@example.org")
-               .enabled(false).name("jqsmith-renamed").password("jclouds-password");
-         User updatedUser = userAdminApi.update("u1000", updateUserOptions);
-
-         assertNull(updatedUser);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateUserRequest = server.takeRequest();
-         assertEquals(updateUserRequest.getRequestLine(), "PUT /users/u1000 HTTP/1.1");
-         assertEquals(
-               new String(updateUserRequest.getBody()),
-               "{\"user\":{\"name\":\"jqsmith-renamed\",\"email\":\"john.smith.renamed@example.org\",\"password\":\"jclouds-password\",\"enabled\":false}}");
-      } finally {
-         server.shutdown();
-      }
-   }
-
    public void deleteUser() throws Exception {
       MockWebServer server = mockOpenStackServer();
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
@@ -174,26 +117,4 @@ public class UserAdminApiMockTest extends BaseOpenStackMockTest<KeystoneApi> {
       }
    }
 
-   public void deleteUserFail() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access_version_uids.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/admin_extensions.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      try {
-         KeystoneApi keystoneApi = api(server.getUrl("/").toString(), "openstack-keystone");
-         UserAdminApi userAdminApi = keystoneApi.getUserAdminApi().get();
-         boolean success = userAdminApi.delete("u1000");
-
-         assertFalse(success);
-
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertExtensions(server);
-         RecordedRequest updateUserRequest = server.takeRequest();
-         assertEquals(updateUserRequest.getRequestLine(), "DELETE /users/u1000 HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/ServiceApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/ServiceApiExpectTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/ServiceApiExpectTest.java
index 2e3a89e..22ca994 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/ServiceApiExpectTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/ServiceApiExpectTest.java
@@ -20,7 +20,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
 
 import java.util.Set;
 
@@ -57,10 +56,4 @@ public class ServiceApiExpectTest extends BaseKeystoneRestApiExpectTest<Keystone
       assertEquals(tenants, expected);
    }
 
-   public void testListTenantsFailNotFound() {
-      ServiceApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-               authenticatedGET().endpoint(endpoint + "/v2.0/tenants").build(),
-               HttpResponse.builder().statusCode(404).build()).getServiceApi();
-      assertTrue(api.listTenants().isEmpty());
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TenantApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TenantApiExpectTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TenantApiExpectTest.java
index aa827b1..0f930d3 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TenantApiExpectTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TenantApiExpectTest.java
@@ -20,8 +20,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 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.util.Set;
 
@@ -30,7 +28,6 @@ import org.jclouds.openstack.keystone.v2_0.KeystoneApi;
 import org.jclouds.openstack.keystone.v2_0.domain.Tenant;
 import org.jclouds.openstack.keystone.v2_0.internal.BaseKeystoneRestApiExpectTest;
 import org.jclouds.openstack.v2_0.options.PaginationOptions;
-import org.jclouds.rest.AuthorizationException;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableSet;
@@ -93,16 +90,6 @@ public class TenantApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneA
       assertEquals(api.list().concat().toSet(), expected);
    }
    
-   // this is not a compatible format of json per:
-   // http://docs.openstack.org/api/openstack-identity-service/2.0/content/Paginated_Collections-d1e325.html
-   @Test(enabled = false)
-   public void testListTenantsFailNotFound() {
-      TenantApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-               authenticatedGET().endpoint(endpoint + "/v2.0/tenants").build(), HttpResponse.builder().statusCode(404).build())
-               .getTenantApi().get();
-      assertTrue(api.list().isEmpty());
-   }
-
    public void testGetTenant() {
       TenantApi api = requestsSendResponses(
                keystoneAuthWithUsernameAndPasswordAndTenantName,
@@ -117,14 +104,6 @@ public class TenantApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneA
             build());
    }
 
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testListTenantsFailNotAuthorized() {
-      TenantApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-               authenticatedGET().endpoint(endpoint + "/v2.0/tenants/013ba41150a14830bec85ffe93353bcc").build(),
-               HttpResponse.builder().statusCode(401).build()).getTenantApi().get();
-      api.get("013ba41150a14830bec85ffe93353bcc");
-   }
-
    public void testGetTenantByName() {
       TenantApi api = requestsSendResponses(
                keystoneAuthWithUsernameAndPasswordAndTenantName,
@@ -139,11 +118,4 @@ public class TenantApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneA
             build());
    }
 
-   public void testGetTenantByNameFailNotFound() {
-      TenantApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-               authenticatedGET().endpoint(endpoint + "/v2.0/tenants?name=admin").build(),
-               HttpResponse.builder().statusCode(404).build()).getTenantApi().get();
-      assertNull(api.getByName("admin"));
-   }
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TokenApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TokenApiExpectTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TokenApiExpectTest.java
index e714643..87e15d5 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TokenApiExpectTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/TokenApiExpectTest.java
@@ -18,9 +18,7 @@ package org.jclouds.openstack.keystone.v2_0.features;
 
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 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.net.URI;
@@ -30,7 +28,6 @@ import org.jclouds.date.DateService;
 import org.jclouds.date.internal.SimpleDateFormatDateService;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
 import org.jclouds.openstack.keystone.v2_0.KeystoneApi;
 import org.jclouds.openstack.keystone.v2_0.domain.Endpoint;
 import org.jclouds.openstack.keystone.v2_0.domain.Role;
@@ -67,24 +64,6 @@ public class TokenApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneAp
                   .tenant(Tenant.builder().id("4cea93f5464b4f1c921fb3e0461d72b5").name("demo").enabled(true).build()).build());
    }
 
-   public void testGetTokenFailNotFound() {
-      TokenApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/tokens/sometokenorother").build(),
-            HttpResponse.builder().statusCode(404).build())
-            .getTokenApi().get();
-      assertNull(api.get("sometokenorother"));
-   }
-
-   @Test(expectedExceptions = HttpResponseException.class)
-   public void testGetTokenFail500() {
-      TokenApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/tokens/sometokenorother").build(),
-            HttpResponse.builder().statusCode(500).build()).getTokenApi().get();
-      api.get("sometokenorother");
-   }
-
    public void testGetUserOfToken() {
       TokenApi api = requestsSendResponses(
             keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
@@ -98,14 +77,6 @@ public class TokenApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneAp
             .build());
    }
 
-   public void testGetUserOfTokenFailNotFound() {
-      TokenApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/tokens/sometokenorother").build(),
-            HttpResponse.builder().statusCode(404).build()).getTokenApi().get();
-      assertNull(api.getUserOfToken("sometokenorother"));
-   }
-
    public void testCheckTokenIsValid() {
       TokenApi api = requestsSendResponses(
             keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
@@ -119,18 +90,6 @@ public class TokenApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneAp
       assertTrue(api.isValid("sometokenorother"));
    }
 
-   public void testCheckTokenIsValidFailNotValid() {
-      TokenApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            HttpRequest.builder().method("HEAD")
-                       .endpoint(endpoint + "/v2.0/tokens/sometokenorother")
-                       .addHeader("Accept", APPLICATION_JSON)
-                       .addHeader("X-Auth-Token", authToken)
-                       .build(),
-            HttpResponse.builder().statusCode(404).build()).getTokenApi().get();
-      assertFalse(api.isValid("sometokenorother"));
-   }
-
    @Test
    public void testGetEndpointsForToken() {
       TokenApi api = requestsSendResponses(
@@ -147,15 +106,4 @@ public class TokenApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneAp
       ));
    }
 
-   @Test
-   public void testGetEndpointsForTokenFailNotFound() {
-      TokenApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/tokens/XXXXXX/endpoints").build(),
-            HttpResponse.builder().statusCode(404).build())
-            .getTokenApi().get();
-      assertTrue(api.listEndpointsForToken("XXXXXX").isEmpty());
-   }
-
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/UserApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/UserApiExpectTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/UserApiExpectTest.java
index fe12f93..18fee19 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/UserApiExpectTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/features/UserApiExpectTest.java
@@ -20,7 +20,6 @@ import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 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.util.Set;
@@ -82,14 +81,6 @@ public class UserApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneApi
       assertEquals(users.toSet(), expectedUsers);
    }
    
-   public void testListUsersNotFound() {
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/users").build(),
-            HttpResponse.builder().statusCode(404).build()).getUserApi().get();
-      assertEquals( api.list(new PaginationOptions()).size(), 0);
-   }
-
    @Test(expectedExceptions = AuthorizationException.class)
    public void testListUsersFailNotAuth() {
       UserApi api = requestsSendResponses(
@@ -111,14 +102,6 @@ public class UserApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneApi
             tenantId("ab1da202f5774cceb5da2aeff1f0aa87").build());
    }
 
-   public void testGetUserFailNotFound() {
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/users/f021dfd758eb44a89f1c57c8ef3be8e2").build(),
-            HttpResponse.builder().statusCode(404).build()).getUserApi().get();
-      assertNull(api.get("f021dfd758eb44a89f1c57c8ef3be8e2"));
-   }
-
    public void testGetUserByName() {
       UserApi api = requestsSendResponses(
             keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
@@ -131,14 +114,6 @@ public class UserApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneApi
             tenantId("ab1da202f5774cceb5da2aeff1f0aa87").build());
    }
 
-   public void testGetUserByNameFailNotFound() {
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/users?name=fred").build(),
-            HttpResponse.builder().statusCode(404).build()).getUserApi().get();
-      assertNull(api.getByName("fred"));
-   }
-   
    public void testListRolesOfUser() {
       UserApi api = requestsSendResponses(
             keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
@@ -153,14 +128,6 @@ public class UserApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneApi
       ));
    }
 
-   public void testListRolesOfUserFailNotFound() {
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/users/4f6c1c9ba993495ead7d2eb2192e284f/roles").build(),
-            HttpResponse.builder().statusCode(404).build()).getUserApi().get();
-      assertTrue(api.listRolesOfUser("4f6c1c9ba993495ead7d2eb2192e284f").isEmpty());
-   }
-
    @Test(expectedExceptions = HttpResponseException.class)
    public void testListRolesOfUserFailNotImplemented() {
       UserApi api = requestsSendResponses(
@@ -185,12 +152,4 @@ public class UserApiExpectTest extends BaseKeystoneRestApiExpectTest<KeystoneApi
          Role.builder().id("6ea17ddd37a6447794cb0e164d4db894").name("KeystoneAdmin").build()));
    }
 
-   public void testListRolesOfUserInTenantFailNotFound() {
-      UserApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            authenticatedGET().endpoint(endpoint + "/v2.0/users/3f6c1c9ba993495ead7d2eb2192e284f/roles").build(),
-            HttpResponse.builder().statusCode(404).build()).getUserApi().get();
-      assertTrue(api.listRolesOfUser("3f6c1c9ba993495ead7d2eb2192e284f").isEmpty());
-   }
-   
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova-ec2/src/test/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/test/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApiExpectTest.java b/apis/openstack-nova-ec2/src/test/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApiExpectTest.java
index c01110d..2c1d307 100644
--- a/apis/openstack-nova-ec2/src/test/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApiExpectTest.java
+++ b/apis/openstack-nova-ec2/src/test/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApiExpectTest.java
@@ -22,7 +22,6 @@ import org.jclouds.ec2.domain.KeyPair;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.nova.ec2.internal.BaseNovaEC2RestApiExpectTest;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 public class NovaEC2KeyPairApiExpectTest extends BaseNovaEC2RestApiExpectTest {
@@ -43,21 +42,6 @@ public class NovaEC2KeyPairApiExpectTest extends BaseNovaEC2RestApiExpectTest {
       assertEquals(result.getSha1OfPrivateKey(), "e3:fd:de:f6:4c:36:7d:9b:8f:2f:4c:20:f8:ae:b0:ea");
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testImportKeyPairFailsNotFound() {
-      NovaEC2KeyPairApi client = requestsSendResponses(
-            describeAvailabilityZonesRequest,
-            describeAvailabilityZonesResponse,
-            HttpRequest.builder().method("POST")
-                  .endpoint("http://localhost:8773/services/Cloud/")
-                  .addHeader("Host", "localhost:8773")
-                  .payload(payloadFromStringWithContentType("Action=ImportKeyPair&KeyName=mykey&PublicKeyMaterial=c3NoLXJzYSBBQQ%3D%3D&Signature=wOOKOlDfJezRkx7NKcyOyaBQuY7PoVE3HFa9495RL7s%3D&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-04-16T15%3A54%3A08.897Z&Version=2009-04-04&AWSAccessKeyId=identity", "application/x-www-form-urlencoded")).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getKeyPairApi().get();
-
-      client.importKeyPairInRegion(null, "mykey", "ssh-rsa AA");
-   }
-
    @Test(expectedExceptions = IllegalStateException.class)
    public void testImportKeyPairFailsAlreadyExists() {
       NovaEC2KeyPairApi client = requestsSendResponses(

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java
index 36e1050..7689b53 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNode.java
@@ -19,6 +19,7 @@ package org.jclouds.openstack.nova.v2_0.compute.functions;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING;
+
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
@@ -38,6 +39,7 @@ import org.jclouds.openstack.nova.v2_0.domain.FloatingIP;
 import org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId;
 import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi;
 import org.jclouds.rest.InsufficientResourcesException;
+import org.jclouds.rest.ResourceNotFoundException;
 
 import com.google.common.base.Function;
 import com.google.common.base.Objects;
@@ -114,8 +116,9 @@ public class AllocateAndAddFloatingIpToNode implements
             try {
                logger.debug(">> allocating floating IP from pool %s for node(%s)", poolName, nodeID);
                ip = floatingIpApi.allocateFromPool(poolName);
-               if (ip != null)
-                  return Optional.of(ip);
+               return Optional.of(ip);
+            } catch (ResourceNotFoundException ex) {
+               logger.trace("<< [%s] failed to allocate floating IP from pool %s for node(%s)", ex.getMessage(), poolName, nodeID);
             } catch (InsufficientResourcesException ire) {
                logger.trace("<< [%s] failed to allocate floating IP from pool %s for node(%s)", ire.getMessage(), poolName, nodeID);
             }
@@ -126,8 +129,9 @@ public class AllocateAndAddFloatingIpToNode implements
       try {
          logger.debug(">> creating floating IP for node(%s)", nodeID);
          ip = floatingIpApi.create();
-         if (ip != null)
-            return Optional.of(ip);
+         return Optional.of(ip);
+      } catch (ResourceNotFoundException ex) {
+         logger.trace("<< [%s] failed to create floating IP for node(%s)", ex.getMessage(), nodeID);
       } catch (InsufficientResourcesException ire) {
          logger.trace("<< [%s] failed to create floating IP for node(%s)", ire.getMessage(), nodeID);
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java
index abf6f4d..02ab260 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApi.java
@@ -81,15 +81,14 @@ public interface FlavorExtraSpecsApi {
    @Path("/{id}/os-extra_specs")
    @Produces(MediaType.APPLICATION_JSON)
    @MapBinder(BindToJsonPayload.class)
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean updateMetadata(@PathParam("id") String flavorId,
+   void updateMetadata(@PathParam("id") String flavorId,
          @PayloadParam("extra_specs") Map<String, String> specs);
 
    /**
     * Return a single extra spec value
     *
-    * @param id  the id of the flavor to modify
-    * @param key the extra spec key to retrieve
+    * @param flavorId   the id of the flavor to modify
+    * @param key        the extra spec key to retrieve
     */
    @Named("flavorExtraSpecs:getMetadataKey")
    @GET
@@ -102,29 +101,28 @@ public interface FlavorExtraSpecsApi {
    /**
     * Creates or updates a single extra spec value
     *
-    * @param id    the id of the flavor to modify
-    * @param key   the extra spec key (when creating ensure this does not include whitespace or
-    *              other difficult characters)
-    * @param value the value to associate with the key
+    * @param flavorId   the id of the flavor to modify
+    * @param key        the extra spec key (when creating ensure this does not include whitespace or
+    *                   other difficult characters)
+    * @param value      the value to associate with the key
     */
    @Named("flavorExtraSpecs:updateMetadataEntry")
    @PUT
    @Path("/{id}/os-extra_specs/{key}")
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("%7B\"{key}\":\"{value}\"%7D")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean updateMetadataEntry(@PathParam("id") String flavorId,
+   void updateMetadataEntry(@PathParam("id") String flavorId,
          @PathParam("key") @PayloadParam("key") String key, @PayloadParam("value") String value);
 
    /**
     * Deletes an extra spec
     *
-    * @param id  the id of the flavor to modify
-    * @param key the extra spec key to delete
+    * @param flavorId   the id of the flavor to modify
+    * @param key        the extra spec key to delete
     */
    @Named("flavorExtraSpecs:deleteMetadataKey")
    @DELETE
    @Path("/{id}/os-extra_specs/{key}")
    @Fallback(FalseOnNotFoundOr404.class)
-   Boolean deleteMetadataKey(@PathParam("id") String flavorId, @PathParam("key") String key);
+   boolean deleteMetadataKey(@PathParam("id") String flavorId, @PathParam("key") String key);
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java
index 67f78d7..c37aa90 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApi.java
@@ -86,7 +86,6 @@ public interface FloatingIPApi {
    @SelectJson("floating_ip")
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{}")
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    FloatingIP create();
 
@@ -103,7 +102,6 @@ public interface FloatingIPApi {
    @SelectJson("floating_ip")
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("%7B\"pool\":\"{pool}\"%7D")
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    FloatingIP allocateFromPool(@PayloadParam("pool") String pool);
 
@@ -121,7 +119,7 @@ public interface FloatingIPApi {
    /**
     * Adds a Floating IP address to a Server
     *
-    * @param id
+    * @param serverId
     *           the server id
     * @param address
     *           the IP address to add
@@ -138,7 +136,7 @@ public interface FloatingIPApi {
    /**
     * Removes a Floating IP address from a Server
     *
-    * @param id
+    * @param serverId
     *           the server id
     * @param address
     *           the IP address to remove

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java
index 44afc36..6435b1d 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApi.java
@@ -91,7 +91,6 @@ public interface SecurityGroupApi {
    @SelectJson("security_group")
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("%7B\"security_group\":%7B\"name\":\"{name}\",\"description\":\"{description}\"%7D%7D")
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    SecurityGroup createWithDescription(@PayloadParam("name") String name,
          @PayloadParam("description") String description);
@@ -118,7 +117,6 @@ public interface SecurityGroupApi {
    @SelectJson("security_group_rule")
    @Produces(MediaType.APPLICATION_JSON)
    @MapBinder(BindSecurityGroupRuleToJsonPayload.class)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    SecurityGroupRule createRuleAllowingCidrBlock(
          @PayloadParam("parent_group_id") String parentGroup, Ingress ip_protocol,
@@ -135,7 +133,6 @@ public interface SecurityGroupApi {
    @SelectJson("security_group_rule")
    @Produces(MediaType.APPLICATION_JSON)
    @MapBinder(BindSecurityGroupRuleToJsonPayload.class)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    SecurityGroupRule createRuleAllowingSecurityGroupId(
          @PayloadParam("parent_group_id") String parentGroup, Ingress ip_protocol,


[3/4] jclouds git commit: JCLOUDS-691: Remove 404 fallbacks of PUT and POST calls from OpenStack APIs

Posted by na...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java
index 053feeb..3e7167d 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/ServerAdminApi.java
@@ -24,7 +24,6 @@ import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
 import org.jclouds.fallbacks.MapHttp4xxCodesToExceptions;
 import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
 import org.jclouds.openstack.nova.v2_0.domain.BackupType;
@@ -64,8 +63,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"suspend\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean suspend(@PathParam("id") String id);
+   void suspend(@PathParam("id") String id);
 
    /**
     * Resume a server.
@@ -76,8 +74,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"resume\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean resume(@PathParam("id") String id);
+   void resume(@PathParam("id") String id);
 
    /**
     * Migrate a server.
@@ -88,8 +85,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"migrate\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean migrate(@PathParam("id") String id);
+   void migrate(@PathParam("id") String id);
 
    /**
     * Lock a server.
@@ -100,8 +96,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"lock\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean lock(@PathParam("id") String id);
+   void lock(@PathParam("id") String id);
 
    /**
     * Unlock a server.
@@ -112,8 +107,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"unlock\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean unlock(@PathParam("id") String id);
+   void unlock(@PathParam("id") String id);
 
    /**
     * Reset network of a server.
@@ -124,8 +118,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"resetNetwork\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean resetNetwork(@PathParam("id") String id);
+   void resetNetwork(@PathParam("id") String id);
 
    /**
     * Create backup of a server.
@@ -156,8 +149,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"pause\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean pause(@PathParam("id") String id);
+   void pause(@PathParam("id") String id);
 
    /**
     * Unpause a server.
@@ -168,8 +160,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"unpause\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean unpause(@PathParam("id") String id);
+   void unpause(@PathParam("id") String id);
 
    /**
     * Live migrate a server.
@@ -180,8 +171,7 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @WrapWith("os-migrateLive")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean liveMigrate(@PathParam("id") String id, @PayloadParam("host") String host,
+   void liveMigrate(@PathParam("id") String id, @PayloadParam("host") String host,
          @PayloadParam("block_migration") boolean blockMigration,
          @PayloadParam("disk_over_commit") boolean diskOverCommit);
 
@@ -194,6 +184,5 @@ public interface ServerAdminApi {
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("{\"injectNetworkInfo\":null}")
-   @Fallback(FalseOnNotFoundOr404.class)
-   Boolean injectNetworkInfo(@PathParam("id") String id);
+   void injectNetworkInfo(@PathParam("id") String id);
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApi.java
index 943fe4b..01ae826 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeTypeApi.java
@@ -132,8 +132,7 @@ public interface VolumeTypeApi {
    @Path("/{id}/extra_specs")
    @Produces(MediaType.APPLICATION_JSON)
    @MapBinder(BindToJsonPayload.class)
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean updateExtraSpecs(@PathParam("id") String id, @PayloadParam("extra_specs") Map<String, String> specs);
+   void updateExtraSpecs(@PathParam("id") String id, @PayloadParam("extra_specs") Map<String, String> specs);
 
    /**
     * Retrieve a single extra spec value
@@ -161,8 +160,7 @@ public interface VolumeTypeApi {
    @Path("/{id}/extra_specs/{key}")
    @Produces(MediaType.APPLICATION_JSON)
    @Payload("%7B\"{key}\":\"{value}\"%7D")
-   @Fallback(FalseOnNotFoundOr404.class)
-   boolean updateExtraSpec(@PathParam("id") String id,
+   void updateExtraSpec(@PathParam("id") String id,
          @PathParam("key") @PayloadParam("key") String key,
          @PayloadParam("value") String value);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/FlavorApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/FlavorApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/FlavorApi.java
index 6d151a6..d9e1498 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/FlavorApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/FlavorApi.java
@@ -119,8 +119,6 @@ public interface FlavorApi {
    @POST
    @Unwrap
    @Produces(MediaType.APPLICATION_JSON)
-   @Fallback(NullOnNotFoundOr404.class)
-   @Nullable
    Flavor create(@WrapWith("flavor") Flavor flavor);
 
    /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ImageApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ImageApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ImageApi.java
index 025af01..1258c79 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ImageApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ImageApi.java
@@ -117,9 +117,7 @@ public interface ImageApi {
    /**
     * Delete the specified image
     *
-    * @param id
-    *           id of the image
-    * @return server or null if not found
+    * @param id id of the image
     */
    @Named("image:delete")
    @DELETE
@@ -156,7 +154,6 @@ public interface ImageApi {
    @SelectJson("metadata")
    @Produces(MediaType.APPLICATION_JSON)
    @MapBinder(BindToJsonPayload.class)
-   @Fallback(EmptyMapOnNotFoundOr404.class)
    Map<String, String> setMetadata(@PathParam("id") String id, @PayloadParam("metadata") Map<String, String> metadata);
 
    /**
@@ -174,7 +171,6 @@ public interface ImageApi {
    @SelectJson("metadata")
    @Produces(MediaType.APPLICATION_JSON)
    @MapBinder(BindToJsonPayload.class)
-   @Fallback(EmptyMapOnNotFoundOr404.class)
    Map<String, String> updateMetadata(@PathParam("id") String id, @PayloadParam("metadata") Map<String, String> metadata);
 
    /**
@@ -210,7 +206,6 @@ public interface ImageApi {
    @Path("/{id}/metadata/{key}")
    @ResponseParser(OnlyMetadataValueOrNull.class)
    @MapBinder(BindMetadataToJsonPayload.class)
-   @Fallback(NullOnNotFoundOr404.class)
    @Nullable
    String updateMetadata(@PathParam("id") String id, @PathParam("key") @PayloadParam("key") String key,
          @PathParam("value") @PayloadParam("value") String value);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerApi.java
index 80f1d9e..42ab1c7 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerApi.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerApi.java
@@ -335,7 +335,6 @@ public interface ServerApi {
    @Path("/{id}/metadata")
    @SelectJson("metadata")
    @Produces(MediaType.APPLICATION_JSON)
-   @Fallback(EmptyMapOnNotFoundOr404.class)
    @MapBinder(BindToJsonPayload.class)
    Map<String, String> setMetadata(@PathParam("id") String id,
          @PayloadParam("metadata") Map<String, String> metadata);
@@ -355,7 +354,6 @@ public interface ServerApi {
    @Produces(MediaType.APPLICATION_JSON)
    @SelectJson("metadata")
    @MapBinder(BindToJsonPayload.class)
-   @Fallback(EmptyMapOnNotFoundOr404.class)
    Map<String, String> updateMetadata(@PathParam("id") String id,
          @PayloadParam("metadata") Map<String, String> metadata);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
index 3fbe817..a163f02 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceExpectTest.java
@@ -127,22 +127,6 @@ public class NovaComputeServiceExpectTest extends BaseNovaComputeServiceExpectTe
       assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
    }
 
-   public void testListServersWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listServers = HttpRequest
-            .builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/detail")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listServersResponse = HttpResponse.builder().statusCode(404).build();
-
-      ComputeService apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, listServers, listServersResponse);
-
-      assertTrue(apiWhenNoServersExist.listNodes().isEmpty());
-   }
-
    HttpRequest list = HttpRequest
          .builder()
          .method("GET")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java
index 356a849..ae59b3b 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
 
@@ -29,8 +27,6 @@ import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.nova.v2_0.domain.BackupType;
 import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest;
 import org.jclouds.openstack.nova.v2_0.options.CreateBackupOfServerOptions;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableMap;
@@ -50,31 +46,6 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.suspend("1"));
-   }
-
-   public void testSuspendFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "suspend").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.suspend("1"));
-   }
-
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testSuspendFailsNotAuthorized() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "suspend").build(),
-            HttpResponse.builder().statusCode(403).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
       api.suspend("1");
    }
 
@@ -87,31 +58,6 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.resume("1"));
-   }
-
-   public void testResumeFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "resume").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.resume("1"));
-   }
-
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testResumeFailsNotAuthorized() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "resume").build(),
-            HttpResponse.builder().statusCode(403).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
       api.resume("1");
    }
 
@@ -124,19 +70,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.lock("1"));
-   }
-
-   public void testLockFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "lock").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.lock("1"));
+      api.lock("1");
    }
 
    public void testUnlock() {
@@ -148,19 +82,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.unlock("1"));
-   }
-
-   public void testUnlockFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "unlock").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.unlock("1"));
+      api.unlock("1");
    }
 
    public void testPause() {
@@ -172,19 +94,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.pause("1"));
-   }
-
-   public void testPauseFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "pause").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.pause("1"));
+      api.pause("1");
    }
 
    public void testUnpause() {
@@ -196,19 +106,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.unpause("1"));
-   }
-
-   public void testUnpauseFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "unpause").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.unpause("1"));
+      api.unpause("1");
    }
 
    public void testMigrateServer() {
@@ -220,20 +118,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.migrate("1"));
-   }
-
-
-   public void testMigrateServerFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "migrate").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.migrate("1"));
+      api.migrate("1");
    }
 
    public void testResetNetworkOfServer() {
@@ -245,19 +130,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.resetNetwork("1"));
-   }
-
-   public void testResetNetworkOfServerFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "resetNetwork").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.resetNetwork("1"));
+      api.resetNetwork("1");
    }
 
    public void testInjectNetworkInfoIntoServer() {
@@ -269,19 +142,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.injectNetworkInfo("1"));
-   }
-
-   public void testInjectNetworkInfoIntoServerFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "injectNetworkInfo").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.injectNetworkInfo("1"));
+      api.injectNetworkInfo("1");
    }
 
    public void testBackupServer() {
@@ -297,20 +158,6 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(imageId, "1976b3b3-409a-468d-b16c-a9172c341b46");
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testBackupServerFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("POST")
-                  .payload(payloadFromStringWithContentType("{\"createBackup\":{\"backup_type\":\"weekly\",\"rotation\":3,\"name\":\"mybackup\",\"metadata\":{\"some\":\"data or other\"}}}", MediaType.APPLICATION_JSON)).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      api.createBackup("1", "mybackup", BackupType.WEEKLY, 3, CreateBackupOfServerOptions.Builder.metadata(ImmutableMap.of("some", "data or other")));
-   }
-
    public void testLiveMigrateServer() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
       ServerAdminApi api = requestsSendResponses(
@@ -321,20 +168,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(202).build()
       ).getServerAdminApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.liveMigrate("1", "bighost", true, false));
-   }
-
-   public void testLiveMigrateServerFailsNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/action");
-      ServerAdminApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            standardActionRequestBuilderVoidResponse(endpoint, "GONNAOVERWRITE")
-                  .payload(payloadFromStringWithContentType("{\"os-migrateLive\":{\"host\":\"bighost\",\"block_migration\":true,\"disk_over_commit\":false}}", MediaType.APPLICATION_JSON)).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerAdminApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.liveMigrate("1", "bighost", true, false));
+      api.liveMigrate("1", "bighost", true, false);
    }
 
    protected HttpRequest.Builder<?> standardActionRequestBuilderVoidResponse(URI endpoint, String actionName) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java
index 99b2d62..adc8e46 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AdminActionsApiLiveTest.java
@@ -106,14 +106,14 @@ public class AdminActionsApiLiveTest extends BaseNovaApiLiveTest {
          fail("Resumed an active server!");
       } catch (HttpResponseException e) {
       }
-      assertTrue(api.suspend(testServerId));
+      api.suspend(testServerId);
       blockUntilServerInState(testServerId, serverApi, Status.SUSPENDED);
       try {
          api.suspend(testServerId);
          fail("Suspended an already suspended server!");
       } catch (HttpResponseException e) {
       }
-      assertTrue(api.resume(testServerId));
+      api.resume(testServerId);
       blockUntilServerInState(testServerId, serverApi, Status.ACTIVE);
       try {
          api.resume(testServerId);
@@ -128,20 +128,20 @@ public class AdminActionsApiLiveTest extends BaseNovaApiLiveTest {
       ServerAdminApi api = apiOption.get();
 
       // TODO should we be able to double-lock (as it were)
-      assertTrue(api.unlock(testServerId));
-      assertTrue(api.unlock(testServerId));
-      assertTrue(api.lock(testServerId));
-      assertTrue(api.lock(testServerId));
-      assertTrue(api.unlock(testServerId));
-      assertTrue(api.unlock(testServerId));
+      api.unlock(testServerId);
+      api.unlock(testServerId);
+      api.lock(testServerId);
+      api.lock(testServerId);
+      api.unlock(testServerId);
+      api.unlock(testServerId);
 
    }
 
    public void testResetNetworkAndInjectNetworkInfo() {
       skipOnAdminExtensionAbsent();
       ServerAdminApi api = apiOption.get();
-      assertTrue(api.resetNetwork(testServerId));
-      assertTrue(api.injectNetworkInfo(testServerId));
+      api.resetNetwork(testServerId);
+      api.injectNetworkInfo(testServerId);
    }
 
    @Test
@@ -155,14 +155,14 @@ public class AdminActionsApiLiveTest extends BaseNovaApiLiveTest {
          fail("Unpaused active server!");
       } catch (HttpResponseException e) {
       }
-      assertTrue(api.pause(testServerId));
+      api.pause(testServerId);
       blockUntilServerInState(testServerId, serverApi, Status.PAUSED);
       try {
          api.pause(testServerId);
          fail("paused a paused server!");
       } catch (HttpResponseException e) {
       }
-      assertTrue(api.unpause(testServerId));
+      api.unpause(testServerId);
       blockUntilServerInState(testServerId, serverApi, Status.ACTIVE);
       try {
          api.unpause(testServerId);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java
index f6960cb..d939948 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/AvailabilityZoneApiExpectTest.java
@@ -84,21 +84,6 @@ public class AvailabilityZoneApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(zone.get().getState().isAvailable(), "Zone: " + zone.get().getName() + " is not available.");
    }
 
-   public void testListAvailabilityZonesWhenResponseIs404() throws Exception {
-      HttpRequest list = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-availability-zone")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse);
-
-      assertTrue(apiWhenNoServersExist.getAvailabilityZoneApi("az-1.region-a.geo-1").get().listAvailabilityZones().isEmpty());
-   }
-
    public void testListInDetail() throws Exception {
       HttpRequest list = HttpRequest
             .builder()
@@ -139,18 +124,4 @@ public class AvailabilityZoneApiExpectTest extends BaseNovaApiExpectTest {
             "Expected Updated time: " + new Date(1436509815000L) + " does match Updated time : " + hostService.getUpdated());
    }
 
-   public void testListInDetailWhenResponseIs404() throws Exception {
-      HttpRequest list = HttpRequest.builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-availability-zone/detail")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess,
-            extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse);
-
-      assertTrue(apiWhenNoServersExist.getAvailabilityZoneApi("az-1.region-a.geo-1").get().listInDetail().isEmpty());
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java
index 9a5263f..838ebfe 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ConsolesApiMockTest.java
@@ -19,7 +19,6 @@ package org.jclouds.openstack.nova.v2_0.extensions;
 import static com.google.common.collect.Iterables.getFirst;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNull;
-import static org.testng.Assert.fail;
 
 import org.jclouds.openstack.nova.v2_0.NovaApi;
 import org.jclouds.openstack.nova.v2_0.domain.Console;
@@ -51,34 +50,18 @@ public class ConsolesApiMockTest extends BaseOpenStackMockTest<NovaApi> {
       getConsole(Console.Type.NOVNC, "/novnc_console.json", new ParseNOVNCConsoleTest().expected());
    }
 
-   public void getNOVNCConsoleWhenResponseIs404NotFound() throws Exception {
-      getConsoleWhenResponseIs404NotFound(Console.Type.NOVNC);
-   }
-
    public void getXVPVNCConsole() throws Exception {
       getConsole(Console.Type.XVPVNC, "/xvpvnc_console.json", new ParseXVPVNCConsoleTest().expected());
    }
 
-   public void getXVPVNCConsoleWhenResponseIs404NotFound() throws Exception {
-      getConsoleWhenResponseIs404NotFound(Console.Type.XVPVNC);
-   }
-
    public void getSPICEConsole() throws Exception {
       getConsole(Console.Type.SPICE_HTML5, "/spice_console.json", new ParseSPICEConsoleTest().expected());
    }
 
-   public void getSPICEConsoleWhenResponseIs404NotFound() throws Exception {
-      getConsoleWhenResponseIs404NotFound(Console.Type.SPICE_HTML5);
-   }
-
    public void getRDPConsole() throws Exception {
       getConsole(Console.Type.RDP_HTML5, "/rdp_console.json", new ParseRDPConsoleTest().expected());
    }
 
-   public void getRDPConsoleWhenResponseIs404NotFound() throws Exception {
-      getConsoleWhenResponseIs404NotFound(Console.Type.RDP_HTML5);
-   }
-
    private void getConsole(Console.Type consoleType, String responseResource, Console expected) throws Exception {
       String serverId = "5f64fca7-879b-4173-bf9c-8fa88330a4dc";
 
@@ -105,40 +88,4 @@ public class ConsolesApiMockTest extends BaseOpenStackMockTest<NovaApi> {
       }
    }
 
-   private void getConsoleWhenResponseIs404NotFound(Console.Type consoleType) throws Exception {
-      String serverId = "5f64fca7-879b-4173-bf9c-8fa88330a4dc";
-
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/extension_list_full.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse()
-                  .setStatus("HTTP/1.1 404 Not Found")
-                  .setBody("{\"itemNotFound\":" + "{\"message\":\"Instance " + serverId
-                      + " could not be found.\",\"code\":404}}")
-                  .setHeader("Content-Type", "application/json; charset=UTF-8")));
-
-      try {
-         NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova");
-
-         String regionId = getFirst(novaApi.getConfiguredRegions(), "RegionTwo");
-
-         ConsolesApi consolesApi = novaApi.getConsolesApi(regionId).get();
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertEquals(server.takeRequest().getRequestLine(),
-                 "GET /v2/da0d12be20394afb851716e10a49e4a7/extensions HTTP/1.1");
-
-         try {
-             consolesApi.getConsole(serverId, consoleType);
-             fail("expected a ResourceNotFoundException");
-         } catch (org.jclouds.rest.ResourceNotFoundException e) {
-             // expected
-         }
-
-      } finally {
-         server.shutdown();
-      }
-   }
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java
index 8b90de6..7d8b907 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -49,18 +47,6 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(api.getMetadata("9"), ImmutableMap.of("test", "value1"));
    }
 
-   public void testGetAllExtraSpecsFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/flavors/9/os-extra_specs");
-      FlavorExtraSpecsApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get();
-
-      assertTrue(api.getMetadata("9").isEmpty());
-   }
-
    public void testSetAllExtraSpecs() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/flavors/9/os-extra_specs");
       FlavorExtraSpecsApi api = requestsSendResponses(
@@ -72,7 +58,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(200).build()
       ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.updateMetadata("9", ImmutableMap.of("test1", "somevalue")));
+      api.updateMetadata("9", ImmutableMap.of("test1", "somevalue"));
    }
 
    public void testSetExtraSpec() {
@@ -86,7 +72,7 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest {
             HttpResponse.builder().statusCode(200).build()
       ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get();
 
-      assertTrue(api.updateMetadataEntry("5", "test1", "somevalue"));
+      api.updateMetadataEntry("5", "test1", "somevalue");
    }
 
    public void testGetExtraSpec() {
@@ -101,18 +87,6 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(api.getMetadataKey("5", "test1"), "another value");
    }
 
-   public void testGetExtraSpecFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/flavors/5/os-extra_specs/test1");
-      FlavorExtraSpecsApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get();
-
-      assertNull(api.getMetadataKey("5", "test1"));
-   }
-
    public void testDeleteExtraSpec() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/flavors/5/os-extra_specs/test1");
       FlavorExtraSpecsApi api = requestsSendResponses(
@@ -125,16 +99,4 @@ public class FlavorExtraSpecsApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.deleteMetadataKey("5", "test1"));
    }
 
-   public void testDeleteExtraSpecFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/flavors/5/os-extra_specs/test1");
-      FlavorExtraSpecsApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getFlavorExtraSpecsApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.deleteMetadataKey("5", "test1"));
-   }
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java
index d1ed7c2..e189c1c 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FlavorExtraSpecsApiLiveTest.java
@@ -74,7 +74,7 @@ public class FlavorExtraSpecsApiLiveTest extends BaseNovaApiLiveTest {
          assertNotNull(before);
          Map<String, String> specs = Maps.newHashMap(before);
          specs.putAll(testSpecs);
-         assertTrue(api.updateMetadata(testFlavor.getId(), specs));
+         api.updateMetadata(testFlavor.getId(), specs);
          assertEquals(api.getMetadata(testFlavor.getId()), specs);
          for (Map.Entry<String, String> entry : specs.entrySet()) {
             assertEquals(api.getMetadataKey(testFlavor.getId(), entry.getKey()), entry.getValue());
@@ -104,7 +104,7 @@ public class FlavorExtraSpecsApiLiveTest extends BaseNovaApiLiveTest {
       if (apiOption.isPresent()) {
          FlavorExtraSpecsApi api = apiOption.get();
          for (String key : testSpecs.keySet()) {
-            assertTrue(api.updateMetadataEntry(testFlavor.getId(), key, "new value"));
+            api.updateMetadataEntry(testFlavor.getId(), key, "new value");
          }
          for (String key : testSpecs.keySet()) {
             assertEquals(api.getMetadataKey(testFlavor.getId(), key), "new value");

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java
index 7bec68e..a606a69 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPApiExpectTest.java
@@ -18,7 +18,6 @@ package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import org.jclouds.http.HttpRequest;
@@ -89,22 +88,6 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest {
             .toString(), new ParseFloatingIPListTest().expected().toString());
    }
 
-   public void testListFloatingIPsWhenResponseIs404() throws Exception {
-      HttpRequest list = HttpRequest
-            .builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-floating-ips")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse);
-
-      assertTrue(apiWhenNoServersExist.getFloatingIPApi("az-1.region-a.geo-1").get().list().isEmpty());
-   }
-
    public void testGetFloatingIPWhenResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest
             .builder()
@@ -123,22 +106,6 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest {
             .toString(), new ParseFloatingIPTest().expected().toString());
    }
 
-   public void testGetFloatingIPWhenResponseIs404() throws Exception {
-      HttpRequest get = HttpRequest
-            .builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-floating-ips/1")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, get, getResponse);
-
-      assertNull(apiWhenNoServersExist.getFloatingIPApi("az-1.region-a.geo-1").get().get("1"));
-   }
-
    public void testAllocateWhenResponseIs2xx() throws Exception {
       HttpRequest createFloatingIP = HttpRequest
             .builder()
@@ -160,24 +127,6 @@ public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest {
 
    }
 
-   public void testAllocateWhenResponseIs404() throws Exception {
-      HttpRequest createFloatingIP = HttpRequest
-            .builder()
-            .method("POST")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-floating-ips")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType("{}", "application/json")).build();
-
-      HttpResponse createFloatingIPResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, createFloatingIP,
-            createFloatingIPResponse);
-
-      assertNull(apiWhenNoServersExist.getFloatingIPApi("az-1.region-a.geo-1").get().create());
-   }
-
    public void testAllocateWithPoolNameWhenResponseIs2xx() throws Exception {
       HttpRequest createFloatingIP = HttpRequest
             .builder()

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPPoolApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPPoolApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPPoolApiExpectTest.java
index 200e1d7..36dcf28 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPPoolApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/FloatingIPPoolApiExpectTest.java
@@ -77,19 +77,4 @@ public class FloatingIPPoolApiExpectTest extends BaseNovaApiExpectTest {
             .toString(), new ParseFloatingIPPoolListTest().expected().toString());
    }
 
-   public void testListFloatingIPsWhenResponseIs404() throws Exception {
-      HttpRequest list = HttpRequest
-            .builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-floating-ip-pools")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse);
-
-      assertTrue(apiWhenNoServersExist.getFloatingIPPoolApi("az-1.region-a.geo-1").get().list().isEmpty());
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java
index 6d94d94..13928d3 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAdministrationApiExpectTest.java
@@ -30,7 +30,6 @@ import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.nova.v2_0.domain.Host;
 import org.jclouds.openstack.nova.v2_0.domain.HostResourceUsage;
 import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableSet;
@@ -99,21 +98,6 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.enable("ubuntu"));
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testEnableHostFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-hosts/ubuntu");
-      HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            HttpRequest.builder().method("PUT")
-                       .addHeader("Accept", "application/json")
-                       .addHeader("X-Auth-Token", authToken)
-                  .payload(payloadFromStringWithContentType("{\"status\":\"enable\"}", MediaType.APPLICATION_JSON))
-                  .endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404)
-                  .build()).getHostAdministrationApi("az-1.region-a.geo-1").get();
-      api.enable("ubuntu");
-   }
-
    public void testEnableHostFailNotEnabled() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-hosts/ubuntu");
       HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
@@ -187,18 +171,6 @@ public class HostAdministrationApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.startup("ubuntu"));
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testStartupHostFailNotFound() {
-      HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            HttpRequest.builder().method("GET")
-                       .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-hosts/ubuntu/startup")
-                       .addHeader("Accept", "application/json")
-                       .addHeader("X-Auth-Token", authToken).build(),
-            HttpResponse.builder().statusCode(404).build()).getHostAdministrationApi("az-1.region-a.geo-1").get();
-      assertTrue(api.startup("ubuntu"));
-   }
-
    public void testStartupHostFailWrongActionInProgress() {
       HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
             responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java
index 7080c74..dc1de3f 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HostAggregateApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -65,16 +63,6 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(api.get("1"), exampleHostAggregateWithHost());
    }
 
-   public void testGetFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-aggregates/1");
-      HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()).getHostAggregateApi("az-1.region-a.geo-1").get();
-
-      assertNull(api.get("1"));
-   }
-
    public void testCreateAggregate() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-aggregates");
       HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
@@ -98,16 +86,6 @@ public class HostAggregateApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.delete("1"));
    }
 
-   public void testDeleteAggregateFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-aggregates/1");
-      HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()).getHostAggregateApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.delete("1"));
-   }
-
    public void testUpdateName() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-aggregates/1");
       HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HypervisorApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HypervisorApiMockTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HypervisorApiMockTest.java
index b09ddd7..07acabc 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HypervisorApiMockTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/HypervisorApiMockTest.java
@@ -101,19 +101,6 @@ public class HypervisorApiMockTest extends BaseOpenStackMockTest<NovaApi> {
       assertRequests(server, 3, "/os-hypervisors");
    }
 
-   public void testListHypervisorWhenResponseIs404(Method method) throws Exception {
-      MockWebServer server = servers.get(method.getName());
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/extension_list_full.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova");
-      assertEquals(novaApi.getConfiguredRegions(), ImmutableSet.of("RegionOne", "RegionTwo", "RegionThree"));
-
-      assertTrue(novaApi.getHypervisorApi("RegionOne").get().list().isEmpty());
-
-      assertRequests(server, 3, "/os-hypervisors");
-   }
-
    public void testListInDetail(Method method) throws Exception {
       MockWebServer server = servers.get(method.getName());
       server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/extension_list_full.json"))));
@@ -163,19 +150,6 @@ public class HypervisorApiMockTest extends BaseOpenStackMockTest<NovaApi> {
       assertRequests(server, 3, "/os-hypervisors/detail");
    }
 
-   public void testListInDetailWhenResponseIs404(Method method) throws Exception {
-      MockWebServer server = servers.get(method.getName());
-      server.enqueue(addCommonHeaders(new MockResponse().setBody(stringFromResource("/extension_list_full.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)));
-
-      NovaApi novaApi = api(server.getUrl("/").toString(), "openstack-nova");
-      assertEquals(novaApi.getConfiguredRegions(), ImmutableSet.of("RegionOne", "RegionTwo", "RegionThree"));
-
-      assertTrue(novaApi.getHypervisorApi("RegionOne").get().listInDetail().isEmpty());
-
-      assertRequests(server, 3, "/os-hypervisors/detail");
-   }
-
    private void assertRequests(MockWebServer server, int requestCount, String requestPath) throws InterruptedException {
       assertEquals(server.getRequestCount(), requestCount);
       assertAuthentication(server);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java
index ea719e5..88e2262 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/KeyPairApiExpectTest.java
@@ -18,7 +18,6 @@ package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
 
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -57,23 +56,6 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest {
             new ParseKeyPairListTest().expected().toString());
    }
 
-   public void testListKeyPairsWhenResponseIs404() throws Exception {
-      HttpRequest list = HttpRequest
-            .builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-keypairs")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoServersExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, list, listResponse);
-
-      assertTrue(apiWhenNoServersExist.getKeyPairApi("az-1.region-a.geo-1").get().list().isEmpty());
-
-   }
-
    public void testCreateKeyPair() throws Exception {
       HttpRequest create = HttpRequest
             .builder()
@@ -157,19 +139,4 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest {
             new ParseKeyPairTest().expected());
    }
 
-   public void testGetKeyPairWhenResponseIs404() throws Exception {
-      HttpRequest get = HttpRequest
-            .builder()
-            .method("GET")
-            .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-keypairs/testkeypair")
-            .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-
-      HttpResponse getResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoKeyPairExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, get, getResponse);
-
-      assertNull(apiWhenNoKeyPairExists.getKeyPairApi("az-1.region-a.geo-1").get().get("testkeypair"));
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java
index 0350128..f6772ff 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/QuotaApiExpectTest.java
@@ -17,7 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -28,7 +27,6 @@ import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
 import org.jclouds.openstack.nova.v2_0.domain.Quota;
 import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 /**
@@ -47,15 +45,6 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(api.getByTenant("demo"), getTestQuotas());
    }
 
-   public void testGetQuotasFailsTenantNotFound() throws Exception {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-quota-sets/demo");
-      QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()).getQuotaApi("az-1.region-a.geo-1").get();
-      assertNull(api.getByTenant("demo"));
-   }
-
    public void testGetDefaultQuotas() throws Exception {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-quota-sets/demo/defaults");
       QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
@@ -66,16 +55,6 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(api.getDefaultsForTenant("demo"), getTestQuotas());
    }
 
-   public void testGetDefaultQuotasFailsTenantNotFound() throws Exception {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-quota-sets/demo/defaults");
-      QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()).getQuotaApi("az-1.region-a.geo-1").get();
-      assertNull(api.getDefaultsForTenant("demo"));
-   }
-
-
    public void testUpdateQuotas() throws Exception {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-quota-sets/demo");
       QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
@@ -90,21 +69,6 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.updateQuotaOfTenant(getTestQuotas(), "demo"));
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testUpdateQuotasFailsNotFound() throws Exception {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-quota-sets/demo");
-      QuotaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            HttpRequest.builder().endpoint(endpoint).method("PUT")
-                  .addHeader("X-Auth-Token", authToken)
-                  .addHeader("Accept", "application/json")
-                  .payload(payloadFromResourceWithContentType("/quotas.json", MediaType.APPLICATION_JSON))
-                  .build(),
-            HttpResponse.builder().statusCode(404).build()).getQuotaApi("az-1.region-a.geo-1").get();
-
-      api.updateQuotaOfTenant(getTestQuotas(), "demo");
-   }
-
    public static Quota getTestQuotas() {
       return Quota.builder()
             .metadataItems(128)

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java
index ae108ac..8d8374b 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/SecurityGroupApiExpectTest.java
@@ -17,7 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -61,22 +60,6 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest {
                .list().toString(), new ParseSecurityGroupListTest().expected().toString());
    }
 
-   public void testListSecurityGroupsWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listListSecurityGroups = HttpRequest.builder().method("GET").endpoint(
-               URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-security-groups")).headers(
-               ImmutableMultimap.<String, String> builder().put("Accept", "application/json").put("X-Auth-Token",
-                        authToken).build()).build();
-
-      HttpResponse listListSecurityGroupsResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoSecurityGroupsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, listListSecurityGroups,
-               listListSecurityGroupsResponse);
-
-      assertTrue(apiWhenNoSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get()
-               .list().isEmpty());
-   }
-
    public void testGetSecurityGroupWhenResponseIs2xx() throws Exception {
 
       HttpRequest getSecurityGroup = HttpRequest.builder().method("GET").endpoint(
@@ -95,23 +78,6 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest {
                .get("0").toString(), new ParseSecurityGroupTest().expected().toString());
    }
 
-   public void testGetSecurityGroupWhenResponseIs404() throws Exception {
-      HttpRequest getSecurityGroup = HttpRequest.builder().method("GET").endpoint(
-               URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-security-groups/0")).headers(
-               ImmutableMultimap.<String, String> builder().put("Accept", "application/json").put("X-Auth-Token",
-                        authToken).build()).build();
-
-      HttpResponse getSecurityGroupResponse = HttpResponse.builder().statusCode(404).build();
-
-      NovaApi apiWhenNoSecurityGroupsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
-               responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, getSecurityGroup,
-               getSecurityGroupResponse);
-
-      assertNull(apiWhenNoSecurityGroupsExist.getSecurityGroupApi("az-1.region-a.geo-1").get()
-               .get("0"));
-
-   }
-
    public void testCreateSecurityGroupWhenResponseIs2xx() throws Exception {
       HttpRequest create = HttpRequest.builder().method("POST").endpoint(
                URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-security-groups")).headers(

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java
index c528b9e..b47bf67 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/ServerWithSecurityGroupsApiExpectTest.java
@@ -17,7 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
 
 import java.net.URI;
 
@@ -47,15 +46,4 @@ public class ServerWithSecurityGroupsApiExpectTest extends BaseNovaApiExpectTest
       assertEquals(server.getId(), "8d0a6ca5-8849-4b3d-b86e-f24c92490ebb");
       assertEquals(server.getSecurityGroupNames(), ImmutableSet.of("default", "group1"));
    }
-
-   public void testGetServerWithSecurityGroupsFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-create-server-ext/8d0a6ca5-8849-4b3d-b86e-f24c92490ebb");
-      ServerWithSecurityGroupsApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getServerWithSecurityGroupsApi("az-1.region-a.geo-1").get();
-      assertNull(api.get("8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"));
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java
index 48e6aef..2af43bc 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VirtualInterfaceApiExpectTest.java
@@ -17,7 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
 
@@ -48,15 +47,4 @@ public class VirtualInterfaceApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(vif.getMacAddress(), "fa:16:3e:09:71:34");
    }
 
-   public void testListVirtualInterfacesFailNotFound() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/1/os-virtual-interfaces");
-      VirtualInterfaceApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVirtualInterfaceApi("az-1.region-a.geo-1").get();
-
-      assertTrue(api.listOnServer("1").isEmpty());
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d83282ca/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java
index fde97ee..a382d95 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/extensions/VolumeApiExpectTest.java
@@ -17,8 +17,6 @@
 package org.jclouds.openstack.nova.v2_0.extensions;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 
 import java.net.URI;
@@ -35,8 +33,6 @@ import org.jclouds.openstack.nova.v2_0.domain.VolumeSnapshot;
 import org.jclouds.openstack.nova.v2_0.internal.BaseNovaApiExpectTest;
 import org.jclouds.openstack.nova.v2_0.options.CreateVolumeOptions;
 import org.jclouds.openstack.nova.v2_0.options.CreateVolumeSnapshotOptions;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
 import org.testng.annotations.Test;
 
 import com.google.common.collect.ImmutableSet;
@@ -62,19 +58,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(volumes, ImmutableSet.of(testVolume()));
    }
 
-   public void testListVolumesFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      Set<? extends Volume> volumes = api.list().toSet();
-      assertTrue(volumes.isEmpty());
-   }
-
    public void testListVolumesInDetail() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes/detail");
       VolumeApi api = requestsSendResponses(
@@ -88,19 +71,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(volumes, ImmutableSet.of(testVolume()));
    }
 
-   public void testListVolumesInDetailFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes/detail");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      Set<? extends Volume> volumes = api.listInDetail().toSet();
-      assertTrue(volumes.isEmpty());
-   }
-
    public void testCreateVolume() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes");
       VolumeApi api = requestsSendResponses(
@@ -117,23 +87,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(volume, testVolume());
    }
 
-   @Test(expectedExceptions = ResourceNotFoundException.class)
-   public void testCreateVolumeFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint)
-               .endpoint(endpoint)
-               .method("POST")
-               .payload(payloadFromStringWithContentType("{\"volume\":{\"display_name\":\"jclouds-test-volume\",\"display_description\":\"description of test volume\",\"size\":1}}", MediaType.APPLICATION_JSON))
-               .build(),
-            HttpResponse.builder().statusCode(404).payload(payloadFromResource("/volume_details.json")).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      api.create(1, CreateVolumeOptions.Builder.name("jclouds-test-volume").description("description of test volume"));
-   }
-
    public void testGetVolume() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes/1");
       VolumeApi api = requestsSendResponses(
@@ -154,18 +107,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(Iterables.getOnlyElement(volume.getAttachments()), testAttachment());
    }
 
-   public void testGetVolumeFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes/1");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      assertNull(api.get("1"));
-   }
-
    public void testDeleteVolume() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes/1");
       VolumeApi api = requestsSendResponses(
@@ -178,18 +119,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.delete("1"));
    }
 
-   public void testDeleteVolumeFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volumes/1");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      assertFalse(api.delete("1"));
-   }
-
    public void testListSnapshots() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots");
       VolumeApi api = requestsSendResponses(
@@ -203,19 +132,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(snapshots, ImmutableSet.of(testSnapshot()));
    }
 
-   public void testListSnapshotsFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      Set<? extends VolumeSnapshot> snapshots = api.listSnapshots().toSet();
-      assertTrue(snapshots.isEmpty());
-   }
-
    public void testGetSnapshot() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots/1");
       VolumeApi api = requestsSendResponses(
@@ -229,18 +145,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(snapshot, testSnapshot());
    }
 
-   public void testGetSnapshotFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots/1");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      assertNull(api.getSnapshot("1"));
-   }
-
    public void testListSnapshotsInDetail() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots/detail");
       VolumeApi api = requestsSendResponses(
@@ -263,19 +167,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(snappy.getSize(), 1);
    }
 
-   public void testListSnapshotsInDetailFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots/detail");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).build(),
-            HttpResponse.builder().statusCode(404).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      Set<? extends VolumeSnapshot> snapshots = api.listSnapshotsInDetail().toSet();
-      assertTrue(snapshots.isEmpty());
-   }
-
    public void testCreateSnapshot() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots");
       VolumeApi api = requestsSendResponses(
@@ -292,22 +183,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertEquals(snapshot, testSnapshot());
    }
 
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testCreateSnapshotFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint)
-                  .method("POST")
-                  .payload(payloadFromStringWithContentType("{\"snapshot\":{\"display_name\":\"jclouds-live-test\",\"volume_id\":\"13\",\"display_description\":\"jclouds live test snapshot\",\"force\":\"true\"}}", MediaType.APPLICATION_JSON))
-                  .build(),
-            HttpResponse.builder().statusCode(401).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      api.createSnapshot("13", CreateVolumeSnapshotOptions.Builder.name("jclouds-live-test").description("jclouds live test snapshot").force());
-   }
-
    public void testDeleteSnapshot() {
       URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots/1");
       VolumeApi api = requestsSendResponses(
@@ -320,19 +195,6 @@ public class VolumeApiExpectTest extends BaseNovaApiExpectTest {
       assertTrue(api.deleteSnapshot("1"));
    }
 
-   @Test(expectedExceptions = AuthorizationException.class)
-   public void testDeleteSnapshotFail() {
-      URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-snapshots/1");
-      VolumeApi api = requestsSendResponses(
-            keystoneAuthWithUsernameAndPasswordAndTenantName,
-            responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse,
-            authenticatedGET().endpoint(endpoint).method("DELETE").build(),
-            HttpResponse.builder().statusCode(401).build()
-      ).getVolumeApi("az-1.region-a.geo-1").get();
-
-      api.deleteSnapshot("1");
-   }
-
    protected Volume testVolume() {
       return Volume.builder().status(Volume.Status.IN_USE).description("This is a test volume").zone("nova").name("test")
             .attachments(ImmutableSet.of(testAttachment())).size(1).id("1").created(dateService.iso8601SecondsDateParse("2012-04-23 12:16:45")).build();