You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by jd...@apache.org on 2014/07/15 23:29:29 UTC

[2/5] JCLOUDS-40: Unasync OpenStack Nova API

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerAsyncApi.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerAsyncApi.java
deleted file mode 100644
index c54d86c..0000000
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/features/ServerAsyncApi.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.openstack.nova.v2_0.features;
-
-import java.util.Map;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.AbsentOn403Or404Or500;
-import org.jclouds.Fallbacks.EmptyMapOnNotFoundOr404;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
-import org.jclouds.fallbacks.MapHttp4xxCodesToExceptions;
-import org.jclouds.openstack.keystone.v2_0.KeystoneFallbacks.EmptyPaginatedCollectionOnNotFoundOr404;
-import org.jclouds.openstack.v2_0.domain.PaginatedCollection;
-import org.jclouds.openstack.keystone.v2_0.filters.AuthenticateRequest;
-import org.jclouds.openstack.nova.v2_0.binders.BindMetadataToJsonPayload;
-import org.jclouds.openstack.nova.v2_0.domain.RebootType;
-import org.jclouds.openstack.nova.v2_0.domain.Server;
-import org.jclouds.openstack.nova.v2_0.domain.ServerCreated;
-import org.jclouds.openstack.nova.v2_0.functions.ParseImageIdFromLocationHeader;
-import org.jclouds.openstack.nova.v2_0.functions.internal.OnlyMetadataValueOrNull;
-import org.jclouds.openstack.nova.v2_0.functions.internal.ParseDiagnostics;
-import org.jclouds.openstack.nova.v2_0.functions.internal.ParseServerDetails;
-import org.jclouds.openstack.nova.v2_0.functions.internal.ParseServers;
-import org.jclouds.openstack.nova.v2_0.options.CreateServerOptions;
-import org.jclouds.openstack.nova.v2_0.options.RebuildServerOptions;
-import org.jclouds.openstack.v2_0.domain.Resource;
-import org.jclouds.openstack.v2_0.options.PaginationOptions;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.annotations.Transform;
-import org.jclouds.rest.annotations.Unwrap;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * Provides asynchronous access to Server via their REST API.
- * <p/>
- * 
- * @see ServerApi
- * @see <a href= "http://docs.openstack.org/api/openstack-compute/1.1/content/Servers-d1e2073.html"
- *      />
- */
-@RequestFilters(AuthenticateRequest.class)
-public interface ServerAsyncApi {
-
-   /**
-    * @see ServerApi#list()
-    */
-   @Named("server:list")
-   @GET
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Path("/servers")
-   @RequestFilters(AuthenticateRequest.class)
-   @ResponseParser(ParseServers.class)
-   @Transform(ParseServers.ToPagedIterable.class)
-   @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
-   ListenableFuture<? extends PagedIterable<? extends Resource>> list();
-
-   /** @see ServerApi#list(PaginationOptions) */
-   @Named("server:list")
-   @GET
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Path("/servers")
-   @RequestFilters(AuthenticateRequest.class)
-   @ResponseParser(ParseServers.class)
-   @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class)
-   ListenableFuture<? extends PaginatedCollection<? extends Resource>> list(PaginationOptions options);
-
-   /**
-    * @see ServerApi#listInDetail()
-    */
-   @Named("server:list")
-   @GET
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Path("/servers/detail")
-   @RequestFilters(AuthenticateRequest.class)
-   @ResponseParser(ParseServerDetails.class)
-   @Transform(ParseServerDetails.ToPagedIterable.class)
-   @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
-   ListenableFuture<? extends PagedIterable<? extends Server>> listInDetail();
-
-   /** @see ServerApi#listInDetail(PaginationOptions) */
-   @Named("server:list")
-   @GET
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Path("/servers/detail")
-   @RequestFilters(AuthenticateRequest.class)
-   @ResponseParser(ParseServerDetails.class)
-   @Fallback(EmptyPaginatedCollectionOnNotFoundOr404.class)
-   ListenableFuture<? extends PaginatedCollection<? extends Server>> listInDetail(PaginationOptions options);
-
-   /**
-    * @see ServerApi#get
-    */
-   @Named("server:get")
-   @GET
-   @SelectJson("server")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Path("/servers/{id}")
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<? extends Server> get(@PathParam("id") String id);
-
-   /**
-    * @see ServerApi#delete
-    */
-   @Named("server:delete")
-   @DELETE
-   @Consumes
-   @Fallback(FalseOnNotFoundOr404.class)
-   @Path("/servers/{id}")
-   ListenableFuture<Boolean> delete(@PathParam("id") String id);
-
-   /**
-    * @see ServerApi#start
-    */
-   @Named("server:start")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"os-start\":null}")
-   ListenableFuture<Void> start(@PathParam("id") String id);
-
-   /**
-    * @see ServerApi#stop
-    */
-   @Named("server:stop")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"os-stop\":null}")
-   ListenableFuture<Void> stop(@PathParam("id") String id);
-
-   /**
-    * @see ServerApi#reboot
-    */
-   @Named("server:reboot")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"reboot\":%7B\"type\":\"{type}\"%7D%7D")
-   ListenableFuture<Void> reboot(@PathParam("id") String id, @PayloadParam("type") RebootType rebootType);
-
-   /**
-    * @see ServerApi#resize
-    */
-   @Named("server:resize")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"resize\":%7B\"flavorRef\":{flavorId}%7D%7D")
-   ListenableFuture<Void> resize(@PathParam("id") String id, @PayloadParam("flavorId") String flavorId);
-
-   /**
-    * @see ServerApi#confirmResize
-    */
-   @Named("server:resize")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"confirmResize\":null}")
-   ListenableFuture<Void> confirmResize(@PathParam("id") String id);
-
-   /**
-    * @see ServerApi#revertResize
-    */
-   @Named("server:resize")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("{\"revertResize\":null}")
-   ListenableFuture<Void> revertResize(@PathParam("id") String id);
-
-   /**
-    * @see ServerApi#create
-    */
-   @Named("server:create")
-   @POST
-   @Unwrap
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Path("/servers")
-   @MapBinder(CreateServerOptions.class)
-   ListenableFuture<ServerCreated> create(@PayloadParam("name") String name, @PayloadParam("imageRef") String imageRef,
-            @PayloadParam("flavorRef") String flavorRef, CreateServerOptions... options);
-
-   /**
-    * @see ServerApi#rebuild
-    */
-   @Named("server:rebuild")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @MapBinder(RebuildServerOptions.class)
-   ListenableFuture<Void> rebuild(@PathParam("id") String id, RebuildServerOptions... options);
-
-   /**
-    * @see ServerApi#changeAdminPass
-    */
-   @Named("server:changeadminpass")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"changePassword\":%7B\"adminPass\":\"{adminPass}\"%7D%7D")
-   ListenableFuture<Void> changeAdminPass(@PathParam("id") String id, @PayloadParam("adminPass") String adminPass);
-
-   /**
-    * @see ServerApi#rename
-    */
-   @Named("server:rename")
-   @PUT
-   @Path("/servers/{id}")
-   @Consumes
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"server\":%7B\"name\":\"{name}\"%7D%7D")
-   ListenableFuture<Void> rename(@PathParam("id") String id, @PayloadParam("name") String newName);
-
-   /**
-    * @see ServerApi#createImageFromServer
-    */
-   @Named("server:create")
-   @POST
-   @Path("/servers/{id}/action")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Produces(MediaType.APPLICATION_JSON)
-   @Payload("%7B\"createImage\":%7B\"name\":\"{name}\", \"metadata\": %7B%7D%7D%7D")
-   @Fallback(MapHttp4xxCodesToExceptions.class)
-   @ResponseParser(ParseImageIdFromLocationHeader.class)
-   ListenableFuture<String> createImageFromServer(@PayloadParam("name") String name, @PathParam("id") String id);
-
-   /**
-    * @see ServerApi#getMetadata
-    */
-   @Named("server:getmetadata")
-   @GET
-   @SelectJson("metadata")
-   @Path("/servers/{id}/metadata")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(EmptyMapOnNotFoundOr404.class)
-   ListenableFuture<? extends Map<String, String>> getMetadata(@PathParam("id") String id);
-
-   /**
-    * @see ServerApi#setMetadata
-    */
-   @Named("server:setmetadata")
-   @PUT
-   @SelectJson("metadata")
-   @Path("/servers/{id}/metadata")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Produces(MediaType.APPLICATION_JSON)
-   @Fallback(EmptyMapOnNotFoundOr404.class)
-   @MapBinder(BindToJsonPayload.class)
-   ListenableFuture<? extends Map<String, String>> setMetadata(@PathParam("id") String id,
-            @PayloadParam("metadata") Map<String, String> metadata);
-
-   /**
-    * @see ServerApi#updateMetadata
-    */
-   @Named("server:updatemetadata")
-   @POST
-   @SelectJson("metadata")
-   @Path("/servers/{id}/metadata")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Produces(MediaType.APPLICATION_JSON)
-   @Fallback(EmptyMapOnNotFoundOr404.class)
-   @MapBinder(BindToJsonPayload.class)
-   ListenableFuture<? extends Map<String, String>> updateMetadata(@PathParam("id") String id,
-            @PayloadParam("metadata") Map<String, String> metadata);
-
-   /**
-    * @see ServerApi#getMetadata
-    */
-   @Named("server:getmetadata")
-   @GET
-   @Path("/servers/{id}/metadata/{key}")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @ResponseParser(OnlyMetadataValueOrNull.class)
-   @Fallback(NullOnNotFoundOr404.class)
-   ListenableFuture<String> getMetadata(@PathParam("id") String id, @PathParam("key") String key);
-
-   /**
-    * @see ServerApi#updateMetadata
-    */
-   @Named("server:updatemetadata")
-   @PUT
-   @Path("/servers/{id}/metadata/{key}")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Produces(MediaType.APPLICATION_JSON)
-   @ResponseParser(OnlyMetadataValueOrNull.class)
-   @MapBinder(BindMetadataToJsonPayload.class)
-   ListenableFuture<String> updateMetadata(@PathParam("id") String id,
-            @PathParam("key") @PayloadParam("key") String key, @PathParam("value") @PayloadParam("value") String value);
-
-   /**
-    * @see ServerApi#deleteMetadata
-    */
-   @Named("server:deletemetadata")
-   @DELETE
-   @Consumes
-   @Path("/servers/{id}/metadata/{key}")
-   @Fallback(VoidOnNotFoundOr404.class)
-   ListenableFuture<Void> deleteMetadata(@PathParam("id") String id, @PathParam("key") String key);
-
-   
-   /**
-    * @see ServerApi#getDiagnostics
-    */
-   @Named("server:getdiagnostics")
-   @GET
-   @Path("/servers/{id}/diagnostics")
-   @Consumes(MediaType.APPLICATION_JSON)
-   @Fallback(AbsentOn403Or404Or500.class)
-   @ResponseParser(ParseDiagnostics.class)
-   ListenableFuture<Optional<Map<String, String>>> getDiagnostics(@PathParam("id") String id);
-}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java
index 0e35e28..c63f7e9 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapterExpectTest.java
@@ -89,14 +89,14 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
 
       Template template = forNetworks.getInstance(TemplateBuilder.class).build();
       template.getOptions().as(NovaTemplateOptions.class).networks("4ebd35cf-bfe7-4d93-b0d8-eb468ce2245a");
-      
+
       NovaComputeServiceAdapter adapter = forNetworks.getInstance(NovaComputeServiceAdapter.class);
 
       NodeAndInitialCredentials<ServerInZone> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template);
       assertNotNull(server);
       // Response irrelevant in this expect test - just verifying the request.
    }
-   
+
    public void testCreateNodeWithGroupEncodedIntoNameWithDiskConfig() throws Exception {
 
       HttpRequest createServer = HttpRequest
@@ -124,7 +124,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
 
       Template template = forDiskConfig.getInstance(TemplateBuilder.class).build();
       template.getOptions().as(NovaTemplateOptions.class).diskConfig(Server.DISK_CONFIG_AUTO);
-      
+
       NovaComputeServiceAdapter adapter = forDiskConfig.getInstance(NovaComputeServiceAdapter.class);
 
       NodeAndInitialCredentials<ServerInZone> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template);
@@ -240,7 +240,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
 
       Template template = forSecurityGroups.getInstance(TemplateBuilder.class).build();
       template.getOptions().as(NovaTemplateOptions.class).securityGroupNames("group1", "group2");
-      
+
       NovaComputeServiceAdapter adapter = forSecurityGroups.getInstance(NovaComputeServiceAdapter.class);
 
       NodeAndInitialCredentials<ServerInZone> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
@@ -255,7 +255,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
     * authentication even be available.
     */
    public void testWhenKeyPairPresentWeUsePrivateKeyAsCredentialNotPassword() throws Exception {
-      
+
       HttpRequest createServer = HttpRequest
          .builder()
          .method("POST")
@@ -266,7 +266,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
                   "{\"server\":{\"name\":\"test-e92\",\"imageRef\":\"1241\",\"flavorRef\":\"100\",\"key_name\":\"foo\"}}", "application/json"))
          .build();
 
-  
+
       HttpResponse createServerResponse = HttpResponse.builder().statusCode(202).message("HTTP/1.1 202 Accepted")
          .payload(payloadFromResourceWithContentType("/new_server_no_adminpass.json", "application/json; charset=UTF-8")).build();
 
@@ -282,16 +282,16 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
 
       Template template = forSecurityGroups.getInstance(TemplateBuilder.class).build();
       template.getOptions().as(NovaTemplateOptions.class).keyPairName("foo");
-      
+
       NovaComputeServiceAdapter adapter = forSecurityGroups.getInstance(NovaComputeServiceAdapter.class);
-      
+
       // we expect to have already an entry in the cache for the key
       LoadingCache<ZoneAndName, KeyPair> keyPairCache = forSecurityGroups.getInstance(Key
                .get(new TypeLiteral<LoadingCache<ZoneAndName, KeyPair>>() {
                }));
       keyPairCache.put(ZoneAndName.fromZoneAndName("az-1.region-a.geo-1", "foo"), KeyPair.builder().name("foo")
                .privateKey("privateKey").build());
-      
+
       NodeAndInitialCredentials<ServerInZone> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92",
                template);
       assertNotNull(server);
@@ -349,6 +349,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
          .builder()
          .method("POST")
          .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/71752/action")
+         .addHeader("Accept", "application/json")
          .addHeader("X-Auth-Token", authToken)
          .payload(payloadFromStringWithContentType(
                   "{\"suspend\":null}", "application/json"))
@@ -412,7 +413,7 @@ public class NovaComputeServiceAdapterExpectTest extends BaseNovaComputeServiceC
    public Injector apply(ComputeServiceContext input) {
       return input.utils().injector();
    }
-   
+
    @Override
    protected Properties setupProperties() {
       Properties overrides = super.setupProperties();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java
index c8fa869..2c3e285 100644
--- a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java
+++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/compute/functions/AllocateAndAddFloatingIpToNodeExpectTest.java
@@ -94,7 +94,7 @@ public class AllocateAndAddFloatingIpToNodeExpectTest extends BaseNovaComputeSer
       HttpRequest addFloatingIPRequest = HttpRequest.builder().method("POST").endpoint(
                URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/71592/action"))
                .headers(
-                        ImmutableMultimap.<String, String> builder().put("Accept", "*/*")
+                        ImmutableMultimap.<String, String> builder().put("Accept", "application/json")
                                  .put("X-Auth-Token", authToken).build()).payload(
                         payloadFromStringWithContentType("{\"addFloatingIp\":{\"address\":\"" + address + "\"}}",
                                  "application/json")).build();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 9b28ec6..aa849c7 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
@@ -341,6 +341,7 @@ public class AdminActionsApiExpectTest extends BaseNovaApiExpectTest {
       return HttpRequest.builder()
                         .method("POST")
                         .addHeader("X-Auth-Token", authToken)
+                        .addHeader("Accept", "application/json")
                         .payload(payloadFromStringWithContentType("{\"" + actionName + "\":null}", MediaType.APPLICATION_JSON))
                         .endpoint(endpoint);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 6bd5244..c636603 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
@@ -92,7 +92,6 @@ public class ConsolesApiMockTest extends BaseOpenStackMockTest<NovaApi> {
 
          String zoneId = getFirst(novaApi.getConfiguredZones(), "RegionTwo");
 
-         System.out.println("zoneId: " + zoneId);
          ConsolesApi consolesApi = novaApi.getConsolesExtensionForZone(zoneId).get();
 
          assertEquals(server.getRequestCount(), 2);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 fc5b719..851abcd 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
@@ -32,7 +32,7 @@ import org.testng.annotations.Test;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Tests annotation parsing of {@code FloatingIPAsyncApi}
+ * Tests annotation parsing of {@code FloatingIPApi}
  */
 @Test(groups = "unit", testName = "FloatingIPApiExpectTest")
 public class FloatingIPApiExpectTest extends BaseNovaApiExpectTest {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 a9d362c..5a5a007 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
@@ -31,7 +31,7 @@ import org.testng.annotations.Test;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Tests annotation parsing of {@code KeyPairAsyncApi}
+ * Tests annotation parsing of {@code KeyPairApi}
  */
 @Test(groups = "unit", testName = "KeyPairApiExpectTest")
 public class KeyPairApiExpectTest extends BaseNovaApiExpectTest {
@@ -128,7 +128,7 @@ public class KeyPairApiExpectTest extends BaseNovaApiExpectTest {
             .builder()
             .method("DELETE")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-keypairs/testkeypair")
-            .addHeader("Accept", "*/*")
+            .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken).build();
 
       HttpResponse deleteResponse = HttpResponse.builder().statusCode(202).build();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 e256589..9c35378 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
@@ -82,6 +82,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest {
             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(200).build()).getQuotaExtensionForZone("az-1.region-a.geo-1").get();
@@ -96,6 +97,7 @@ public class QuotaApiExpectTest extends BaseNovaApiExpectTest {
             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()).getQuotaExtensionForZone("az-1.region-a.geo-1").get();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 37b3551..b3ceb6d 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
@@ -38,7 +38,7 @@ import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Tests annotation parsing of {@code SecurityGroupAsyncApi}
+ * Tests annotation parsing of {@code SecurityGroupApi}
  */
 @Test(groups = "unit", testName = "SecurityGroupApiExpectTest")
 public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest {
@@ -206,7 +206,7 @@ public class SecurityGroupApiExpectTest extends BaseNovaApiExpectTest {
       HttpRequest deleteRule = HttpRequest.builder().method("DELETE").endpoint(
                URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-security-group-rules/161"))
                .headers(
-                        ImmutableMultimap.<String, String> builder().put("Accept", "*/*")
+                        ImmutableMultimap.<String, String> builder().put("Accept", "application/json")
                                  .put("X-Auth-Token", authToken).build()).build();
 
       HttpResponse deleteRuleResponse = HttpResponse.builder().statusCode(202).build();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 e95080f..49a8920 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
@@ -31,18 +31,18 @@ import org.testng.annotations.Test;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Tests annotation parsing of {@code ExtensionAsyncApi}
+ * Tests annotation parsing of {@code ExtensionApi}
  */
 @Test(groups = "unit", testName = "ExtensionApiExpectTest")
 public class ExtensionApiExpectTest extends BaseNovaApiExpectTest {
 
    public void testListExtensionsWhenResponseIs2xx() throws Exception {
-      HttpRequest listExtensions = HttpRequest
-            .builder()
+      HttpRequest listExtensions = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/extensions")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse listExtensionsResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/extension_list.json")).build();
@@ -57,12 +57,12 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest {
    }
 
    public void testListExtensionsWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listExtensions = HttpRequest
-            .builder()
+      HttpRequest listExtensions = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/extensions")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse listExtensionsResponse = HttpResponse.builder().statusCode(404).build();
 
@@ -74,13 +74,12 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest {
 
    // TODO: gson deserializer for Multimap
    public void testGetExtensionByAliasWhenResponseIs2xx() throws Exception {
-
-      HttpRequest getExtension = HttpRequest
-            .builder()
+      HttpRequest getExtension = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/extensions/RS-PIE")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse getExtensionResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/extension_details.json")).build();
@@ -93,12 +92,12 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest {
    }
 
    public void testGetExtensionByAliasWhenResponseIs404() throws Exception {
-      HttpRequest getExtension = HttpRequest
-            .builder()
+      HttpRequest getExtension = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/extensions/RS-PIE")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse getExtensionResponse = HttpResponse.builder().statusCode(404)
             .payload(payloadFromResource("/extension_details.json")).build();
@@ -107,7 +106,5 @@ public class ExtensionApiExpectTest extends BaseNovaApiExpectTest {
             responseWithKeystoneAccess, getExtension, getExtensionResponse);
 
       assertNull(apiWhenNoExtensionsExist.getExtensionApiForZone("az-1.region-a.geo-1").get("RS-PIE"));
-
    }
-
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 54be43d..91c1b9f 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
@@ -37,18 +37,18 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.net.HttpHeaders;
 
 /**
- * Tests annotation parsing of {@code FlavorAsyncApi}
+ * Tests annotation parsing of {@code FlavorApi}
  */
 @Test(groups = "unit", testName = "FlavorApiExpectTest")
 public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
 
    public void testListFlavorsWhenResponseIs2xx() throws Exception {
-      HttpRequest listFlavors = HttpRequest
-            .builder()
+      HttpRequest listFlavors = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/flavors")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse listFlavorsResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/flavor_list.json")).build();
@@ -63,12 +63,12 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
    }
 
    public void testListFlavorsWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest listFlavors = HttpRequest
-            .builder()
+      HttpRequest listFlavors = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/flavors")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse listFlavorsResponse = HttpResponse.builder().statusCode(404).build();
 
@@ -80,13 +80,12 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
 
    // TODO: gson deserializer for Multimap
    public void testGetFlavorWhenResponseIs2xx() throws Exception {
-
-      HttpRequest getFlavor = HttpRequest
-            .builder()
+      HttpRequest getFlavor = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/flavors/52415800-8b69-11e0-9b19-734f1195ff37")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse getFlavorResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/flavor_details.json")).build();
@@ -100,8 +99,7 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
    }
 
    public void testGetFlavorWhenResponseIs404() throws Exception {
-      HttpRequest getFlavor = HttpRequest
-            .builder()
+      HttpRequest getFlavor = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/flavors/123")
             .addHeader("Accept", "application/json")
@@ -114,19 +112,17 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
             responseWithKeystoneAccess, getFlavor, getFlavorResponse);
 
       assertNull(apiWhenNoFlavorsExist.getFlavorApiForZone("az-1.region-a.geo-1").get("123"));
-
    }
-   
+
    public void testCreateFlavor200() throws Exception {
-   	ParseCreateFlavorTest parser = new ParseCreateFlavorTest();
-      HttpRequest listFlavors = HttpRequest
-            .builder()
+      ParseCreateFlavorTest parser = new ParseCreateFlavorTest();
+      HttpRequest listFlavors = HttpRequest.builder()
             .method(HttpMethod.POST)
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/flavors")
             .addHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
             .addHeader("X-Auth-Token", authToken)
             .payload(payloadFromResource(parser.resource())).build();
-      
+
       HttpResponse listFlavorsResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource(parser.resource())).build();
 
@@ -135,25 +131,23 @@ public class FlavorApiExpectTest extends BaseNovaApiExpectTest {
 
       assertEquals(
             api.getFlavorApiForZone("az-1.region-a.geo-1").create(Flavor.builder()
-					.id("1cb47a44-9b84-4da4-bf81-c1976e8414ab")
-					.name("128 MB Server").ram(128).vcpus(1)
-					.disk(10).build())
+                  .id("1cb47a44-9b84-4da4-bf81-c1976e8414ab")
+                  .name("128 MB Server").ram(128).vcpus(1)
+                  .disk(10).build())
                   .toString(), parser.expected().toString());
    }
 
    public void testDeleteFlavor202() throws Exception {
       String flavorId = "1cb47a44-9b84-4da4-bf81-c1976e8414ab";
-
-      HttpRequest updateMetadata = HttpRequest
-            .builder()
+      HttpRequest updateMetadata = HttpRequest.builder()
             .method(HttpMethod.DELETE)
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/flavors/" + flavorId)
-            .addHeader(HttpHeaders.ACCEPT, MediaType.WILDCARD)
+            .addHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
             .addHeader("X-Auth-Token", authToken)
             .build();
 
       HttpResponse updateMetadataResponse = HttpResponse.builder().statusCode(204).build();
-      
+
       NovaApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
                responseWithKeystoneAccess, updateMetadata, updateMetadataResponse);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/801aecaf/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 fd74916..30840f2 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
@@ -35,17 +35,18 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * Tests annotation parsing of {@code ImageAsyncApi}
+ * Tests annotation parsing of {@code ImageApi}
  */
-@Test(groups = "unit", testName = "ImageAsyncApiTest")
+@Test(groups = "unit", testName = "ImageApiExpectTest")
 public class ImageApiExpectTest extends BaseNovaApiExpectTest {
+
    public void testListImagesWhenResponseIs2xx() throws Exception {
-      HttpRequest list = HttpRequest
-            .builder()
+      HttpRequest list = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse listResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/image_list.json")).build();
@@ -60,12 +61,12 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
    }
 
    public void testListImagesWhenReponseIs404IsEmpty() throws Exception {
-      HttpRequest list = HttpRequest
-            .builder()
+      HttpRequest list = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse listResponse = HttpResponse.builder().statusCode(404).build();
 
@@ -77,12 +78,12 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
 
    public void testGetImageWhenResponseIs2xx() throws Exception {
 
-      HttpRequest getImage = HttpRequest
-            .builder()
+      HttpRequest getImage = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/52415800-8b69-11e0-9b19-734f5736d2a2")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse getImageResponse = HttpResponse.builder().statusCode(200)
             .payload(payloadFromResource("/image_details.json")).build();
@@ -96,46 +97,43 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
    }
 
    public void testGetImageWhenResponseIs404() throws Exception {
-      HttpRequest getImage = HttpRequest
-            .builder()
+      HttpRequest getImage = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/52415800-8b69-11e0-9b19-734f5736d2a2")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
+            .addHeader("X-Auth-Token", authToken)
+            .build();
 
       HttpResponse getImageResponse = HttpResponse.builder().statusCode(404).build();
 
       NovaApi apiWhenNoImagesExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
             responseWithKeystoneAccess, getImage, getImageResponse);
 
-      assertNull(apiWhenNoImagesExist.getImageApiForZone("az-1.region-a.geo-1").get(
-            "52415800-8b69-11e0-9b19-734f5736d2a2"));
-
+      assertNull(apiWhenNoImagesExist.getImageApiForZone("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()
+      String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
+      HttpRequest getMetadata = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata")
             .addHeader("Accept", "application/json")
-            .addHeader("X-Auth-Token", authToken).build();
-        
+            .addHeader("X-Auth-Token", authToken)
+            .build();
+
       HttpResponse getMetadataResponse = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/metadata_list.json")).build();
-      
+
       NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
                responseWithKeystoneAccess, getMetadata, getMetadataResponse);
 
-      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId).toString(),  
+      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId).toString(),
              new ParseMetadataListTest().expected().toString());
    }
-   
+
    public void testListMetadataWhenResponseIs404() throws Exception {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
-      HttpRequest getMetadata = HttpRequest
-            .builder()
+      HttpRequest getMetadata = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata")
             .addHeader("Accept", "*/*")
@@ -162,22 +160,22 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
               .put("Image Version", "2.1")
               .build();
 
-      HttpRequest setMetadata = HttpRequest
-            .builder()
+      HttpRequest setMetadata = HttpRequest.builder()
             .method("PUT")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata")
             .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken)
-            .payload(payloadFromStringWithContentType("{\"metadata\":{\"Server Label\":\"Web Head 1\",\"Image Version\":\"2.1\"}}", "application/json"))
+            .payload(payloadFromStringWithContentType(
+                  "{\"metadata\":{\"Server Label\":\"Web Head 1\",\"Image Version\":\"2.1\"}}", "application/json"))
             .build();
 
       HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/metadata_list.json")).build();
-      
+
       NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
                responseWithKeystoneAccess, setMetadata, setMetadataResponse);
 
-      assertEquals(apiWhenImageExists.getImageApiForZone("az-1.region-a.geo-1").setMetadata(imageId, metadata).toString(),  
+      assertEquals(apiWhenImageExists.getImageApiForZone("az-1.region-a.geo-1").setMetadata(imageId, metadata).toString(),
              new ParseMetadataListTest().expected().toString());
    }
 
@@ -187,14 +185,14 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
               .put("Server Label", "Web Head 1")
               .put("Image Version", "2.1")
               .build();
-      
-      HttpRequest setMetadata = HttpRequest
-            .builder()
+
+      HttpRequest setMetadata = HttpRequest.builder()
             .method("PUT")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/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"))
+            .payload(payloadFromStringWithContentType(
+                  "{\"metadata\":{\"Server Label\":\"Web Head 1\",\"Image Version\":\"2.1\"}}", "application/json"))
             .build();
 
       HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(404).build();
@@ -217,22 +215,22 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
               .put("Server Description", "Simple Server")
               .build();
 
-      HttpRequest setMetadata = HttpRequest
-            .builder()
+      HttpRequest setMetadata = HttpRequest.builder()
             .method("POST")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + 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"))
+            .payload(payloadFromStringWithContentType(
+                  "{\"metadata\":{\"Server Label\":\"Web Head 2\",\"Server Description\":\"Simple Server\"}}", "application/json"))
             .build();
 
       HttpResponse setMetadataResponse = HttpResponse.builder().statusCode(200)
               .payload(payloadFromResource("/metadata_updated.json")).build();
-      
+
       NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
                responseWithKeystoneAccess, setMetadata, setMetadataResponse);
 
-      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").updateMetadata(imageId, metadata).toString(),  
+      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").updateMetadata(imageId, metadata).toString(),
              new ParseMetadataUpdateTest().expected().toString());
    }
 
@@ -243,8 +241,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
               .put("Server Description", "Simple Server")
               .build();
 
-      HttpRequest setMetadata = HttpRequest
-            .builder()
+      HttpRequest setMetadata = HttpRequest.builder()
             .method("POST")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/" + imageId + "/metadata")
             .addHeader("Accept", "application/json")
@@ -259,7 +256,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
                responseWithKeystoneAccess, setMetadata, setMetadataResponse);
 
       try {
-    	 apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").setMetadata(imageId, metadata);
+         apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").setMetadata(imageId, metadata);
          fail("Expected an exception.");
       } catch (Exception e) {
          // expected
@@ -270,8 +267,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       String key = "Image%20Version";
 
-      HttpRequest getMetadata = HttpRequest
-            .builder()
+      HttpRequest getMetadata = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata/" + key)
             .addHeader("Accept", "application/json")
@@ -280,11 +276,11 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
 
       HttpResponse getMetadataResponse = HttpResponse.builder().statusCode(200)
               .payload(payloadFromString("{\"metadata\":{\"Image Version\":\"2.5\"}}")).build();
-      
+
       NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
                responseWithKeystoneAccess, getMetadata, getMetadataResponse);
 
-      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId, "Image Version").toString(),  
+      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").getMetadata(imageId, "Image Version").toString(),
              "2.5");
    }
 
@@ -292,8 +288,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       String key = "Image%20Version";
 
-      HttpRequest getMetadata = HttpRequest
-            .builder()
+      HttpRequest getMetadata = HttpRequest.builder()
             .method("GET")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata/" + key)
             .addHeader("Accept", "application/json")
@@ -313,8 +308,7 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       String key = "Image Version";
 
-      HttpRequest updateMetadata = HttpRequest
-            .builder()
+      HttpRequest updateMetadata = HttpRequest.builder()
             .method("PUT")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata/" + "Image%20Version")
             .addHeader("Accept", "application/json")
@@ -324,28 +318,27 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
 
       HttpResponse updateMetadataResponse = HttpResponse.builder().statusCode(200)
               .payload(payloadFromStringWithContentType("{\"metadata\":{\"Image Version\":\"2.5\"}}", "application/json")).build();
-      
+
       NovaApi apiWhenServerExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
                responseWithKeystoneAccess, updateMetadata, updateMetadataResponse);
-      
-      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").updateMetadata(imageId, key, "2.5").toString(),  
+
+      assertEquals(apiWhenServerExists.getImageApiForZone("az-1.region-a.geo-1").updateMetadata(imageId, key, "2.5").toString(),
              "2.5");
    }
 
    public void testDeleteMetadataItemWhenResponseIs2xx() throws Exception {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       String key = "Image%20Version";
-      
-      HttpRequest deleteMetadata = HttpRequest
-            .builder()
+
+      HttpRequest deleteMetadata = HttpRequest.builder()
             .method("DELETE")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata/" + key)
-            .addHeader("Accept", "*/*")
+            .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken)
             .build();
 
       HttpResponse deleteMetadataResponse = HttpResponse.builder().statusCode(204).build();
-      
+
       NovaApi apiWhenImageExists = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName,
                responseWithKeystoneAccess, deleteMetadata, deleteMetadataResponse);
 
@@ -356,11 +349,10 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
       String imageId = "52415800-8b69-11e0-9b19-734f5736d2a2";
       String key = "Image%20Version";
 
-      HttpRequest deleteMetadata = HttpRequest
-            .builder()
+      HttpRequest deleteMetadata = HttpRequest.builder()
             .method("DELETE")
             .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/images/" + imageId + "/metadata/" + key)
-            .addHeader("Accept", "*/*")
+            .addHeader("Accept", "application/json")
             .addHeader("X-Auth-Token", authToken)
             .build();
 
@@ -370,6 +362,5 @@ public class ImageApiExpectTest extends BaseNovaApiExpectTest {
                responseWithKeystoneAccess, deleteMetadata, deleteMetadataResponse);
 
       apiWhenImageExists.getImageApiForZone("az-1.region-a.geo-1").deleteMetadata(imageId, key);
-
    }
 }