diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-11-18 13:58:22 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-11-18 13:58:22 +0100 |
commit | a7bdbf5e11227c26e4e9e8daa6ae3029521635cf (patch) | |
tree | 2e6eac429b394efb587c033d7dc69399b27ae5a7 /node-admin/src | |
parent | 4f8c813ee2473509e297b6eddc3e35af758546e0 (diff) |
Support Params for all HTTP methods
Diffstat (limited to 'node-admin/src')
3 files changed, 31 insertions, 21 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApi.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApi.java index 0fa7dbfacae..90768facf34 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApi.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApi.java @@ -22,17 +22,30 @@ public interface ConfigServerApi extends AutoCloseable { public Optional<Duration> getConnectionTimeout() { return connectionTimeout; } } - <T> T get(String path, Class<T> wantedReturnType); <T> T get(String path, Class<T> wantedReturnType, Params params); + default <T> T get(String path, Class<T> wantedReturnType) { + return get(path, wantedReturnType, null); + } - <T> T post(String path, Object bodyJsonPojo, Class<T> wantedReturnType); + <T> T post(String path, Object bodyJsonPojo, Class<T> wantedReturnType, Params params); + default <T> T post(String path, Object bodyJsonPojo, Class<T> wantedReturnType) { + return post(path, bodyJsonPojo, wantedReturnType, null); + } - <T> T put(String path, Optional<Object> bodyJsonPojo, Class<T> wantedReturnType); <T> T put(String path, Optional<Object> bodyJsonPojo, Class<T> wantedReturnType, Params params); + default <T> T put(String path, Optional<Object> bodyJsonPojo, Class<T> wantedReturnType) { + return put(path, bodyJsonPojo, wantedReturnType, null); + } - <T> T patch(String path, Object bodyJsonPojo, Class<T> wantedReturnType); + <T> T patch(String path, Object bodyJsonPojo, Class<T> wantedReturnType, Params params); + default <T> T patch(String path, Object bodyJsonPojo, Class<T> wantedReturnType) { + return patch(path, bodyJsonPojo, wantedReturnType, null); + } - <T> T delete(String path, Class<T> wantedReturnType); + <T> T delete(String path, Class<T> wantedReturnType, Params params); + default <T> T delete(String path, Class<T> wantedReturnType) { + return delete(path, wantedReturnType, null); + } /** Close the underlying HTTP client and any threads this class might have started. */ @Override diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java index 4e6b3ed93a5..a066375ce5c 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImpl.java @@ -139,11 +139,6 @@ public class ConfigServerApiImpl implements ConfigServerApi { } @Override - public <T> T put(String path, Optional<Object> bodyJsonPojo, Class<T> wantedReturnType) { - return put(path, bodyJsonPojo, wantedReturnType, null); - } - - @Override public <T> T put(String path, Optional<Object> bodyJsonPojo, Class<T> wantedReturnType, Params paramsOrNull) { Optional<RequestConfig> requestConfigOverride = getRequestConfigOverride(paramsOrNull); return tryAllConfigServers(configServer -> { @@ -158,9 +153,11 @@ public class ConfigServerApiImpl implements ConfigServerApi { } @Override - public <T> T patch(String path, Object bodyJsonPojo, Class<T> wantedReturnType) { + public <T> T patch(String path, Object bodyJsonPojo, Class<T> wantedReturnType, Params paramsOrNull) { + Optional<RequestConfig> requestConfigOverride = getRequestConfigOverride(paramsOrNull); return tryAllConfigServers(configServer -> { HttpPatch patch = new HttpPatch(configServer.resolve(path)); + requestConfigOverride.ifPresent(patch::setConfig); setContentTypeToApplicationJson(patch); patch.setEntity(new StringEntity(mapper.writeValueAsString(bodyJsonPojo))); return patch; @@ -168,14 +165,13 @@ public class ConfigServerApiImpl implements ConfigServerApi { } @Override - public <T> T delete(String path, Class<T> wantedReturnType) { - return tryAllConfigServers(configServer -> - new HttpDelete(configServer.resolve(path)), wantedReturnType); - } - - @Override - public <T> T get(String path, Class<T> wantedReturnType) { - return get(path, wantedReturnType, null); + public <T> T delete(String path, Class<T> wantedReturnType, Params paramsOrNull) { + Optional<RequestConfig> requestConfigOverride = getRequestConfigOverride(paramsOrNull); + return tryAllConfigServers(configServer -> { + HttpDelete delete = new HttpDelete(configServer.resolve(path)); + requestConfigOverride.ifPresent(delete::setConfig); + return delete; + }, wantedReturnType); } @Override @@ -189,9 +185,11 @@ public class ConfigServerApiImpl implements ConfigServerApi { } @Override - public <T> T post(String path, Object bodyJsonPojo, Class<T> wantedReturnType) { + public <T> T post(String path, Object bodyJsonPojo, Class<T> wantedReturnType, Params paramsOrNull) { + Optional<RequestConfig> requestConfigOverride = getRequestConfigOverride(paramsOrNull); return tryAllConfigServers(configServer -> { HttpPost post = new HttpPost(configServer.resolve(path)); + requestConfigOverride.ifPresent(post::setConfig); setContentTypeToApplicationJson(post); post.setEntity(new StringEntity(mapper.writeValueAsString(bodyJsonPojo))); return post; diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImplTest.java index 1eee377a845..0909a03749e 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImplTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApiImplTest.java @@ -116,7 +116,6 @@ public class ConfigServerApiImplTest { @Test public void testBasicSuccessWithCustomTimeouts() { - // Server is returning 201, no retries. mockReturnCode = TIMEOUT_RETURN_CODE; var params = new ConfigServerApi.Params(); |