From d743d1193492199b9d5f66e499f292160ffce88d Mon Sep 17 00:00:00 2001 From: Ignasi Barrera Date: Thu, 28 Jun 2012 17:54:28 +0200 Subject: [PATCH] Allow to modify the X-Chef-Version Modified the ChefAsyncClient to read the value for the X-Chef-Version header from the jclouds.api-version property. This way users will have a way to configure the version of the Chef server they are consuming. --- .../org/jclouds/chef/ChefAsyncClient.java | 3 +- .../org/jclouds/chef/ChefAsyncClientTest.java | 93 ++++++++++--------- 2 files changed, 52 insertions(+), 44 deletions(-) diff --git a/apis/chef/src/main/java/org/jclouds/chef/ChefAsyncClient.java b/apis/chef/src/main/java/org/jclouds/chef/ChefAsyncClient.java index a904eef678..7c31a418c0 100644 --- a/apis/chef/src/main/java/org/jclouds/chef/ChefAsyncClient.java +++ b/apis/chef/src/main/java/org/jclouds/chef/ChefAsyncClient.java @@ -34,6 +34,7 @@ import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; +import org.jclouds.Constants; import org.jclouds.chef.binders.BindChecksumsToJsonPayload; import org.jclouds.chef.binders.BindCreateClientOptionsToJsonPayload; import org.jclouds.chef.binders.BindGenerateKeyForClientToJsonPayload; @@ -87,7 +88,7 @@ import com.google.common.util.concurrent.ListenableFuture; * @author Adrian Cole */ @RequestFilters(SignedHeaderAuth.class) -@Headers(keys = "X-Chef-Version", values = ChefAsyncClient.VERSION) +@Headers(keys = "X-Chef-Version", values = "{" + Constants.PROPERTY_API_VERSION + "}") @Consumes(MediaType.APPLICATION_JSON) public interface ChefAsyncClient { public static final String VERSION = "0.9.8"; diff --git a/apis/chef/src/test/java/org/jclouds/chef/ChefAsyncClientTest.java b/apis/chef/src/test/java/org/jclouds/chef/ChefAsyncClientTest.java index 90dc4b46ed..3b898ce777 100644 --- a/apis/chef/src/test/java/org/jclouds/chef/ChefAsyncClientTest.java +++ b/apis/chef/src/test/java/org/jclouds/chef/ChefAsyncClientTest.java @@ -23,8 +23,10 @@ import static org.testng.Assert.assertEquals; import java.io.IOException; import java.lang.reflect.Method; import java.net.URI; +import java.util.Properties; import java.util.Set; +import org.jclouds.Constants; import org.jclouds.apis.ApiMetadata; import org.jclouds.chef.config.ChefRestClientModule; import org.jclouds.chef.domain.CookbookVersion; @@ -81,7 +83,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { "0189e76ccc476701d6b374e5a1a27347", true); assertRequestLineEquals(httpRequest, "PUT http://localhost:4000/sandboxes/0189e76ccc476701d6b374e5a1a27347 HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"is_completed\":\"true\"}", "application/json", false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -99,7 +101,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { .hex("0c5ecd7788cf4f6c7de2a57193897a6c")), Bytes.asList(CryptoStreams .hex("1dda05ed139664f1f89b9dec482b77c0")))); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/sandboxes HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"checksums\":{\"0189e76ccc476701d6b374e5a1a27347\":null,\"0c5ecd7788cf4f6c7de2a57193897a6c\":null,\"1dda05ed139664f1f89b9dec482b77c0\":null}}", @@ -118,7 +120,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method, URI.create("http://foo/bar"), new StringPayload("{\"foo\": \"bar\"}")); assertRequestLineEquals(httpRequest, "PUT http://foo/bar HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"foo\": \"bar\"}", "application/x-binary", false); assertResponseParserClassEquals(method, httpRequest, ReleasePayloadAndReturn.class); @@ -133,7 +135,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("getCookbook", String.class, String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "cookbook", "1.0.0"); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/cookbooks/cookbook/1.0.0 HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -148,7 +150,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("deleteCookbook", String.class, String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "cookbook", "1.0.0"); assertRequestLineEquals(httpRequest, "DELETE http://localhost:4000/cookbooks/cookbook/1.0.0 HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -166,7 +168,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { new CookbookVersion("cookbook", "1.0.1")); assertRequestLineEquals(httpRequest, "PUT http://localhost:4000/cookbooks/cookbook/1.0.1 HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"name\":\"cookbook-1.0.1\",\"definitions\":[],\"attributes\":[],\"files\":[],\"metadata\":{\"suggestions\":{},\"dependencies\":{},\"conflicting\":{},\"providing\":{},\"platforms\":{},\"recipes\":{},\"replacing\":{},\"groupings\":{},\"attributes\":{},\"recommendations\":{}},\"providers\":[],\"cookbook_name\":\"cookbook\",\"resources\":[],\"templates\":[],\"libraries\":[],\"version\":\"1.0.1\",\"recipes\":[],\"root_files\":[],\"json_class\":\"Chef::CookbookVersion\",\"chef_type\":\"cookbook_version\"}", @@ -184,7 +186,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/cookbooks HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseKeySetFromJson.class); @@ -199,7 +201,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("clientExists", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "client"); assertRequestLineEquals(httpRequest, "HEAD http://localhost:4000/clients/client HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ReturnTrueIf2xx.class); @@ -214,7 +216,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("deleteClient", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "client"); assertRequestLineEquals(httpRequest, "DELETE http://localhost:4000/clients/client HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -230,7 +232,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method, "client"); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/clients HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"name\":\"client\"}", "application/json", false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -246,7 +248,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method, "client", CreateClientOptions.Builder.admin()); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/clients HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"name\":\"client\",\"admin\":true}", "application/json", false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -262,7 +264,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/clients HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseKeySetFromJson.class); @@ -277,7 +279,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("generateKeyForClient", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "client"); assertRequestLineEquals(httpRequest, "PUT http://localhost:4000/clients/client HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"name\":\"client\", \"private_key\": true}", "application/json", false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -292,7 +294,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("nodeExists", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "node"); assertRequestLineEquals(httpRequest, "HEAD http://localhost:4000/nodes/node HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ReturnTrueIf2xx.class); @@ -307,7 +309,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("deleteNode", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "node"); assertRequestLineEquals(httpRequest, "DELETE http://localhost:4000/nodes/node HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -324,7 +326,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { ImmutableSet.of("recipe[java]"))); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/nodes HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"name\":\"testnode\",\"normal\":{},\"override\":{},\"default\":{},\"automatic\":{},\"run_list\":[\"recipe[java]\"],\"json_class\":\"Chef::Node\",\"chef_type\":\"node\"}", @@ -344,7 +346,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { ImmutableSet.of("recipe[java]"))); assertRequestLineEquals(httpRequest, "PUT http://localhost:4000/nodes/testnode HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"name\":\"testnode\",\"normal\":{},\"override\":{},\"default\":{},\"automatic\":{},\"run_list\":[\"recipe[java]\"],\"json_class\":\"Chef::Node\",\"chef_type\":\"node\"}", @@ -363,7 +365,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/nodes HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseKeySetFromJson.class); @@ -378,7 +380,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("roleExists", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "role"); assertRequestLineEquals(httpRequest, "HEAD http://localhost:4000/roles/role HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ReturnTrueIf2xx.class); @@ -393,7 +395,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("deleteRole", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "role"); assertRequestLineEquals(httpRequest, "DELETE http://localhost:4000/roles/role HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -410,7 +412,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { ImmutableSet.of("recipe[java]"))); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/roles HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"name\":\"testrole\",\"override_attributes\":{},\"default_attributes\":{},\"run_list\":[\"recipe[java]\"],\"json_class\":\"Chef::Role\",\"chef_type\":\"role\"}", @@ -430,7 +432,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { ImmutableSet.of("recipe[java]"))); assertRequestLineEquals(httpRequest, "PUT http://localhost:4000/roles/testrole HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"name\":\"testrole\",\"override_attributes\":{},\"default_attributes\":{},\"run_list\":[\"recipe[java]\"],\"json_class\":\"Chef::Role\",\"chef_type\":\"role\"}", @@ -449,7 +451,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/roles HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseKeySetFromJson.class); @@ -464,7 +466,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("databagExists", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "databag"); assertRequestLineEquals(httpRequest, "HEAD http://localhost:4000/data/databag HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ReturnTrueIf2xx.class); @@ -479,7 +481,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("deleteDatabag", String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "databag"); assertRequestLineEquals(httpRequest, "DELETE http://localhost:4000/data/databag HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ReleasePayloadAndReturn.class); @@ -495,7 +497,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method, "name"); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/data HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"name\":\"name\"}", "application/json", false); assertResponseParserClassEquals(method, httpRequest, ReleasePayloadAndReturn.class); @@ -511,7 +513,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/data HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseKeySetFromJson.class); @@ -526,7 +528,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("databagItemExists", String.class, String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "name", "databagItem"); assertRequestLineEquals(httpRequest, "HEAD http://localhost:4000/data/name/databagItem HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ReturnTrueIf2xx.class); @@ -541,7 +543,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { Method method = ChefAsyncClient.class.getMethod("deleteDatabagItem", String.class, String.class); GeneratedHttpRequest httpRequest = processor.createRequest(method, "name", "databagItem"); assertRequestLineEquals(httpRequest, "DELETE http://localhost:4000/data/name/databagItem HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -560,7 +562,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { "100")); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/data/name HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"name\":\"testdatabagItem\",\"override_attributes\":{},\"default_attributes\":{},\"run_list\":[\"recipe[java]\"],\"json_class\":\"Chef::DatabagItem\",\"chef_type\":\"databagItem\"}", @@ -582,7 +584,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { "{\"id\": \"item1\",\"my_key\": \"my_data\"}")); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/data/name HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals( httpRequest, "{\"name\":\"testdatabagItem\",\"override_attributes\":{},\"default_attributes\":{},\"run_list\":[\"recipe[java]\"],\"json_class\":\"Chef::DatabagItem\",\"chef_type\":\"databagItem\"}", @@ -602,7 +604,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { "{\"id\": \"id\",\"my_key\": \"my_data\"}")); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/data/name HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"id\": \"id\",\"my_key\": \"my_data\"}", "application/json", false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -619,7 +621,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { "{\"my_key\": \"my_data\"}")); assertRequestLineEquals(httpRequest, "POST http://localhost:4000/data/name HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"id\":\"id\",\"my_key\": \"my_data\"}", "application/json", false); assertResponseParserClassEquals(method, httpRequest, ParseJson.class); @@ -636,7 +638,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { "{\"my_key\": \"my_data\"}")); assertRequestLineEquals(httpRequest, "PUT http://localhost:4000/data/name/id HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, "{\"id\":\"id\",\"my_key\": \"my_data\"}", "application/json", false); @@ -653,7 +655,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method, "name"); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/data/name HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseKeySetFromJson.class); @@ -669,7 +671,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/search HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseKeySetFromJson.class); @@ -685,7 +687,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/search/role HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseSearchRolesFromJson.class); @@ -701,7 +703,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/search/client HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseSearchClientsFromJson.class); @@ -717,7 +719,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/search/node HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseSearchNodesFromJson.class); @@ -733,7 +735,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { GeneratedHttpRequest httpRequest = processor.createRequest(method, "foo"); assertRequestLineEquals(httpRequest, "GET http://localhost:4000/search/foo HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseSearchDatabagFromJson.class); @@ -750,7 +752,7 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { new Resource("test", URI.create("http://foo/bar"), new byte[]{}, null, null)); assertRequestLineEquals(httpRequest, "GET http://foo/bar HTTP/1.1"); - assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: 0.9.8\n"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefAsyncClient.VERSION + "-test\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ReturnInputStream.class); @@ -778,16 +780,21 @@ public class ChefAsyncClientTest extends BaseAsyncClientTest { return new TestChefRestClientModule(); } + @Override + protected Properties setupProperties() { + Properties props = super.setupProperties(); + props.put(Constants.PROPERTY_API_VERSION, ChefAsyncClient.VERSION + "-test"); + return props; + } + @ConfiguresRestClient static class TestChefRestClientModule extends ChefRestClientModule { @Override protected String provideTimeStamp(@TimeStamp Supplier cache) { return "timestamp"; } - } - @Override public ApiMetadata createApiMetadata() { identity = "user";