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:46 UTC

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

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);
             }
          }
       }