X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=sdnc-a1-controller%2Fnorthbound%2Fnonrt-ric-api%2Fprovider%2Fsrc%2Fmain%2Fjava%2Forg%2Fo_ran_sc%2Fnonrtric%2Fsdnc_a1%2Fnorthbound%2Fprovider%2FNonrtRicApiProvider.java;h=392b1d68423dcb7ed54165e95e0a7507bbaf45ba;hb=0b10c7fa768f05ae5146ce2f3a69998bb8f97a9f;hp=ac9181bf9a0a0bd9ccd8687de9553fe4c037178b;hpb=348cb8528bdf879354de640b3249bc40db934505;p=nonrtric.git 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..392b1d68 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 @@ -77,6 +78,7 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { protected static final String NO_SERVICE_LOGIC_ACTIVE = "No service logic active for "; private static final String NON_NULL_PARAM = "non-null"; private static final String NULL_PARAM = "null"; + private static final String REST_CLIENT_RESPONSE_EXCEPTION_MSG = "Caught RestClientResponseException: {}"; private final Logger log = LoggerFactory.getLogger(NonrtRicApiProvider.class); private final ExecutorService executor; @@ -95,7 +97,6 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { setNotificationService(notificationPublishService); setRpcRegistry(rpcProviderRegistry); initialize(); - } public void initialize() { @@ -156,51 +157,80 @@ 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()); + PutA1PolicyOutputBuilder putPolicyResponseBuilder = new PutA1PolicyOutputBuilder(); + + try { + final Uri uri = input.getNearRtRicUrl(); + log.info("PUT Request input.GetA1Policy() : {} ", uri); + ResponseEntity putPolicyResponse = restAdapter.put(uri.getValue(), input.getBody(), String.class); + if (putPolicyResponse.hasBody()) { + log.info("Response PutA1Policy : {} ", putPolicyResponse.getBody()); + putPolicyResponseBuilder.setBody(putPolicyResponse.getBody()); + } + putPolicyResponseBuilder.setHttpStatus(putPolicyResponse.getStatusCodeValue()); + } catch (RestClientResponseException ex) { + log.error(REST_CLIENT_RESPONSE_EXCEPTION_MSG, ex.getMessage()); + if (ex.getResponseBodyAsByteArray() != null) { + putPolicyResponseBuilder.setBody(ex.getResponseBodyAsString()); + } + putPolicyResponseBuilder.setHttpStatus(ex.getRawStatusCode()); } - responseBuilder.setHttpStatus(response.getStatusCodeValue()); + log.info("End of PutA1Policy"); RpcResult rpcResult = RpcResultBuilder.status(true) - .withResult(responseBuilder.build()).build(); + .withResult(putPolicyResponseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } @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()); + DeleteA1PolicyOutputBuilder deletePolicyResponseBuilder = new DeleteA1PolicyOutputBuilder(); + + try { + final Uri uri = input.getNearRtRicUrl(); + ResponseEntity deletePolicyResponse = restAdapter.delete(uri.getValue()); + if (deletePolicyResponse.hasBody()) { + log.info("Response DeleteA1Policy : {} ", deletePolicyResponse.getBody()); + deletePolicyResponseBuilder.setBody(deletePolicyResponse.getBody().toString()); + } + deletePolicyResponseBuilder.setHttpStatus(deletePolicyResponse.getStatusCodeValue()); + } catch (RestClientResponseException ex) { + log.error(REST_CLIENT_RESPONSE_EXCEPTION_MSG, ex.getMessage()); + if (ex.getResponseBodyAsByteArray() != null) { + deletePolicyResponseBuilder.setBody(ex.getResponseBodyAsString()); + } + deletePolicyResponseBuilder.setHttpStatus(ex.getRawStatusCode()); } - responseBuilder.setHttpStatus(response.getStatusCodeValue()); + + log.info("End of DeleteA1Policy"); RpcResult rpcResult = RpcResultBuilder.status(true) - .withResult(responseBuilder.build()).build(); + .withResult(deletePolicyResponseBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } - private GetA1PolicyOutput getA1(GetA1PolicyInput input) { + protected 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()); + GetA1PolicyOutputBuilder getPolicyResponseBuilder = new GetA1PolicyOutputBuilder(); + + try { + final Uri uri = input.getNearRtRicUrl(); + ResponseEntity getPolicyResponse = restAdapter.get(uri.getValue(), String.class); + if (getPolicyResponse.hasBody()) { + log.info("Response getA1 : {} ", getPolicyResponse.getBody()); + getPolicyResponseBuilder.setBody(getPolicyResponse.getBody()); + } + getPolicyResponseBuilder.setHttpStatus(getPolicyResponse.getStatusCodeValue()); + } catch (RestClientResponseException ex) { + log.error(REST_CLIENT_RESPONSE_EXCEPTION_MSG, ex.getMessage()); + if (ex.getResponseBodyAsByteArray() != null) { + getPolicyResponseBuilder.setBody(ex.getResponseBodyAsString()); + } + getPolicyResponseBuilder.setHttpStatus(ex.getRawStatusCode()); } - responseBuilder.setHttpStatus(response.getStatusCodeValue()); - return responseBuilder.build(); + + log.info("End of getA1"); + return getPolicyResponseBuilder.build(); } @Override @@ -213,31 +243,31 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { @Override public ListenableFuture> getA1PolicyStatus(GetA1PolicyStatusInput input) { - GetA1PolicyInputBuilder getInputBuilder = new GetA1PolicyInputBuilder(); - getInputBuilder.setNearRtRicUrl(input.getNearRtRicUrl()); - GetA1PolicyOutput getOutput = getA1(getInputBuilder.build()); + GetA1PolicyInputBuilder getPolicyStatusInputBuilder = new GetA1PolicyInputBuilder(); + getPolicyStatusInputBuilder.setNearRtRicUrl(input.getNearRtRicUrl()); + GetA1PolicyOutput getOutput = getA1(getPolicyStatusInputBuilder.build()); - GetA1PolicyStatusOutputBuilder outputBuilder = new GetA1PolicyStatusOutputBuilder(); - outputBuilder.setBody(getOutput.getBody()); - outputBuilder.setHttpStatus(getOutput.getHttpStatus()); + GetA1PolicyStatusOutputBuilder getPolicyStatusoutputBuilder = new GetA1PolicyStatusOutputBuilder(); + getPolicyStatusoutputBuilder.setBody(getOutput.getBody()); + getPolicyStatusoutputBuilder.setHttpStatus(getOutput.getHttpStatus()); return Futures.immediateFuture(RpcResultBuilder.status(true) // - .withResult(outputBuilder.build()) // + .withResult(getPolicyStatusoutputBuilder.build()) // .build()); } @Override public ListenableFuture> getA1PolicyType(GetA1PolicyTypeInput input) { - GetA1PolicyInputBuilder getInputBuilder = new GetA1PolicyInputBuilder(); - getInputBuilder.setNearRtRicUrl(input.getNearRtRicUrl()); - GetA1PolicyOutput getOutput = getA1(getInputBuilder.build()); + GetA1PolicyInputBuilder getPolicyTypeInputBuilder = new GetA1PolicyInputBuilder(); + getPolicyTypeInputBuilder.setNearRtRicUrl(input.getNearRtRicUrl()); + GetA1PolicyOutput getOutput = getA1(getPolicyTypeInputBuilder.build()); - GetA1PolicyTypeOutputBuilder outputBuilder = new GetA1PolicyTypeOutputBuilder(); - outputBuilder.setBody(getOutput.getBody()); - outputBuilder.setHttpStatus(getOutput.getHttpStatus()); + GetA1PolicyTypeOutputBuilder getPolicyTypeOutputBuilder = new GetA1PolicyTypeOutputBuilder(); + getPolicyTypeOutputBuilder.setBody(getOutput.getBody()); + getPolicyTypeOutputBuilder.setHttpStatus(getOutput.getHttpStatus()); return Futures.immediateFuture(RpcResultBuilder.status(true) // - .withResult(outputBuilder.build()) // + .withResult(getPolicyTypeOutputBuilder.build()) // .build()); }