From: RehanRaza Date: Thu, 7 May 2020 10:18:14 +0000 (+0200) Subject: Return correct error response code from A1 controller X-Git-Tag: 2.0.0~53 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=707af9497252be98abd3b4cbeda9dc9a677d9f6d;p=nonrtric.git Return correct error response code from A1 controller Change-Id: I4c886be11dc83b7693ffa56a64295b83abced000 Issue-ID: NONRTRIC-213 Signed-off-by: RehanRaza --- diff --git a/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/o_ran_sc/nonrtric/sdnc_a1/northbound/provider/NonrtRicApiProvider.java b/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/o_ran_sc/nonrtric/sdnc_a1/northbound/provider/NonrtRicApiProvider.java index ac9181bf..9a625b1b 100644 --- a/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/o_ran_sc/nonrtric/sdnc_a1/northbound/provider/NonrtRicApiProvider.java +++ b/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/o_ran_sc/nonrtric/sdnc_a1/northbound/provider/NonrtRicApiProvider.java @@ -57,6 +57,7 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestClientResponseException; /** * Defines a base implementation for your provider. This class overrides the @@ -156,16 +157,25 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { @Override public ListenableFuture> putA1Policy(PutA1PolicyInput input) { log.info("Start of putPolicy"); - final Uri uri = input.getNearRtRicUrl(); - - log.info("PUT Request input.GetA1Policy() : {} ", uri); - ResponseEntity response = restAdapter.put(uri.getValue(), input.getBody(), String.class); PutA1PolicyOutputBuilder responseBuilder = new PutA1PolicyOutputBuilder(); - if (response.hasBody()) { - log.info("Response PutA1Policy : {} ", response.getBody()); - responseBuilder.setBody(response.getBody()); + + try { + final Uri uri = input.getNearRtRicUrl(); + log.info("PUT Request input.GetA1Policy() : {} ", uri); + ResponseEntity response = restAdapter.put(uri.getValue(), input.getBody(), String.class); + if (response.hasBody()) { + log.info("Response PutA1Policy : {} ", response.getBody()); + responseBuilder.setBody(response.getBody()); + } + responseBuilder.setHttpStatus(response.getStatusCodeValue()); + } catch (RestClientResponseException ex) { + log.error("Caught RestClientResponseException: {}", ex.getMessage()); + if (ex.getResponseBodyAsByteArray() != null) { + responseBuilder.setBody(ex.getResponseBodyAsString()); + } + responseBuilder.setHttpStatus(ex.getRawStatusCode()); } - responseBuilder.setHttpStatus(response.getStatusCodeValue()); + log.info("End of PutA1Policy"); RpcResult rpcResult = RpcResultBuilder.status(true) .withResult(responseBuilder.build()).build(); @@ -175,15 +185,25 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { @Override public ListenableFuture> deleteA1Policy(DeleteA1PolicyInput input) { log.info("Start of DeleteA1Policy"); - final Uri uri = input.getNearRtRicUrl(); - ResponseEntity response = restAdapter.delete(uri.getValue()); - log.info("End of DeleteA1Policy"); DeleteA1PolicyOutputBuilder responseBuilder = new DeleteA1PolicyOutputBuilder(); - if (response.hasBody()) { - log.info("Response PutA1Policy : {} ", response.getBody()); - responseBuilder.setBody(response.getBody().toString()); + + try { + final Uri uri = input.getNearRtRicUrl(); + ResponseEntity response = restAdapter.delete(uri.getValue()); + if (response.hasBody()) { + log.info("Response DeleteA1Policy : {} ", response.getBody()); + responseBuilder.setBody(response.getBody().toString()); + } + responseBuilder.setHttpStatus(response.getStatusCodeValue()); + } catch (RestClientResponseException ex) { + log.error("Caught RestClientResponseException: {}", ex.getMessage()); + if (ex.getResponseBodyAsByteArray() != null) { + responseBuilder.setBody(ex.getResponseBodyAsString()); + } + responseBuilder.setHttpStatus(ex.getRawStatusCode()); } - responseBuilder.setHttpStatus(response.getStatusCodeValue()); + + log.info("End of DeleteA1Policy"); RpcResult rpcResult = RpcResultBuilder.status(true) .withResult(responseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); @@ -191,15 +211,25 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { private GetA1PolicyOutput getA1(GetA1PolicyInput input) { log.info("Start of getA1"); - final Uri uri = input.getNearRtRicUrl(); - ResponseEntity response = restAdapter.get(uri.getValue(), String.class); - log.info("End of getA1"); GetA1PolicyOutputBuilder responseBuilder = new GetA1PolicyOutputBuilder(); - if (response.hasBody()) { - log.info("Response getA1 : {} ", response.getBody()); - responseBuilder.setBody(response.getBody()); + + try { + final Uri uri = input.getNearRtRicUrl(); + ResponseEntity response = restAdapter.get(uri.getValue(), String.class); + if (response.hasBody()) { + log.info("Response getA1 : {} ", response.getBody()); + responseBuilder.setBody(response.getBody()); + } + responseBuilder.setHttpStatus(response.getStatusCodeValue()); + } catch (RestClientResponseException ex) { + log.error("Caught RestClientResponseException: {}", ex.getMessage()); + if (ex.getResponseBodyAsByteArray() != null) { + responseBuilder.setBody(ex.getResponseBodyAsString()); + } + responseBuilder.setHttpStatus(ex.getRawStatusCode()); } - responseBuilder.setHttpStatus(response.getStatusCodeValue()); + + log.info("End of getA1"); return responseBuilder.build(); }