diff options
author | Adrian OSullivan <adrian.osullivan@huawei.com> | 2020-08-24 14:28:05 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2020-08-24 14:28:05 +0000 |
commit | 967b113a25e92e0b95ad4a1ac3b3966debd6d921 (patch) | |
tree | 86a8b48fd4df00b38e0cea0f375d4bbba9dace5e /src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java | |
parent | 417bd28022619432588cc58679e68d893c62c617 (diff) | |
parent | 1bc42e219ad96e8c61483b99d0f98e67909649b6 (diff) |
Merge "Implement E2EService activation/deactivation for NetworkSlicing"
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 | 73 |
1 files changed, 61 insertions, 12 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 95009b8..8e58c39 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java @@ -24,6 +24,8 @@ 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.MSOE2EServiceActivationPayload; +import org.onap.nbi.apis.serviceorder.model.consumer.MSOE2EServiceActivationReponse; import org.onap.nbi.apis.serviceorder.model.consumer.MSOPayload; import org.onap.nbi.apis.serviceorder.model.consumer.ServiceResponse; import org.onap.nbi.exceptions.BackendFunctionalException; @@ -68,6 +70,7 @@ public class SoClient { private String getSoStatus; private String getE2ESoStatus; private String deleteE2ESoUrl; + private String activationE2ESoUrl; private String deleteSoUrl; private String SoHealthCheck; @@ -81,7 +84,9 @@ public class SoClient { .append(OnapComponentsUrlPaths.MSO_DELETE_REQUEST_STATUS_PATH).toString(); deleteE2ESoUrl = new StringBuilder().append(soHostname) .append(OnapComponentsUrlPaths.MSO_DELETE_E2ESERVICE_INSTANCE_PATH).toString(); - getSoStatus = new StringBuilder().append(soHostname).append(OnapComponentsUrlPaths.MSO_GET_REQUEST_STATUS_PATH) + activationE2ESoUrl = new StringBuilder().append(soHostname) + .append(OnapComponentsUrlPaths.MSO_ACTIVATION_E2ESERVICE_INSTANCE_PATH).toString(); + getSoStatus = new StringBuilder().append(soHostname).append(OnapComponentsUrlPaths.MSO_GET_REQUEST_STATUS_PATH) .toString(); getE2ESoStatus = new StringBuilder().append(soHostname) .append(OnapComponentsUrlPaths.MSO_GET_E2EREQUEST_STATUS_PATH).toString(); @@ -92,7 +97,8 @@ public class SoClient { LOGGER.info("SO create e2e service url : " + createE2ESoUrl); LOGGER.info("SO delete service url : " + deleteSoUrl); LOGGER.info("SO delete e2e service url : " + deleteE2ESoUrl); - LOGGER.info("SO get so status url : " + getSoStatus); + LOGGER.info("SO e2e service actiavtion url : " + activationE2ESoUrl); + LOGGER.info("SO get so status url : " + getSoStatus); LOGGER.info("SO get e2e so status url : " + getE2ESoStatus); LOGGER.info("SO healthCheck : " + SoHealthCheck); @@ -208,15 +214,8 @@ public class SoClient { 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); - + CreateE2EServiceInstanceResponse dummyresponse = buildDummyResponse(serviceInstanceId, + deleteresponse.getBody().getOperationId()); ResponseEntity<CreateE2EServiceInstanceResponse> response = new ResponseEntity(dummyresponse, deleteresponse.getStatusCode()); logE2EResponsePost(url, response); @@ -230,7 +229,57 @@ public class SoClient { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } } + public ResponseEntity<CreateE2EServiceInstanceResponse> callServiceActivationE2EService(String globalSubscriberId, + String serviceType, String serviceInstanceId, String operation) { + String url = new StringBuilder(activationE2ESoUrl).append(serviceInstanceId).append("/").append(operation).toString(); + MSOE2EServiceActivationPayload msoE2EServiceActivationPayload = new MSOE2EServiceActivationPayload(); + msoE2EServiceActivationPayload.setGlobalSubscriberId(globalSubscriberId); + msoE2EServiceActivationPayload.setServiceType(serviceType); + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Calling SO E2E Service Activation/Deactivation with url : " + url + " MSOE2EServiceActivationPayload : " + + msoE2EServiceActivationPayload.toString()); + } + + try { + ResponseEntity<MSOE2EServiceActivationReponse> activationResponse = restTemplate.exchange(url, + HttpMethod.POST, new HttpEntity<>(msoE2EServiceActivationPayload, buildRequestHeader()), + MSOE2EServiceActivationReponse.class); + CreateE2EServiceInstanceResponse dummyresponse = buildDummyResponse(serviceInstanceId, + activationResponse.getBody().getOperationId()); + + ResponseEntity<CreateE2EServiceInstanceResponse> response = + new ResponseEntity(dummyresponse, activationResponse.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); + } + } + + /** + * @param serviceInstanceId + * @param operationId + * @return + * For E2E Services , Create and Delete/Activate/Deactivate Service responses are different, + * to maintain consistentcy with ServiceInstances Copy contents of ServiceActivationE2EReponse + * to CreateE2EServiceInstanceResponse + */ + private CreateE2EServiceInstanceResponse buildDummyResponse(String serviceInstanceId, + String operationId) { + CreateE2EServiceInstanceResponse dummyresponse = new CreateE2EServiceInstanceResponse(); + ServiceResponse serviceResponse = new ServiceResponse(); + dummyresponse.setService(serviceResponse); + dummyresponse.getService().setOperationId(operationId); + dummyresponse.getService().setServiceId(serviceInstanceId); + return dummyresponse; + } private void logResponsePost(String url, ResponseEntity<CreateServiceInstanceResponse> response) { LOGGER.info(RESPONSE_STATUS + response.getStatusCodeValue()); if (LOGGER.isDebugEnabled()) { @@ -362,4 +411,4 @@ public class SoClient { return httpHeaders; } -}
\ No newline at end of file +} |