diff options
Diffstat (limited to 'src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java')
-rw-r--r-- | src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java b/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java index 5dda00a..f9724f9 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java @@ -13,9 +13,15 @@ package org.onap.nbi.apis.serviceorder; import org.onap.nbi.OnapComponentsUrlPaths; +import org.onap.nbi.apis.serviceorder.model.consumer.CreateE2EServiceInstanceResponse; import org.onap.nbi.apis.serviceorder.model.consumer.CreateServiceInstanceResponse; +import org.onap.nbi.apis.serviceorder.model.consumer.DeleteE2EServiceInstanceResponse; +import org.onap.nbi.apis.serviceorder.model.consumer.GetE2ERequestStatusResponse; import org.onap.nbi.apis.serviceorder.model.consumer.GetRequestStatusResponse; +import org.onap.nbi.apis.serviceorder.model.consumer.MSODeleteE2EPayload; +import org.onap.nbi.apis.serviceorder.model.consumer.MSOE2EPayload; import org.onap.nbi.apis.serviceorder.model.consumer.MSOPayload; +import org.onap.nbi.apis.serviceorder.model.consumer.ServiceResponse; import org.onap.nbi.exceptions.BackendFunctionalException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,6 +83,30 @@ public class SoClient { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } + + public ResponseEntity<CreateE2EServiceInstanceResponse> callE2ECreateServiceInstance(MSOE2EPayload msoPayloadE2E) { + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Calling SO CreateServiceInstanceE2E with msoPayload : " + msoPayloadE2E.toString()); + } + + String url = soHostname + OnapComponentsUrlPaths.MSO_CREATE_E2ESERVICE_INSTANCE_PATH; + + try { + ResponseEntity<CreateE2EServiceInstanceResponse> response = restTemplate.exchange(url, HttpMethod.POST, + new HttpEntity<>(msoPayloadE2E, buildRequestHeader()), CreateE2EServiceInstanceResponse.class); + + logE2EResponsePost(url, response); + return response; + + } catch (BackendFunctionalException e) { + LOGGER.error("error on calling " + url + " ," + e); + return new ResponseEntity<>(e.getHttpStatus()); + } catch (ResourceAccessException e) { + LOGGER.error("error on calling " + url + " ," + e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } public ResponseEntity<CreateServiceInstanceResponse> callDeleteServiceInstance(MSOPayload msoPayload, String serviceId) { @@ -103,6 +133,43 @@ public class SoClient { } + public ResponseEntity<CreateE2EServiceInstanceResponse> callE2EDeleteServiceInstance(String globalSubscriberId, String serviceType, + String serviceInstanceId) { + + String url = soHostname + OnapComponentsUrlPaths.MSO_DELETE_E2ESERVICE_INSTANCE_PATH + serviceInstanceId; + MSODeleteE2EPayload msoDeleteE2EPayload = new MSODeleteE2EPayload(); + msoDeleteE2EPayload.setGlobalSubscriberId(globalSubscriberId); + msoDeleteE2EPayload.setServiceType(serviceType); + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Calling SO DeleteE2EServiceInstance with url : " + url + " MSODeleteE2EPayload : " + msoDeleteE2EPayload.toString() ); + } + + try { + ResponseEntity<DeleteE2EServiceInstanceResponse> deleteresponse = restTemplate.exchange(url, HttpMethod.DELETE, + new HttpEntity<>(msoDeleteE2EPayload, buildRequestHeader()), DeleteE2EServiceInstanceResponse.class); + + // For E2E Services , Create and Delete Service responses are different, to maintain consistentcy with ServiceInstances + // Copy contents of DeleteE2EServiceInstanceResponse to CreateE2EServiceInstanceResponse + CreateE2EServiceInstanceResponse dummyresponse = new CreateE2EServiceInstanceResponse(); + ServiceResponse serviceResponse = new ServiceResponse(); + dummyresponse.setService(serviceResponse); + dummyresponse.getService().setOperationId(deleteresponse.getBody().getOperationId()); + dummyresponse.getService().setServiceId(serviceInstanceId); + + ResponseEntity<CreateE2EServiceInstanceResponse> response = new ResponseEntity(dummyresponse, deleteresponse.getStatusCode()); + logE2EResponsePost(url, response); + return response; + + } catch (BackendFunctionalException e) { + LOGGER.error("error on calling " + url + " ," + e); + return new ResponseEntity<>(e.getHttpStatus()); + } catch (ResourceAccessException e) { + LOGGER.error("error on calling " + url + " ," + e); + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } + private void logResponsePost(String url, ResponseEntity<CreateServiceInstanceResponse> response) { LOGGER.info(RESPONSE_STATUS + response.getStatusCodeValue()); if (LOGGER.isDebugEnabled()) { @@ -115,6 +182,17 @@ public class SoClient { } } + private void logE2EResponsePost(String url, ResponseEntity<CreateE2EServiceInstanceResponse> response) { + LOGGER.info(RESPONSE_STATUS + response.getStatusCodeValue()); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("response body : {}", response.getBody().toString()); + } + + if (LOGGER.isWarnEnabled() && !response.getStatusCode().equals(HttpStatus.CREATED)) { + LOGGER.warn("HTTP call SO on {} returns {} , {}", url, response.getStatusCodeValue(), + response.getBody().toString()); + } + } public GetRequestStatusResponse callGetRequestStatus(String requestId) { String url = soHostname + OnapComponentsUrlPaths.MSO_GET_REQUEST_STATUS_PATH + requestId; @@ -132,6 +210,30 @@ public class SoClient { } } +public GetE2ERequestStatusResponse callE2EGetRequestStatus(String operationId, String serviceId) { + + StringBuilder callURL = + new StringBuilder().append(soHostname).append(OnapComponentsUrlPaths.MSO_GET_E2EREQUEST_STATUS_PATH); + String callUrlFormated = callURL.toString().replace("$serviceId", serviceId); + callUrlFormated = callUrlFormated.replace("$operationId", operationId); + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Calling SO callE2EGetRequestStatus with url : " + callUrlFormated ); + } + + try { + + ResponseEntity<GetE2ERequestStatusResponse> response = restTemplate.exchange(callUrlFormated, HttpMethod.GET, + new HttpEntity<>(buildRequestHeader()), GetE2ERequestStatusResponse.class); + logE2EResponseGet(callUrlFormated, response); + return response.getBody(); + + } catch (BackendFunctionalException|ResourceAccessException e) { + LOGGER.error(ERROR_ON_CALLING + callUrlFormated + " ," + e); + return null; + } + } + private void logResponseGet(String url, ResponseEntity<GetRequestStatusResponse> response) { if (response != null) { if (LOGGER.isDebugEnabled()) { @@ -146,6 +248,21 @@ public class SoClient { LOGGER.info("no response calling url {}", url); } } + + private void logE2EResponseGet(String url, ResponseEntity<GetE2ERequestStatusResponse> response) { + if(response!=null){ + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("response body : {}", response.getBody().toString()); + } + LOGGER.info("response status : {}", response.getStatusCodeValue()); + if (LOGGER.isWarnEnabled() && !response.getStatusCode().equals(HttpStatus.OK)) { + LOGGER.warn("HTTP call SO on {} returns {} , {}", url, response.getStatusCodeValue(), + response.getBody().toString()); + } + } else { + LOGGER.info("no response calling url {}",url); + } + } private HttpHeaders buildRequestHeader() { HttpHeaders httpHeaders = new HttpHeaders(); |