aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java
diff options
context:
space:
mode:
authorEylon Malin <eylon.malin@intl.att.com>2019-08-22 15:22:17 +0300
committerEylon Malin <eylon.malin@intl.att.com>2019-08-22 16:33:04 +0300
commit6eef01205c39cc155a8b6f5de25a564b44c919f9 (patch)
tree3a998e300d292231b0541ae54b4cb1b75bca82f4 /vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java
parent25082565839ea949b938eddb83d0670b3af8e536 (diff)
make scheduler client tolerance to error messages
Read response from scheduler as String save them as raw, and only then parse them Issue-ID: VID-378 Signed-off-by: Eylon Malin <eylon.malin@intl.att.com> Change-Id: I38ed8f211b2c111b57741254cb5e90317fefdc7d Signed-off-by: Eylon Malin <eylon.malin@intl.att.com>
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java b/vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java
index 78b3e9709..7878c2fb8 100644
--- a/vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java
+++ b/vid-app-common/src/main/java/org/onap/vid/scheduler/SchedulerRestInterface.java
@@ -21,6 +21,7 @@
package org.onap.vid.scheduler;
import com.att.eelf.configuration.EELFLogger;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import io.joshworks.restclient.http.HttpResponse;
@@ -43,6 +44,7 @@ import java.util.Collections;
import java.util.Map;
import java.util.function.Function;
+import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER;
import static org.onap.vid.utils.Logging.REQUEST_ID_HEADER_KEY;
@Service
@@ -90,15 +92,19 @@ public class SchedulerRestInterface implements SchedulerRestInterfaceIfc {
.putAll(commonHeaders)
.put(REQUEST_ID_HEADER_KEY, Logging.extractOrGenerateRequestId())
.build();
- final HttpResponse<T> response = ((HttpResponse<T>) syncRestClient.get(url, requestHeaders,
- Collections.emptyMap(), t.getClass()));
+ final HttpResponse<String> response = syncRestClient.get(url, requestHeaders,
+ Collections.emptyMap(), String.class);
Logging.logResponse(outgoingRequestsLogger, HttpMethod.GET, url, response);
status = response.getStatus();
restObject.setStatusCode(status);
-
+ rawData = response.getBody();
if (status == 200) {
- t = response.getBody();
- restObject.set(t);
+ if (t instanceof String) {
+ restObject.set((T)rawData);
+ }
+ else {
+ restObject.set(JACKSON_OBJECT_MAPPER.readValue(rawData, new TypeReference<T>() {}));
+ }
logger.debug(EELFLoggerDelegate.debugLogger, "<== " + methodName + SUCCESSFUL_API_MESSAGE);
logger.info(EELFLoggerDelegate.errorLogger, "<== " + methodName + SUCCESSFUL_API_MESSAGE);
} else {
@@ -106,7 +112,7 @@ public class SchedulerRestInterface implements SchedulerRestInterfaceIfc {
}
return new RestObjectWithRequestInfo<>(HttpMethod.GET, url, restObject, status, rawData);
}
- catch (RuntimeException e) {
+ catch (Exception e) {
throw new ExceptionWithRequestInfo(HttpMethod.GET, url, rawData, status, e);
}
}