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%2Fonap%2Fsdnc%2Fnorthbound%2Fprovider%2FNonrtRicApiProvider.java;h=b5e3deed6560645211d9bf9ad42a0b4e7e354582;hb=eec4647d457ca8c2ebecc86485127bd529919533;hp=7f29fd17939082c8e07b2b1c7579d9eb03bcd4cf;hpb=799dafa576935e93c262a20f2b055a94dd637ddd;p=nonrtric.git diff --git a/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/onap/sdnc/northbound/provider/NonrtRicApiProvider.java b/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/onap/sdnc/northbound/provider/NonrtRicApiProvider.java index 7f29fd17..b5e3deed 100644 --- a/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/onap/sdnc/northbound/provider/NonrtRicApiProvider.java +++ b/sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/onap/sdnc/northbound/provider/NonrtRicApiProvider.java @@ -20,10 +20,10 @@ package org.onap.sdnc.northbound.provider; -import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import com.google.gson.Gson; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -34,6 +34,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.json.JSONObject; +import org.onap.sdnc.northbound.exceptions.NearRtRicNotFoundException; import org.onap.sdnc.northbound.restadpter.NearRicUrlProvider; import org.onap.sdnc.northbound.restadpter.RestAdapter; import org.onap.sdnc.northbound.restadpter.RestAdapterImpl; @@ -61,6 +62,7 @@ import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev19100 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev191002.GetHealthCheckOutputBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev191002.GetNearRTRICsInput; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev191002.GetNearRTRICsOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev191002.GetNearRTRICsOutputBuilder; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev191002.GetPolicyInstanceInput; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev191002.GetPolicyInstanceOutput; import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev191002.GetPolicyInstanceOutputBuilder; @@ -80,6 +82,9 @@ import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestClientResponseException; /** * Defines a base implementation for your provider. This class overrides the generated interface @@ -99,8 +104,6 @@ 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 RESPONSE_SUCCESS = "Success"; - private static final String RESPONSE_CODE_SUCCESS = "200"; private final Logger log = LoggerFactory.getLogger(NonrtRicApiProvider.class); private final ExecutorService executor; @@ -200,11 +203,20 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> createPolicyInstance( CreatePolicyInstanceInput input) { log.info("Start of createPolicyInstance"); - String uri = nearRicUrlProvider.getPolicyInstanceId(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); - log.info("PUT Request input.getPolicyInstance() : {} ", input.getPolicyInstance()); - restAdapter.put(uri, input.getPolicyInstance()); CreatePolicyInstanceOutputBuilder responseBuilder = new CreatePolicyInstanceOutputBuilder(); + try { + String uri = nearRicUrlProvider.getPolicyInstanceId(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); + log.info("PUT Request input.getPolicyInstance() : {} ", input.getPolicyInstance()); + ResponseEntity response = restAdapter.put(uri, input.getPolicyInstance()); + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); + } log.info("End of createPolicyInstance"); RpcResult rpcResult = RpcResultBuilder .status(true).withResult(responseBuilder.build()).build(); @@ -215,13 +227,20 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> createPolicyType( CreatePolicyTypeInput input) { log.info("Start of createPolicyType"); - String uri = nearRicUrlProvider.getPolicyTypeId(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId())); - log.info("PUT Request input.getPolicyType() : {} ", input.getPolicyType()); - restAdapter.put(uri, input.getPolicyType()); CreatePolicyTypeOutputBuilder responseBuilder = new CreatePolicyTypeOutputBuilder(); - responseBuilder.setCode(RESPONSE_CODE_SUCCESS); - responseBuilder.setStatus(RESPONSE_SUCCESS); + try { + String uri = nearRicUrlProvider.getPolicyTypeId(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId())); + log.info("PUT Request input.getPolicyType() : {} ", input.getPolicyType()); + ResponseEntity response = restAdapter.put(uri, input.getPolicyType()); + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); + } log.info("End of createPolicyType"); RpcResult rpcResult = RpcResultBuilder .status(true).withResult(responseBuilder.build()).build(); @@ -232,10 +251,19 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> deletePolicyInstance( DeletePolicyInstanceInput input) { log.info("Start of deletePolicyInstance"); - String uri = nearRicUrlProvider.getPolicyInstanceId(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); - restAdapter.delete(uri); DeletePolicyInstanceOutputBuilder responseBuilder = new DeletePolicyInstanceOutputBuilder(); + try { + String uri = nearRicUrlProvider.getPolicyInstanceId(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); + ResponseEntity response = restAdapter.delete(uri); + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); + } log.info("End of deletePolicyInstance"); RpcResult rpcResult = RpcResultBuilder .status(true).withResult(responseBuilder.build()).build(); @@ -246,10 +274,19 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> deletePolicyType( DeletePolicyTypeInput input) { log.info("Start of deletePolicyType"); - String uri = nearRicUrlProvider.getPolicyTypeId(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId())); - restAdapter.delete(uri); DeletePolicyTypeOutputBuilder responseBuilder = new DeletePolicyTypeOutputBuilder(); + try { + String uri = nearRicUrlProvider.getPolicyTypeId(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId())); + ResponseEntity response = restAdapter.delete(uri); + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); + } log.info("End of deletePolicyType"); RpcResult rpcResult = RpcResultBuilder .status(true).withResult(responseBuilder.build()).build(); @@ -260,10 +297,22 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> getHealthCheck( GetHealthCheckInput input) { log.info("Start of getHealthCheck"); - String uri = nearRicUrlProvider.getHealthCheck(String.valueOf(input.getNearRtRicId())); - restAdapter.get(uri, String.class); GetHealthCheckOutputBuilder responseBuilder = new GetHealthCheckOutputBuilder(); - responseBuilder.setHealthStatus(true); + try { + String uri = nearRicUrlProvider.getHealthCheck(String.valueOf(input.getNearRtRicId())); + ResponseEntity response = restAdapter.get(uri, Object.class); + responseBuilder.setHealthStatus(false); + if (response.getStatusCode().equals(HttpStatus.OK)) { + responseBuilder.setHealthStatus(true); + } + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); + } log.info("End of getHealthCheck"); RpcResult rpcResult = RpcResultBuilder.status(true) .withResult(responseBuilder.build()).build(); @@ -272,8 +321,14 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { @Override public ListenableFuture> getNearRTRICs(GetNearRTRICsInput input) { - // TODO Auto-generated method stub - return null; + log.info("Start of getNearRTRICs"); + GetNearRTRICsOutputBuilder responseBuilder = new GetNearRTRICsOutputBuilder(); + responseBuilder.setNearRtRicIdList(nearRicUrlProvider.getNearRTRicIdsList()); + responseBuilder.setCode(HttpStatus.OK.toString()); + log.info("End of getNearRTRICs"); + RpcResult rpcResult = RpcResultBuilder.status(true) + .withResult(responseBuilder.build()).build(); + return Futures.immediateFuture(rpcResult); } @Override @@ -281,13 +336,22 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { GetPolicyInstanceInput input) { log.info("Start of getPolicyInstance"); log.info("Policy Type Id : {}, Policy Instance Id : {}", input.getPolicyTypeId(), input.getPolicyInstanceId()); - String uri = nearRicUrlProvider.getPolicyInstanceId(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); - Optional policyInstance = restAdapter.get(uri, String.class); GetPolicyInstanceOutputBuilder responseBuilder = new GetPolicyInstanceOutputBuilder(); - if (policyInstance.isPresent()) { - log.info("Response policyInstance.get() : {} ", policyInstance.get()); - responseBuilder.setPolicyInstance(policyInstance.get()); + try { + String uri = nearRicUrlProvider.getPolicyInstanceId(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); + ResponseEntity response = restAdapter.get(uri, String.class); + if (response.hasBody()) { + log.info("Response getPolicyInstance : {} ", response.getBody()); + responseBuilder.setPolicyInstance(response.getBody()); + } + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); } log.info("End of getPolicyInstance"); RpcResult rpcResult = RpcResultBuilder @@ -299,13 +363,22 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> getPolicyInstances( GetPolicyInstancesInput input) { log.info("Start of getPolicyInstances"); - String uri = nearRicUrlProvider.getPolicyInstances(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId())); - Optional> policyInstances = restAdapter.get(uri, List.class); GetPolicyInstancesOutputBuilder responseBuilder = new GetPolicyInstancesOutputBuilder(); - if (policyInstances.isPresent()) { - log.info("Response policyInstances.get() : {} ", policyInstances.get()); - responseBuilder.setPolicyInstanceIdList(policyInstances.get()); + try { + String uri = nearRicUrlProvider.getPolicyInstances(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId())); + ResponseEntity> response = restAdapter.get(uri, List.class); + if (response.hasBody()) { + log.info("Response getPolicyInstances : {} ", response.getBody()); + responseBuilder.setPolicyInstanceIdList(response.getBody()); + } + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); } log.info("End of getPolicyInstances"); RpcResult rpcResult = RpcResultBuilder @@ -317,16 +390,25 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> getPolicyType(GetPolicyTypeInput input) { log.info("Start of getPolicyType"); log.info("Policy Type Id : {} ", input.getPolicyTypeId()); - String uri = nearRicUrlProvider.getPolicyTypeId(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId())); - Optional policyType = restAdapter.get(uri, String.class); GetPolicyTypeOutputBuilder responseBuilder = new GetPolicyTypeOutputBuilder(); - if (policyType.isPresent()) { - log.info("Response policyType.get() : {} ", policyType.get()); - JSONObject policyTypeObj = new JSONObject(policyType.get()); - responseBuilder.setDescription(policyTypeObj.getString("description")); - responseBuilder.setName(policyTypeObj.getString("name")); - responseBuilder.setPolicyType(policyTypeObj.getJSONObject("create_schema").toString()); + try { + String uri = nearRicUrlProvider.getPolicyTypeId(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId())); + ResponseEntity response = restAdapter.get(uri, String.class); + if (response.hasBody()) { + log.info("Response getPolicyType : {} ", response.getBody()); + JSONObject policyTypeObj = new JSONObject(response.getBody()); + responseBuilder.setDescription(policyTypeObj.getString("description")); + responseBuilder.setName(policyTypeObj.getString("name")); + responseBuilder.setPolicyType(policyTypeObj.getJSONObject("create_schema").toString()); + } + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); } log.info("End of getPolicyType"); RpcResult rpcResult = RpcResultBuilder.status(true) @@ -338,17 +420,26 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { public ListenableFuture> getPolicyTypes( GetPolicyTypesInput input) { log.info("Start of getPolicyTypes"); - String uri = nearRicUrlProvider.getPolicyTypes(String.valueOf(input.getNearRtRicId())); - Optional> policyTypes = restAdapter.get(uri, List.class); GetPolicyTypesOutputBuilder responseBuilder = new GetPolicyTypesOutputBuilder(); - if (policyTypes.isPresent()) { - log.info("Response policyTypes.get() : {} ", policyTypes.get()); - List policyTypesListInteger = policyTypes.get(); - List policyTypesListLong = new ArrayList<>(); - for(Integer i : policyTypesListInteger){ - policyTypesListLong.add(i.longValue()); + try { + String uri = nearRicUrlProvider.getPolicyTypes(String.valueOf(input.getNearRtRicId())); + ResponseEntity> response = restAdapter.get(uri, List.class); + if (response.hasBody()) { + log.info("Response getPolicyTypes : {} ", response.getBody()); + List policyTypesListInteger = response.getBody(); + List policyTypesListLong = new ArrayList<>(); + for(Integer i : policyTypesListInteger){ + policyTypesListLong.add(i.longValue()); + } + responseBuilder.setPolicyTypeIdList(policyTypesListLong); } - responseBuilder.setPolicyTypeIdList(policyTypesListLong); + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); } log.info("End of getPolicyTypes"); RpcResult rpcResult = RpcResultBuilder.status(true) @@ -359,14 +450,24 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService { @Override public ListenableFuture> getStatus(GetStatusInput input) { log.info("Start of getStatus"); - String uri = nearRicUrlProvider.getPolicyInstanceIdStatus(String.valueOf(input.getNearRtRicId()), - String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); - Optional status = restAdapter.get(uri, String.class); GetStatusOutputBuilder responseBuilder = new GetStatusOutputBuilder(); - if (status.isPresent()) { - log.info("Response status.get() : {} ", status.get()); - JSONObject statusObj = new JSONObject(status.get()); - responseBuilder.setStatus(statusObj.getString("status")); + try { + String uri = nearRicUrlProvider.getPolicyInstanceIdStatus(String.valueOf(input.getNearRtRicId()), + String.valueOf(input.getPolicyTypeId()), String.valueOf(input.getPolicyInstanceId())); + ResponseEntity> response = restAdapter.get(uri, List.class); + if (response.hasBody()) { + log.info("Response getStatus : {} ", response.getBody()); + // only return the status of first handler for compliance with current yang model, ignore handler_id + JSONObject statusObj = new JSONObject(new Gson().toJson(response.getBody().get(0))); + responseBuilder.setStatus(statusObj.getString("status")); + } + responseBuilder.setCode(response.getStatusCode().toString()); + } catch (NearRtRicNotFoundException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()); + } catch (RestClientResponseException ex) { + log.error("Caught exception: {}", ex); + responseBuilder.setCode(String.valueOf(ex.getRawStatusCode())); } log.info("End of getStatus"); RpcResult rpcResult =