diff options
Diffstat (limited to 'node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApi.java')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/ConfigServerApi.java | 47 |
1 files changed, 37 insertions, 10 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 9b496526804..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 @@ -1,6 +1,7 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.node.admin.configserver; +import java.time.Duration; import java.util.Optional; /** @@ -9,16 +10,42 @@ import java.util.Optional; * @author freva */ public interface ConfigServerApi extends AutoCloseable { - - <T> T get(String path, Class<T> wantedReturnType); - - <T> T post(String path, Object bodyJsonPojo, Class<T> wantedReturnType); - - <T> T put(String path, Optional<Object> bodyJsonPojo, Class<T> wantedReturnType); - - <T> T patch(String path, Object bodyJsonPojo, Class<T> wantedReturnType); - - <T> T delete(String path, Class<T> wantedReturnType); + class Params { + private Optional<Duration> connectionTimeout; + + /** Set the socket connect and read timeouts. */ + public Params setConnectionTimeout(Duration connectionTimeout) { + this.connectionTimeout = Optional.of(connectionTimeout); + return this; + } + + public Optional<Duration> getConnectionTimeout() { return connectionTimeout; } + } + + <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, 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, 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, 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, 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 |