aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java
diff options
context:
space:
mode:
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.java117
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();