From c72d565bb58226b20625b2bce5f0019046bee649 Mon Sep 17 00:00:00 2001 From: "Sonsino, Ofir (os0695)" Date: Tue, 10 Jul 2018 14:20:54 +0300 Subject: Merge 1806 code of vid-common Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) --- .../java/org/onap/vid/mso/MsoBusinessLogic.java | 64 +-- .../org/onap/vid/mso/MsoBusinessLogicImpl.java | 431 ++++++++++----------- .../main/java/org/onap/vid/mso/MsoInterface.java | 54 +-- .../main/java/org/onap/vid/mso/MsoProperties.java | 9 +- .../org/onap/vid/mso/RestMsoImplementation.java | 129 +++--- .../model/ServiceInstantiationRequestDetails.java | 165 ++++++++ .../org/onap/vid/mso/rest/AsyncRequestStatus.java | 118 ++---- .../org/onap/vid/mso/rest/MsoRestClientNew.java | 136 +++---- .../onap/vid/mso/rest/RelatedInstanceWrapper.java | 5 + .../java/org/onap/vid/mso/rest/RequestDetails.java | 28 +- .../onap/vid/mso/rest/RequestDetailsWrapper.java | 5 + .../java/org/onap/vid/mso/rest/RestInterface.java | 8 +- 12 files changed, 642 insertions(+), 510 deletions(-) create mode 100644 vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java create mode 100644 vid-app-common/src/main/java/org/onap/vid/mso/rest/RelatedInstanceWrapper.java create mode 100644 vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetailsWrapper.java (limited to 'vid-app-common/src/main/java/org/onap/vid/mso') diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogic.java b/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogic.java index 80d60d9c..79befe17 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogic.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogic.java @@ -14,68 +14,68 @@ import java.util.List; public interface MsoBusinessLogic { // this function should get params from tosca and send them to instance at mso, then return success response. - MsoResponseWrapper createSvcInstance(RequestDetails msoRequest) throws Exception; + MsoResponseWrapper createSvcInstance(RequestDetails msoRequest); - MsoResponseWrapper createE2eSvcInstance(Object msoRequest) throws Exception; + MsoResponseWrapper createE2eSvcInstance(Object msoRequest); - MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String serviceInstanceId) throws Exception; + MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String serviceInstanceId); - MsoResponseWrapper createVnf(RequestDetails requestDetails, String serviceInstanceId) throws Exception; + MsoResponseWrapper createVnf(RequestDetails requestDetails, String serviceInstanceId); - MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception; + MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String serviceInstanceId); - MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception; + MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId); - MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception; + MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId); - MsoResponseWrapper createConfigurationInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception; + MsoResponseWrapper createConfigurationInstance(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String serviceInstanceId); - MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception; + MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String serviceInstanceId, String serviceStatus); - MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception; + MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId); - MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String vfModuleId) throws Exception; + MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String vfModuleId); - MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String volumeGroupId)throws Exception; + MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String volumeGroupId); - MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String serviceInstanceId, String networkInstanceId) throws Exception; + MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String serviceInstanceId, String networkInstanceId); - MsoResponseWrapper getOrchestrationRequest(String requestId)throws Exception; + MsoResponseWrapper getOrchestrationRequest(String requestId); - MsoResponseWrapper getOrchestrationRequests(String filterString)throws Exception; + MsoResponseWrapper getOrchestrationRequests(String filterString); - List getOrchestrationRequestsForDashboard()throws Exception; + List getOrchestrationRequestsForDashboard(); - List getManualTasksByRequestId(String originalRequestId)throws Exception; + List getManualTasksByRequestId(String originalRequestId); - MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String taskId)throws Exception; + MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String taskId); - MsoResponseWrapper activateServiceInstance(RequestDetails requestDetails, String serviceInstanceId)throws Exception; + MsoResponseWrapper activateServiceInstance(RequestDetails requestDetails, String serviceInstanceId); - MsoResponseWrapperInterface updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception; + MsoResponseWrapperInterface updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId); - MsoResponseWrapperInterface replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception; + MsoResponseWrapperInterface replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId); - MsoResponseWrapperInterface updateVnfSoftware(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception; + MsoResponseWrapperInterface updateVnfSoftware(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId); - MsoResponseWrapperInterface updateVnfConfig(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception; + MsoResponseWrapperInterface updateVnfConfig(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId); MsoResponseWrapper deleteConfiguration( - RequestDetails requestDetails, + org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String serviceInstanceId, - String configurationId) throws Exception; + String configurationId); MsoResponseWrapper setConfigurationActiveStatus( RequestDetails requestDetails, String serviceInstanceId, String configurationId, - boolean isActivate) throws Exception; + boolean isActivate); MsoResponseWrapper setPortOnConfigurationStatus( RequestDetails requestDetails, String serviceInstanceId, String configurationId, - boolean isEnable) throws Exception; + boolean isEnable); RequestDetailsWrapper createOperationalEnvironmentActivationRequestDetails(OperationalEnvironmentActivateInfo details); @@ -91,13 +91,13 @@ public interface MsoBusinessLogic { RequestDetailsWrapper convertParametersToRequestDetails(OperationalEnvironmentController.OperationalEnvironmentCreateBody input, String userId); - MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception; + MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String serviceInstanceId); - MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception; + MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String serviceInstanceId); - MsoResponseWrapper setServiceInstanceStatus(RequestDetails requestDetails , String serviceInstanceId, boolean isActivate)throws Exception; + MsoResponseWrapper setServiceInstanceStatus(RequestDetails requestDetails , String serviceInstanceId, boolean isActivate); - RequestDetailsWrapper generateInPlaceMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails) throws Exception; + RequestDetailsWrapper generateInPlaceMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails); - RequestDetailsWrapper generateConfigMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails) throws Exception; + RequestDetailsWrapper generateConfigMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails); } diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogicImpl.java b/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogicImpl.java index 7cea0301..a2e32bab 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogicImpl.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/MsoBusinessLogicImpl.java @@ -1,165 +1,138 @@ package org.onap.vid.mso; -import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.onap.portalsdk.core.util.SystemProperties; import org.onap.vid.changeManagement.ChangeManagementRequest; import org.onap.vid.changeManagement.RequestDetailsWrapper; import org.onap.vid.controllers.OperationalEnvironmentController; import org.onap.vid.domain.mso.RequestInfo; +import org.onap.vid.exceptions.GenericUncheckedException; import org.onap.vid.mso.model.OperationalEnvironmentActivateInfo; import org.onap.vid.mso.model.OperationalEnvironmentDeactivateInfo; import org.onap.vid.mso.rest.OperationalEnvironment.OperationEnvironmentRequestDetails; import org.onap.vid.mso.rest.*; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; import org.springframework.beans.factory.annotation.Autowired; +import org.togglz.core.manager.FeatureManager; import javax.ws.rs.BadRequestException; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.regex.Pattern; +import static org.apache.commons.lang.StringUtils.upperCase; import static org.onap.vid.changeManagement.ChangeManagementRequest.MsoChangeManagementRequest; import static org.onap.vid.controllers.MsoController.*; import static org.onap.vid.mso.MsoProperties.*; +import static org.onap.vid.properties.Features.FLAG_UNASSIGN_SERVICE; +import static org.onap.vid.utils.Logging.debugRequestDetails; public class MsoBusinessLogicImpl implements MsoBusinessLogic { + public static final String START = " start"; + public static final String RESOURCE_TYPE = "resourceType"; + FeatureManager featureManager; + /** * The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - final static Pattern SOFTWARE_VERSION_PATTERN = Pattern.compile("^[A-Za-z0-9.\\-]+$"); - final static Pattern NUMBER_PATTERN = Pattern.compile("^[0-9]+$"); + private static final DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + private static final Pattern SOFTWARE_VERSION_PATTERN = Pattern.compile("^[A-Za-z0-9.\\-]+$"); + private static final Pattern NUMBER_PATTERN = Pattern.compile("^[0-9]+$"); private static final String ACTIVATE = "/activate"; private static final String DEACTIVATE = "/deactivate"; private static final String ENABLE_PORT = "/enablePort"; private static final String DISABLE_PORT = "/disablePort"; - private final static String RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT = "operationalEnvironment"; - private final static String SOURCE_OPERATIONAL_ENVIRONMENT = "VID"; - final static private ObjectMapper objectMapper = new ObjectMapper(); + private static final String RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT = "operationalEnvironment"; + private static final String SOURCE_OPERATIONAL_ENVIRONMENT = "VID"; + private static final ObjectMapper objectMapper = new ObjectMapper(); /** * The Mso REST client * This should be replaced with mso client factory. */ private final MsoInterface msoClientInterface; + /** * The logger. */ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MsoBusinessLogicImpl.class); - + @Autowired - public MsoBusinessLogicImpl(MsoInterface msoClientInterface) { + public MsoBusinessLogicImpl(MsoInterface msoClientInterface, FeatureManager featureManager) { this.msoClientInterface = msoClientInterface; + this.featureManager = featureManager; } - static String validateEndpointPath(String endpointEnvVariable) { + public static String validateEndpointPath(String endpointEnvVariable) { String endpoint = SystemProperties.getProperty(endpointEnvVariable); if (endpoint == null || endpoint.isEmpty()) { - throw new RuntimeException(endpointEnvVariable + " env variable is not defined"); + throw new GenericUncheckedException(endpointEnvVariable + " env variable is not defined"); } return endpoint; } // this function should get params from tosca and send them to instance at mso, then return success response. @Override - public MsoResponseWrapper createSvcInstance(RequestDetails msoRequest) throws Exception { + public MsoResponseWrapper createSvcInstance(RequestDetails msoRequest) { String methodName = "createSvcInstance "; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_SVC_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_SVC_INSTANCE); return msoClientInterface.createSvcInstance(msoRequest, endpoint); } @Override - public MsoResponseWrapper createE2eSvcInstance(Object msoRequest) throws Exception { + public MsoResponseWrapper createE2eSvcInstance(Object msoRequest){ String methodName = "createE2eSvcInstance "; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_E2E_SVC_INSTANCE); - } catch (Exception exception) { - throw exception; - } - - return msoClientInterface.createE2eSvcInstance(msoRequest, endpoint); - } - - void validateLineOfBusiness(RequestDetails requestDetails) { - - Object value = requestDetails.getAdditionalProperties(); + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_E2E_SVC_INSTANCE); - for(String prop: ImmutableList.of("requestDetails", "lineOfBusiness", "lineOfBusinessName")) { - if(value==null ||!(value instanceof Map)) { - value = null; - break; - } - else { - value = ((Map)value).get(prop); - } - } - if(value == null || value.toString().isEmpty()) { - throw new BadRequestException("lineOfBusiness is required"); - } - - } + return msoClientInterface.createE2eSvcInstance(msoRequest, endpoint); + } @Override - public MsoResponseWrapper createVnf(RequestDetails requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper createVnf(RequestDetails requestDetails, String serviceInstanceId) { String methodName = "createVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE); String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); return msoClientInterface.createVnf(requestDetails, vnf_endpoint); } @Override - public MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String serviceInstanceId) { String methodName = "createNwInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_NETWORK_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_NETWORK_INSTANCE); String nw_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); return msoClientInterface.createNwInstance(requestDetails, nw_endpoint); } @Override - public MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception { + public MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) { String methodName = "createVolumeGroupInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VOLUME_GROUP_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VOLUME_GROUP_INSTANCE); String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); vnf_endpoint = vnf_endpoint.replaceFirst(VNF_INSTANCE_ID, vnfInstanceId); @@ -168,16 +141,12 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception { + public MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) { String methodName = "createVfModuleInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE); String partial_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); String vf_module_endpoint = partial_endpoint.replaceFirst(VNF_INSTANCE_ID, vnfInstanceId); @@ -186,61 +155,59 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper createConfigurationInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper createConfigurationInstance(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String serviceInstanceId) { String methodName = "createConfigurationInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_CONFIGURATIONS); endpoint = endpoint.replace(SVC_INSTANCE_ID, serviceInstanceId); - return msoClientInterface.createConfigurationInstance(requestDetails, endpoint); + return msoClientInterface.createConfigurationInstance(requestDetailsWrapper, endpoint); } @Override - public MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String serviceInstanceId) { String methodName = "deleteE2eSvcInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_E2E_SVC_INSTANCE); - } catch (Exception exception) { - throw exception; - } - - String svc_endpoint = endpoint + "/" + serviceInstanceId; + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_E2E_SVC_INSTANCE) + "/" + serviceInstanceId; - return msoClientInterface.deleteE2eSvcInstance(requestDetails, svc_endpoint); + return msoClientInterface.deleteE2eSvcInstance(requestDetails, endpoint); } - + @Override - public MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String serviceInstanceId, String serviceStatus) { String methodName = "deleteSvcInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); - + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { + + if (featureManager.isActive(FLAG_UNASSIGN_SERVICE)){ + endpoint = validateEndpointPath(MsoProperties.MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE); + if (shouldUnassignService(serviceStatus)){ + logger.debug(EELFLoggerDelegate.debugLogger, "unassign service"); + String svc_endpoint = endpoint + "/" + serviceInstanceId + "/unassign"; + return msoClientInterface.unassignSvcInstance(requestDetails, svc_endpoint); + } + } else { endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_SVC_INSTANCE); - } catch (Exception exception) { - throw exception; } String svc_endpoint = endpoint + "/" + serviceInstanceId; - return msoClientInterface.deleteSvcInstance(requestDetails, svc_endpoint); } + private boolean shouldUnassignService(String serviceStatus) { + return ImmutableList.of("created","pendingdelete","pending-delete", "assigned").contains(serviceStatus.toLowerCase()); + } + @Override - public MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception { + public MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) { String methodName = "deleteVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE); String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); vnf_endpoint = vnf_endpoint + '/' + vnfInstanceId; @@ -248,16 +215,12 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String vfModuleId) throws Exception { + public MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String vfModuleId) { String methodName = "deleteVfModule"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VF_MODULE_INSTANCE); String vf__modules_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId).replaceFirst(VNF_INSTANCE_ID, vnfInstanceId); @@ -267,16 +230,12 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String volumeGroupId) throws Exception { + public MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId, String volumeGroupId) { String methodName = "deleteVolumeGroupInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VOLUME_GROUP_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VOLUME_GROUP_INSTANCE); String svc_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); String vnf_endpoint = svc_endpoint.replaceFirst(VNF_INSTANCE_ID, vnfInstanceId); @@ -286,16 +245,12 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String serviceInstanceId, String networkInstanceId) throws Exception { + public MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String serviceInstanceId, String networkInstanceId) { String methodName = "deleteNwInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_NETWORK_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_NETWORK_INSTANCE); String svc_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); String delete_nw_endpoint = svc_endpoint + "/" + networkInstanceId; @@ -304,15 +259,14 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper getOrchestrationRequest(String requestId) throws Exception { + public MsoResponseWrapper getOrchestrationRequest(String requestId) { String methodName = "getOrchestrationRequest"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); - MsoResponseWrapper w = null; + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { String p = SystemProperties.getProperty(MsoProperties.MSO_REST_API_GET_ORC_REQ); String path = p + "/" + requestId; - RestObject restObjStr = new RestObject(); + RestObject restObjStr = new RestObject<>(); String str = new String(); restObjStr.set(str); @@ -328,15 +282,14 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper getOrchestrationRequests(String filterString) throws Exception { + public MsoResponseWrapper getOrchestrationRequests(String filterString) { String methodName = "getOrchestrationRequest"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); - MsoResponseWrapper w = null; + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { String p = SystemProperties.getProperty(MsoProperties.MSO_REST_API_GET_ORC_REQS); String path = p + filterString; - RestObject restObjStr = new RestObject(); + RestObject restObjStr = new RestObject<>(); String str = new String(); restObjStr.set(str); @@ -352,25 +305,32 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public List getOrchestrationRequestsForDashboard() throws Exception { + public List getOrchestrationRequestsForDashboard() { String methodName = "getOrchestrationRequestsForDashboard"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); List filteredOrchestrationRequests = new ArrayList<>(); try { String path = SystemProperties.getProperty(MsoProperties.MSO_REST_API_GET_ORC_REQS); path += "filter=modelType:EQUALS:vnf"; - RestObject restObjStr = new RestObject(); + RestObject restObjStr = new RestObject<>(); String str = new String(); restObjStr.set(str); MsoResponseWrapper msoResponseWrapper = msoClientInterface.getOrchestrationRequestsForDashboard(str, "", path, restObjStr); List allOrchestrationRequests = deserializeOrchestrationRequestsJson(msoResponseWrapper.getEntity()); - ; + final ImmutableList suppoertedRequestTypes = ImmutableList.of( + RequestType.REPLACE_INSTANCE.toString().toUpperCase(), + RequestType.UPDATE_INSTANCE.toString().toUpperCase(), + RequestType.APPLY_UPDATED_CONFIG.toString().toUpperCase(), + RequestType.IN_PLACE_SOFTWARE_UPDATE.toString().toUpperCase() + ); + for (RequestWrapper currentRequest : allOrchestrationRequests) { - if ((currentRequest.getRequest() != null) && (currentRequest.getRequest().getRequestScope() == Request.RequestScope.VNF) && ((currentRequest.getRequest().getRequestType() == - Request.RequestType.REPLACE_INSTANCE) || (currentRequest.getRequest().getRequestType() == - Request.RequestType.UPDATE_INSTANCE))) { + if (currentRequest.getRequest() != null + && "vnf".equalsIgnoreCase(currentRequest.getRequest().getRequestScope()) + && suppoertedRequestTypes.contains(upperCase(currentRequest.getRequest().getRequestType())) + ) { filteredOrchestrationRequests.add(currentRequest.getRequest()); } } @@ -379,31 +339,35 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + "." + methodName + e.toString()); } return filteredOrchestrationRequests; - } - private List deserializeOrchestrationRequestsJson(String orchestrationRequestsJson) throws Exception { + private List deserializeOrchestrationRequestsJson(String orchestrationRequestsJson) { String methodName = "deserializeOrchestrationRequestsJson"; - logger.debug(dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true); - RequestList requestList = mapper.readValue(orchestrationRequestsJson, RequestList.class); + RequestList requestList = null; + try { + requestList = mapper.readValue(orchestrationRequestsJson, RequestList.class); + } catch (IOException e) { + throw new GenericUncheckedException(e); + } return requestList.getRequestList(); } @Override - public List getManualTasksByRequestId(String originalRequestId) throws Exception { + public List getManualTasksByRequestId(String originalRequestId) { String methodName = "getManualTasksByRequestId"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { String p = SystemProperties.getProperty(MsoProperties.MSO_REST_API_GET_MAN_TASKS); String path = p + "?originalRequestId=" + originalRequestId; - RestObject restObjStr = new RestObject(); + RestObject restObjStr = new RestObject<>(); String str = new String(); restObjStr.set(str); @@ -417,26 +381,29 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } } - private List deserializeManualTasksJson(String manualTasksJson) throws Exception { + private List deserializeManualTasksJson(String manualTasksJson) { String methodName = "deserializeManualTasksJson"; - logger.debug(dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START); ObjectMapper mapper = new ObjectMapper(); - TaskList taskList = mapper.readValue(manualTasksJson, TaskList.class); - return taskList.getTaskList(); + try { + TaskList taskList = mapper.readValue(manualTasksJson, TaskList.class); + return taskList.getTaskList(); + } catch (IOException e) { + throw new GenericUncheckedException(e); + } } @Override - public MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String taskId) throws Exception { + public MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String taskId) { String methodName = "completeManualTask"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); - MsoResponseWrapper w = null; + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { String p = SystemProperties.getProperty(MsoProperties.MSO_REST_API_GET_MAN_TASKS); String path = p + "/" + taskId + "/complete"; - RestObject restObjStr = new RestObject(); + RestObject restObjStr = new RestObject<>(); String str = new String(); restObjStr.set(str); @@ -452,12 +419,12 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper activateServiceInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper activateServiceInstance(RequestDetails requestDetails, String serviceInstanceId) { String methodName = "activateServiceInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { String serviceEndpoint = SystemProperties.getProperty(MsoProperties.MSO_REST_API_SVC_INSTANCE); - String activateServicePath = serviceEndpoint + "/" + serviceInstanceId + "/activate"; + String activateServicePath = serviceEndpoint + "/" + serviceInstanceId + ACTIVATE; RestObject restObjStr = new RestObject<>(); String str = ""; @@ -476,39 +443,31 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { @Override - public MsoResponseWrapperInterface updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception { + public MsoResponseWrapperInterface updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) { String methodName = "updateVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_INSTANCE); String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); vnf_endpoint = vnf_endpoint + '/' + vnfInstanceId; return msoClientInterface.updateVnf(requestDetails, vnf_endpoint); } @Override - public MsoResponseWrapperInterface replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception { + public MsoResponseWrapperInterface replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) { String methodName = "replaceVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint; - try { - endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_CHANGE_MANAGEMENT_INSTANCE); - } catch (Exception exception) { - throw exception; - } + endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_VNF_CHANGE_MANAGEMENT_INSTANCE); String vnf_endpoint = endpoint.replaceFirst(SVC_INSTANCE_ID, serviceInstanceId); vnf_endpoint = vnf_endpoint.replace(VNF_INSTANCE_ID, vnfInstanceId); vnf_endpoint = vnf_endpoint.replace(REQUEST_TYPE, MsoChangeManagementRequest.REPLACE); return msoClientInterface.replaceVnf(requestDetails, vnf_endpoint); } - public RequestDetailsWrapper generateInPlaceMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails) throws Exception { + public RequestDetailsWrapper generateInPlaceMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails) { validateUpdateVnfSoftwarePayload(requestDetails); RequestDetails inPlaceSoftwareUpdateRequest = new RequestDetails(); inPlaceSoftwareUpdateRequest.setCloudConfiguration(requestDetails.getCloudConfiguration()); @@ -520,7 +479,7 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public RequestDetailsWrapper generateConfigMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails) throws Exception { + public RequestDetailsWrapper generateConfigMsoRequest(org.onap.vid.changeManagement.RequestDetails requestDetails) { validateUpdateVnfConfig(requestDetails); RequestDetails ConfigUpdateRequest = new RequestDetails(); ConfigUpdateRequest.setRequestParameters(requestDetails.getRequestParameters()); @@ -530,19 +489,23 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { return requestDetailsWrapper; } + + + + @Override - public MsoResponseWrapperInterface updateVnfSoftware(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception { + public MsoResponseWrapperInterface updateVnfSoftware(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) { String methodName = "updateVnfSoftware"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String vnf_endpoint = getChangeManagementEndpoint(serviceInstanceId, vnfInstanceId, MsoChangeManagementRequest.SOFTWARE_UPDATE); //workflow name in mso is different than workflow name in vid UI RequestDetailsWrapper finalRequestDetails = generateInPlaceMsoRequest(requestDetails); return msoClientInterface.changeManagementUpdate(finalRequestDetails, vnf_endpoint); } @Override - public MsoResponseWrapperInterface updateVnfConfig(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) throws Exception { + public MsoResponseWrapperInterface updateVnfConfig(org.onap.vid.changeManagement.RequestDetails requestDetails, String serviceInstanceId, String vnfInstanceId) { String methodName = "updateVnfConfig"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); RequestDetailsWrapper finalRequestDetails = generateConfigMsoRequest(requestDetails); String vnf_endpoint = getChangeManagementEndpoint(serviceInstanceId, vnfInstanceId, MsoChangeManagementRequest.CONFIG_UPDATE); return msoClientInterface.changeManagementUpdate(finalRequestDetails, vnf_endpoint); @@ -556,7 +519,7 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { return vnf_endpoint; } - private Map getChangeManagementPayload(RequestDetails requestDetails, String message) throws Exception{ + private Map getChangeManagementPayload(RequestDetails requestDetails, String message){ if(requestDetails.getRequestParameters()==null||requestDetails.getRequestParameters().getAdditionalProperties()==null){ throw new BadRequestException(message); } @@ -569,18 +532,17 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } } - private void validateUpdateVnfSoftwarePayload(RequestDetails requestDetails) throws Exception { + private void validateUpdateVnfSoftwarePayload(RequestDetails requestDetails) { final String noValidPayloadMsg = "No valid payload in " + ChangeManagementRequest.VNF_IN_PLACE_SOFTWARE_UPDATE + " request"; Map payload = getChangeManagementPayload(requestDetails, noValidPayloadMsg); validateUpdateVnfSoftwarePayloadProperty(payload, noValidPayloadMsg, "existing_software_version", SOFTWARE_VERSION_PATTERN); validateUpdateVnfSoftwarePayloadProperty(payload, noValidPayloadMsg, "new_software_version", SOFTWARE_VERSION_PATTERN); - //if "operations-timeout" is not integer, trying to read it as String that represent a number - if (!(payload.get("operations-timeout") instanceof Integer)) { + //if "operations_timeout" is not integer, trying to read it as String that represent a number + if (!(payload.get("operations_timeout") instanceof Integer)) { validateUpdateVnfSoftwarePayloadProperty(payload, noValidPayloadMsg, "operations_timeout", NUMBER_PATTERN); } - } private void validateUpdateVnfSoftwarePayloadProperty(Map payload, String noValidPayloadMsg, String propertyName, Pattern pattern) { @@ -594,7 +556,7 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } } - private void validateUpdateVnfConfig(RequestDetails requestDetails) throws Exception { + private void validateUpdateVnfConfig(RequestDetails requestDetails) { final String noValidPayloadMsg = "No valid payload in " + ChangeManagementRequest.CONFIG_UPDATE + " request"; Map payload = getChangeManagementPayload(requestDetails, noValidPayloadMsg); @@ -603,7 +565,6 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } private void validateConfigUpdateVnfPayloadProperty(Map payload, String noValidPayloadMsg, String propertyName) { - Object forValidation = payload.get(propertyName); final String noValidPayloadPropertyMsg = noValidPayloadMsg+ ", "+ propertyName + " property is not valid"; if(!payload.containsKey(propertyName)) { throw new BadRequestException( noValidPayloadPropertyMsg); @@ -612,18 +573,18 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { @Override public MsoResponseWrapper deleteConfiguration( - RequestDetails requestDetails, + org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String serviceInstanceId, - String configurationId) throws Exception { + String configurationId) { String methodName = "deleteConfiguration"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_CONFIGURATION_INSTANCE); endpoint = endpoint.replace(SVC_INSTANCE_ID, serviceInstanceId); endpoint = endpoint.replace(CONFIGURATION_ID, configurationId); - return msoClientInterface.deleteConfiguration(requestDetails, endpoint); + return msoClientInterface.deleteConfiguration(requestDetailsWrapper, endpoint); } @Override @@ -631,10 +592,10 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { RequestDetails requestDetails, String serviceInstanceId, String configurationId, - boolean isActivate) throws Exception { + boolean isActivate) { String methodName = "setConfigurationActiveStatus"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_CONFIGURATION_INSTANCE); endpoint = endpoint.replace(SVC_INSTANCE_ID, serviceInstanceId); @@ -647,9 +608,9 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper setServiceInstanceStatus(RequestDetails requestDetails , String serviceInstanceId, boolean isActivate)throws Exception{ + public MsoResponseWrapper setServiceInstanceStatus(RequestDetails requestDetails , String serviceInstanceId, boolean isActivate) { String methodName = "setServiceInstanceStatus"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { String serviceEndpoint = validateEndpointPath(MsoProperties.MSO_REST_API_SVC_INSTANCE); String endpoint = serviceEndpoint + "/" + serviceInstanceId; @@ -678,9 +639,9 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { RequestDetails requestDetails, String serviceInstanceId, String configurationId, - boolean isEnable) throws Exception { + boolean isEnable) { String methodName = "setPortOnConfigurationStatus"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String endpoint = validateEndpointPath(MsoProperties.MSO_REST_API_CONFIGURATION_INSTANCE); endpoint = endpoint.replace(SVC_INSTANCE_ID, serviceInstanceId); @@ -697,13 +658,13 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { public RequestDetailsWrapper createOperationalEnvironmentActivationRequestDetails(OperationalEnvironmentActivateInfo details) { RequestDetails requestDetails = new RequestDetails(); RequestInfo requestInfo = new RequestInfo(); - requestInfo.setAdditionalProperty("resourceType", RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT); + requestInfo.setAdditionalProperty(RESOURCE_TYPE, RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT); requestInfo.setSource(SOURCE_OPERATIONAL_ENVIRONMENT); requestInfo.setRequestorId(details.getUserId()); requestDetails.setRequestInfo(requestInfo); org.onap.vid.domain.mso.RelatedInstance relatedInstance = new org.onap.vid.domain.mso.RelatedInstance(); - relatedInstance.setAdditionalProperty("resourceType", RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT); + relatedInstance.setAdditionalProperty(RESOURCE_TYPE, RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT); relatedInstance.setInstanceId(details.getRelatedInstanceId()); relatedInstance.setInstanceName(details.getRelatedInstanceName()); requestDetails.setAdditionalProperty("relatedInstanceList", Collections.singletonList(ImmutableMap.of("relatedInstance", relatedInstance))); @@ -717,7 +678,7 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper<>(requestDetails); - debugRequestDetails(requestDetailsWrapper); + debugRequestDetails(requestDetailsWrapper, logger); return requestDetailsWrapper; } @@ -734,7 +695,7 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { RequestDetails requestDetails = new RequestDetails(); RequestInfo requestInfo = new RequestInfo(); - requestInfo.setAdditionalProperty("resourceType", RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT); + requestInfo.setAdditionalProperty(RESOURCE_TYPE, RESOURCE_TYPE_OPERATIONAL_ENVIRONMENT); requestInfo.setSource(SOURCE_OPERATIONAL_ENVIRONMENT); requestInfo.setRequestorId(details.getUserId()); requestDetails.setRequestInfo(requestInfo); @@ -744,7 +705,7 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { requestParameters.setAdditionalProperty("operationalEnvironmentType", "VNF"); requestDetails.setRequestParameters(requestParameters); RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper<>(requestDetails); - debugRequestDetails(requestDetailsWrapper); + debugRequestDetails(requestDetailsWrapper, logger); return requestDetailsWrapper; } @@ -762,24 +723,13 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { return path; } - private void debugRequestDetails(Object requestDetails) { - if (logger.isDebugEnabled()) { - String requestDetailsAsString; - try { - requestDetailsAsString = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT).writeValueAsString(requestDetails); - } catch (JsonProcessingException e) { - requestDetailsAsString = "error: cannot stringify RequestDetails"; - } - logger.debug(EELFLoggerDelegate.debugLogger, "requestDetailsAsString: {}", requestDetailsAsString); - } - } - @Override public String getOperationalEnvironmentCreationPath() { - String path = validateEndpointPath(MSO_REST_API_OPERATIONAL_ENVIRONMENT_CREATE); - return path; + return validateEndpointPath(MSO_REST_API_OPERATIONAL_ENVIRONMENT_CREATE); } + + @Override public RequestDetailsWrapper convertParametersToRequestDetails(OperationalEnvironmentController.OperationalEnvironmentCreateBody input, String userId) { OperationEnvironmentRequestDetails.RequestInfo requestInfo = new OperationEnvironmentRequestDetails.RequestInfo( @@ -802,14 +752,14 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { OperationEnvironmentRequestDetails requestDetails = new OperationEnvironmentRequestDetails(requestInfo, relatedInstanceList, requestParameters); RequestDetailsWrapper requestDetailsWrapper = new RequestDetailsWrapper<>(requestDetails); - debugRequestDetails(requestDetailsWrapper); + debugRequestDetails(requestDetailsWrapper, logger); return requestDetailsWrapper; } @Override - public MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String serviceInstanceId) { String methodName = "removeRelationshipFromServiceInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String serviceEndpoint = SystemProperties.getProperty(MsoProperties.MSO_REST_API_SVC_INSTANCE); String removeRelationshipsPath = serviceEndpoint + "/" + serviceInstanceId + "/removeRelationships"; @@ -818,9 +768,9 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } @Override - public MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String serviceInstanceId) throws Exception { + public MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String serviceInstanceId) { String methodName = "addRelationshipToServiceInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); String serviceEndpoint = SystemProperties.getProperty(MsoProperties.MSO_REST_API_SVC_INSTANCE); String addRelationshipsPath = serviceEndpoint + "/" + serviceInstanceId + "/addRelationships"; @@ -829,4 +779,45 @@ public class MsoBusinessLogicImpl implements MsoBusinessLogic { } + public enum RequestType { + + CREATE_INSTANCE("createInstance"), + DELETE_INSTANCE("deleteInstance"), + REPLACE_INSTANCE("replaceInstance"), + UPDATE_INSTANCE("updateInstance"), + ACTIVATE_INSTANCE("activateInstance"), + DEACTIVATE_INSTANCE("deactivateInstance"), + APPLY_UPDATED_CONFIG("applyUpdatedConfig"), + IN_PLACE_SOFTWARE_UPDATE("inPlaceSoftwareUpdate"), + UNKNOWN("unknown"), + NOT_PROVIDED("not provided"); + private final String value; + private static final Map CONSTANTS = new HashMap<>(); + + static { + for (RequestType c: values()) { + CONSTANTS.put(c.value, c); + } + } + + RequestType(String value) { + this.value = value; + } + + @JsonValue + @Override + public String toString() { + return this.value; + } + + @JsonCreator + public static RequestType fromValue(String value) { + RequestType constant = CONSTANTS.get(value); + if (constant == null) { + throw new IllegalArgumentException(value); + } else { + return constant; + } + } + } } \ No newline at end of file diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/MsoInterface.java b/vid-app-common/src/main/java/org/onap/vid/mso/MsoInterface.java index 350be441..a5fb7602 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/MsoInterface.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/MsoInterface.java @@ -16,11 +16,11 @@ public interface MsoInterface { * --> failure : would return 200 with failure data. * @throws Exception */ - MsoResponseWrapper createSvcInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper createSvcInstance(RequestDetails requestDetails, String endpoint); //For VoLTE E2E services - MsoResponseWrapper createE2eSvcInstance(Object requestDetails, String endpoint) throws Exception; - MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String endpoint) throws Exception; + MsoResponseWrapper createE2eSvcInstance(Object requestDetails, String endpoint); + MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String endpoint); /** * will create a virtual network function using MSO service. @@ -28,9 +28,9 @@ public interface MsoInterface { * @return - the response body recived from MSO * @throws Exception */ - MsoResponseWrapper createVnf(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper createVnf(RequestDetails requestDetails, String endpoint); - MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String endpoint); /** * * @param requestDetails @@ -38,7 +38,7 @@ public interface MsoInterface { * @return * @throws Exception */ - MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String path) throws Exception; + MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String path); /** * @@ -46,44 +46,46 @@ public interface MsoInterface { * @return * @throws Exception */ - MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String endpoint); - MsoResponseWrapper createConfigurationInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper createConfigurationInstance(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String endpoint); - MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String endpoint); - MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper unassignSvcInstance(RequestDetails requestDetails, String endpoint); - MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String endpoint); - MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String endpoint); - MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String endpoint); - void getOrchestrationRequest(String t, String sourceId, String endpoint, RestObject restObject) throws Exception; + MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String endpoint); - MsoResponseWrapper getOrchestrationRequestsForDashboard(String t , String sourceId , String endpoint , RestObject restObject) throws Exception; + void getOrchestrationRequest(String t, String sourceId, String endpoint, RestObject restObject); - MsoResponseWrapper getManualTasksByRequestId(String t , String sourceId , String endpoint , RestObject restObject) throws Exception; + MsoResponseWrapper getOrchestrationRequestsForDashboard(String t , String sourceId , String endpoint , RestObject restObject); - MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject) throws Exception; + MsoResponseWrapper getManualTasksByRequestId(String t , String sourceId , String endpoint , RestObject restObject); - MsoResponseWrapper updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String vnf_endpoint) throws Exception; + MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject); - MsoResponseWrapper replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String vnf_endpoint) throws Exception; + MsoResponseWrapper updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String vnf_endpoint); - MsoResponseWrapper deleteConfiguration(RequestDetails requestDetails, String pmc_endpoint) throws Exception; + MsoResponseWrapper replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String vnf_endpoint); - MsoResponseWrapper setConfigurationActiveStatus(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper deleteConfiguration(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String pmc_endpoint); - MsoResponseWrapper setPortOnConfigurationStatus(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapper setConfigurationActiveStatus(RequestDetails requestDetails, String endpoint); - void setServiceInstanceStatus(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject) throws Exception; + MsoResponseWrapper setPortOnConfigurationStatus(RequestDetails requestDetails, String endpoint); - MsoResponseWrapperInterface changeManagementUpdate(RequestDetailsWrapper requestDetails, String endpoint) throws Exception; + void setServiceInstanceStatus(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject); - MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String endpoint) throws Exception; + MsoResponseWrapperInterface changeManagementUpdate(RequestDetailsWrapper requestDetails, String endpoint); - MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String addRelationshipsPath) throws Exception; + MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String endpoint); + + MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String addRelationshipsPath); } diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/MsoProperties.java b/vid-app-common/src/main/java/org/onap/vid/mso/MsoProperties.java index f6b3f946..773b8a83 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/MsoProperties.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/MsoProperties.java @@ -74,7 +74,10 @@ public class MsoProperties extends SystemProperties { /** The Constant MSO_REST_API_SVC_INSTANCE. */ public static final String MSO_REST_API_SVC_INSTANCE = "mso.restapi.svc.instance"; // /serviceInstances/v2 - + + /** The Constant MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE. */ + public static final String MSO_DELETE_OR_UNASSIGN_REST_API_SVC_INSTANCE = "mso.restapi.svc.instance.deleteAndUnassign"; + /** The Constant MSO_REST_API_VNF_INSTANCE. */ public static final String MSO_REST_API_VNF_INSTANCE = "mso.restapi.vnf.instance"; // /serviceInstances/v2/{service_instance_id}/vnfs @@ -100,7 +103,7 @@ public class MsoProperties extends SystemProperties { public static final String MSO_REST_API_VOLUME_GROUP_INSTANCE = "mso.restapi.volume.group.instance"; //serviceInstances/v2/{serviceInstanceId}/volumeGroups /** The Constant MSO_REST_API_CONFIGURATION_INSTANCE. */ - public static final String MSO_REST_API_CONFIGURATIONS = "mso.restapi.configurations"; //serviceInstances/v5/{serviceInstanceId}/configurations/ + public static final String MSO_REST_API_CONFIGURATIONS = "mso.restapi.configurations"; //serviceInstances/v5/{serviceInstanceId}/configurations public static final String MSO_REST_API_CONFIGURATION_INSTANCE = "mso.restapi.configuration.instance"; //serviceInstances/v5/{serviceInstanceId}/configurations/{configurationId} /** The Constant MSO_REST_API_OPERATIONAL_ENVIRONMENT */ @@ -118,5 +121,5 @@ public class MsoProperties extends SystemProperties { /** The Constant dateFormat. */ final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); - + } diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java b/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java index 7924a7d7..0494facd 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/RestMsoImplementation.java @@ -4,17 +4,17 @@ import com.att.eelf.configuration.EELFLogger; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.codec.binary.Base64; import org.eclipse.jetty.util.security.Password; -import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.vid.aai.util.HttpClientMode; +import org.onap.vid.aai.util.HttpsAuthClient; import org.onap.vid.client.HttpBasicClient; -import org.onap.vid.client.HttpsBasicClient; -import org.onap.vid.mso.rest.RequestDetails; +import org.onap.vid.exceptions.GenericUncheckedException; import org.onap.vid.mso.rest.RestInterface; import org.onap.vid.utils.Logging; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.SystemProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; -import javax.servlet.http.HttpServletRequest; import javax.ws.rs.client.Client; import javax.ws.rs.client.Entity; import javax.ws.rs.client.Invocation; @@ -25,6 +25,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Collections; import java.util.Date; +import java.util.UUID; import static org.onap.vid.utils.Logging.*; @@ -33,22 +34,33 @@ import static org.onap.vid.utils.Logging.*; */ public class RestMsoImplementation implements RestInterface { + public static final String START_LOG = " start"; + public static final String APPLICATION_JSON = "application/json"; + public static final String WITH_STATUS = " with status="; + public static final String URL_LOG = ", url="; + public static final String NO_RESPONSE_ENTITY_LOG = " No response entity, this is probably ok, e="; + public static final String WITH_URL_LOG = " with url="; + public static final String EXCEPTION_LOG = ", Exception: "; + public static final String REST_API_SUCCESSFULL_LOG = " REST api was successfull!"; + public static final String REST_API_POST_WAS_SUCCESSFUL_LOG = " REST api POST was successful!"; /** * The logger. */ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RestMsoImplementation.class); - final private EELFLogger outgoingRequestsLogger = Logging.getRequestsLogger("mso"); + private final EELFLogger outgoingRequestsLogger = Logging.getRequestsLogger("mso"); /** * The Constant dateFormat. */ - final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + static final DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); /** The client. */ - private static Client client = null; + private Client client = null; + + @Autowired + HttpsAuthClient httpsAuthClient; /** The common headers. */ - //private MultivaluedHashMap commonHeaders; /** * Instantiates a new mso rest interface. */ @@ -71,30 +83,28 @@ public class RestMsoImplementation implements RestInterface { MultivaluedHashMap commonHeaders = new MultivaluedHashMap(); commonHeaders.put("Authorization", Collections.singletonList(("Basic " + authStringEnc))); - commonHeaders.put(requestIdHeaderKey, Collections.singletonList(getHttpServletRequest().getHeader(requestIdHeaderKey))); - //Pass calling application identifier to SO + //Pass calling application identifier to SO commonHeaders.put("X-FromAppId", Collections.singletonList(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME))); + try { + commonHeaders.put(REQUEST_ID_HEADER_KEY, Collections.singletonList(Logging.extractOrGenerateRequestId())); + } + catch (IllegalStateException e){ + //in async jobs we don't have any HttpServletRequest + commonHeaders.put(REQUEST_ID_HEADER_KEY, Collections.singletonList(UUID.randomUUID().toString())); + } + - boolean use_ssl = true; + boolean useSsl = true; if ( (mso_url != null) && ( !(mso_url.isEmpty()) ) ) { - if ( mso_url.startsWith("https")) { - use_ssl = true; - } - else { - use_ssl = false; - } + useSsl = mso_url.startsWith("https"); } if (client == null) { try { - if ( use_ssl ) { - //logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + methodname + " getting HttpsBasicClient with username=" + username - // + " password=" + password); - client = HttpsBasicClient.getClient(); + if ( useSsl ) { + client = httpsAuthClient.getClient(HttpClientMode.WITHOUT_KEYSTORE); } else { - //logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + methodname + " getting HttpsBasicClient with username=" + username - // + " password=" + password); client = HttpBasicClient.getClient(); } } catch (Exception e) { @@ -105,10 +115,10 @@ public class RestMsoImplementation implements RestInterface { return commonHeaders; } - public void Get (T t, String sourceId, String path, RestObject restObject ) throws Exception { + public void Get (T t, String sourceId, String path, RestObject restObject ) { String methodName = "Get"; - logger.debug(EELFLoggerDelegate.debugLogger, methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, methodName + START_LOG); String url=""; restObject.set(t); @@ -119,7 +129,7 @@ public class RestMsoImplementation implements RestInterface { Logging.logRequest(outgoingRequestsLogger, HttpMethod.GET, url); final Response cres = client.target(url) .request() - .accept("application/json") + .accept(APPLICATION_JSON) .headers(commonHeaders) .get(); Logging.logResponse(outgoingRequestsLogger, HttpMethod.GET, url, cres); @@ -129,10 +139,10 @@ public class RestMsoImplementation implements RestInterface { if (status == 200 || status == 202) { t = (T) cres.readEntity(t.getClass()); restObject.set(t); - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + methodName + " REST api was successfull!"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + methodName + REST_API_SUCCESSFULL_LOG); } else { - throw new Exception(methodName + " with status="+ status + ", url= " + url ); + throw new GenericUncheckedException(methodName + WITH_STATUS + status + ", url= " + url ); } logger.debug(EELFLoggerDelegate.debugLogger,methodName + " received status=" + status ); @@ -140,7 +150,7 @@ public class RestMsoImplementation implements RestInterface { return; } - public RestObject GetForObject(String sourceID, String path, Class clazz) throws Exception { + public RestObject GetForObject(String sourceID, String path, Class clazz) { final String methodName = getMethodName(); logger.debug(EELFLoggerDelegate.debugLogger, "start {}->{}({}, {}, {})", getMethodCallerName(), methodName, sourceID, path, clazz); @@ -151,7 +161,7 @@ public class RestMsoImplementation implements RestInterface { Logging.logRequest(outgoingRequestsLogger, HttpMethod.GET, url); final Response cres = client.target(url) .request() - .accept("application/json") + .accept(APPLICATION_JSON) .headers(commonHeaders) .get(); Logging.logResponse(outgoingRequestsLogger, HttpMethod.GET, url, cres); @@ -159,9 +169,9 @@ public class RestMsoImplementation implements RestInterface { int status = cres.getStatus(); if (status == 200 || status == 202) { - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + methodName + " REST api was successfull!"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + methodName + REST_API_SUCCESSFULL_LOG); } else { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " with status="+status+", url="+url); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + WITH_STATUS +status+ URL_LOG +url); } logger.debug(EELFLoggerDelegate.debugLogger,methodName + " received status=" + status ); @@ -176,7 +186,7 @@ public class RestMsoImplementation implements RestInterface { String url=""; Response cres = null; - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + START_LOG); try { MultivaluedHashMap commonHeaders = initMsoClient(); @@ -185,7 +195,8 @@ public class RestMsoImplementation implements RestInterface { Logging.logRequest(outgoingRequestsLogger, HttpMethod.DELETE, url, r); cres = client.target(url) .request() - .accept("application/json") + + .accept(APPLICATION_JSON) .headers(commonHeaders) //.entity(r) .build("DELETE", Entity.entity(r, MediaType.APPLICATION_JSON)).invoke(); @@ -212,30 +223,30 @@ public class RestMsoImplementation implements RestInterface { restObject.set(t); } catch ( Exception e ) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " No response entity, this is probably ok, e=" + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + NO_RESPONSE_ENTITY_LOG + e.getMessage()); } } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " with url="+url+ ", Exception: " + e.toString()); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + WITH_URL_LOG +url+ EXCEPTION_LOG + e.toString()); throw e; } } - public RestObject PostForObject(Object requestDetails, String sourceID, String path, Class clazz) throws RuntimeException { + public RestObject PostForObject(Object requestDetails, String sourceID, String path, Class clazz) { logger.debug(EELFLoggerDelegate.debugLogger, "start {}->{}({}, {}, {}, {})", getMethodCallerName(), getMethodName(), requestDetails, sourceID, path, clazz); RestObject restObject = new RestObject<>(); - Post(clazz, requestDetails, sourceID, path, restObject); + Post(clazz, requestDetails, path, restObject); return restObject; } @Override - public void Post(T t, Object r, String sourceID, String path, RestObject restObject) throws RuntimeException { + public void Post(T t, Object r, String sourceID, String path, RestObject restObject) { logger.debug(EELFLoggerDelegate.debugLogger, "start {}->{}({}, {}, {}, {})", getMethodCallerName(), getMethodName(), t.getClass(), r, sourceID, path); - Post(t.getClass(), r, sourceID, path, restObject); + Post(t.getClass(), r, path, restObject); } public Invocation.Builder prepareClient(String path, String methodName) { @@ -246,13 +257,13 @@ public class RestMsoImplementation implements RestInterface { // Change the content length return client.target(url) .request() - .accept("application/json") + .accept(APPLICATION_JSON) .headers(commonHeaders); } - public void Post(Class tClass, Object requestDetails, String sourceID, String path, RestObject restObject) throws RuntimeException { + public void Post(Class tClass, Object requestDetails, String path, RestObject restObject) { String methodName = "Post"; String url=""; @@ -265,11 +276,10 @@ public class RestMsoImplementation implements RestInterface { // Change the content length final Response cres = client.target(url) .request() - .accept("application/json") + .accept(APPLICATION_JSON) .headers(commonHeaders) .post(Entity.entity(requestDetails, MediaType.APPLICATION_JSON)); Logging.logResponse(outgoingRequestsLogger, HttpMethod.POST, url, cres); - final RestObject cresToRestObject = cresToRestObject(cres, tClass); restObject.set(cresToRestObject.get()); restObject.setStatusCode(cresToRestObject.getStatusCode()); @@ -279,16 +289,16 @@ public class RestMsoImplementation implements RestInterface { restObject.setStatusCode (status); if ( status >= 200 && status <= 299 ) { - logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + methodName + " REST api POST was successful!"); - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " REST api POST was successful!"); + logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + methodName + REST_API_POST_WAS_SUCCESSFUL_LOG); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + REST_API_POST_WAS_SUCCESSFUL_LOG); } else { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " with status="+status+", url="+url); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + WITH_STATUS +status+ URL_LOG +url); } } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " with url="+url+ ", Exception: " + e.toString()); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + WITH_URL_LOG +url+ EXCEPTION_LOG + e.toString()); throw e; } @@ -303,16 +313,16 @@ public class RestMsoImplementation implements RestInterface { try { cres.bufferEntity(); rawEntity = cres.readEntity(String.class); + restObject.setRaw(rawEntity); T t = (T) new ObjectMapper().readValue(rawEntity, tClass); restObject.set(t); } catch ( Exception e ) { try { - restObject.setRaw(rawEntity); logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + getMethodCallerName() + " Error reading response entity as " + tClass + ": , e=" + e.getMessage() + ", Entity=" + rawEntity); } catch (Exception e2) { - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + getMethodCallerName() + " No response entity, this is probably ok, e=" + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + getMethodCallerName() + NO_RESPONSE_ENTITY_LOG + e.getMessage()); } } @@ -325,14 +335,13 @@ public class RestMsoImplementation implements RestInterface { } @Override - public void Put(T t, org.onap.vid.changeManagement.RequestDetailsWrapper r, String sourceID, String path, RestObject restObject) throws Exception { + public void Put(T t, org.onap.vid.changeManagement.RequestDetailsWrapper r, String sourceID, String path, RestObject restObject) { String methodName = "Put"; String url=""; - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + START_LOG); -// logRequest (r); try { MultivaluedHashMap commonHeaders = initMsoClient(); @@ -342,7 +351,7 @@ public class RestMsoImplementation implements RestInterface { // Change the content length final Response cres = client.target(url) .request() - .accept("application/json") + .accept(APPLICATION_JSON) .headers(commonHeaders) //.header("content-length", 201) //.header("X-FromAppId", sourceID) @@ -355,7 +364,7 @@ public class RestMsoImplementation implements RestInterface { restObject.set(t); } catch ( Exception e ) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " No response entity, this is probably ok, e=" + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + NO_RESPONSE_ENTITY_LOG + e.getMessage()); } @@ -363,16 +372,16 @@ public class RestMsoImplementation implements RestInterface { restObject.setStatusCode (status); if ( status >= 200 && status <= 299 ) { - logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + methodName + " REST api POST was successful!"); - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " REST api POST was successful!"); + logger.info(EELFLoggerDelegate.errorLogger, dateFormat.format(new Date()) + "<== " + methodName + REST_API_POST_WAS_SUCCESSFUL_LOG); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + REST_API_POST_WAS_SUCCESSFUL_LOG); } else { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " with status="+status+", url="+url); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + WITH_STATUS +status+ URL_LOG +url); } } catch (Exception e) { - logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + " with url="+url+ ", Exception: " + e.toString()); + logger.debug(EELFLoggerDelegate.debugLogger,dateFormat.format(new Date()) + "<== " + methodName + WITH_URL_LOG +url+ EXCEPTION_LOG + e.toString()); throw e; } diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java b/vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java new file mode 100644 index 00000000..1a54b74c --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/mso/model/ServiceInstantiationRequestDetails.java @@ -0,0 +1,165 @@ +package org.onap.vid.mso.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.fasterxml.jackson.annotation.JsonTypeName; +import org.onap.vid.domain.mso.CloudConfiguration; +import org.onap.vid.domain.mso.ModelInfo; +import org.onap.vid.domain.mso.SubscriberInfo; +import org.onap.vid.model.serviceInstantiation.VfModule; + +import java.util.List; +import java.util.Map; + +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY; +import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; + +public class ServiceInstantiationRequestDetails { + + @JsonProperty("modelInfo") + private ModelInfo modelInfo; + + @JsonProperty("owningEntity") + private ServiceInstantiationOwningEntity owningEntity; + + @JsonProperty("subscriberInfo") + private SubscriberInfo subscriberInfo; + + @JsonProperty("project") + private Project project; + + @JsonProperty("requestParameters") + private RequestParameters requestParameters; + + @JsonProperty("requestInfo") + private RequestInfo requestInfo; + + public ServiceInstantiationRequestDetails(@JsonProperty(value = "modelInfo", required = true) ModelInfo modelInfo, + @JsonProperty(value = "owningEntity", required = true) ServiceInstantiationOwningEntity owningEntity, + @JsonProperty(value = "subscriberInfo", required = true) SubscriberInfo subscriberInfo, + @JsonProperty(value = "project", required = true) Project project, + @JsonProperty(value = "requestInfo", required = true) RequestInfo requestInfo, + @JsonProperty(value = "requestParameters", required = true) RequestParameters requestParameters) { + this.modelInfo = modelInfo; + this.owningEntity = owningEntity; + this.subscriberInfo = subscriberInfo; + this.project = project; + this.requestInfo = requestInfo; + this.requestParameters = requestParameters; + } + + public static class ServiceInstantiationOwningEntity{ + public final String owningEntityId; + public final String owningEntityName; + + public ServiceInstantiationOwningEntity(String owningEntityId, String owningEntityName) { + this.owningEntityId = owningEntityId; + this.owningEntityName = owningEntityName; + } + } + + public static class RequestInfo { + + @JsonInclude(NON_NULL) public final String instanceName; + public final String productFamilyId; + public final String source; + public final boolean suppressRollback; + public final String requestorId; + + public RequestInfo(String instanceName, String productFamilyId, String source, boolean rollbackOnFailure, String requestorId) { + this.instanceName = instanceName; + this.productFamilyId = productFamilyId; + this.source = source; + this.requestorId = requestorId; + // in the FE we are asking for "RollbackOnFailure" but to MSO we are passing the negative value "suppressRollback" + this.suppressRollback = !rollbackOnFailure; + } + } + + public static class Project{ + public final String projectName; + + public Project(String projectName) { + this.projectName = projectName; + } + } + + public static class RequestParameters { + + public final String subscriptionServiceType; + public final boolean aLaCarte; + public final List userParams; + + public RequestParameters(String subscriptionServiceType, boolean aLaCarte, List userParams) { + this.subscriptionServiceType = subscriptionServiceType; + this.aLaCarte = aLaCarte; + this.userParams = userParams; + } + } + + @JsonTypeName("service") + @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) + public static class ServiceInstantiationService{ + public ModelInfo modelInfo = new ModelInfo(); + @JsonInclude(NON_NULL) public String instanceName; + public List> instanceParams; + public ServiceInstantiationVnfList resources; + + public ServiceInstantiationService (ModelInfo modelInfo, String instanceName, List> instanceParams, ServiceInstantiationVnfList vnfs){ + this.modelInfo.setModelType(modelInfo.getModelType()); + this.modelInfo.setModelName(modelInfo.getModelName()); + this.modelInfo.setModelVersionId(modelInfo.getModelVersionId()); + this.instanceName = instanceName; + this.instanceParams = instanceParams; + this.resources = vnfs; + } + } + + public static class ServiceInstantiationVnfList{ + public final List vnfs; + + public ServiceInstantiationVnfList(List vnfList) { + this.vnfs = vnfList; + } + } + + public static class ServiceInstantiationVnf{ + public final ModelInfo modelInfo; + public final CloudConfiguration cloudConfiguration; + public final Platform platform; + public final LineOfBusiness lineOfBusiness; + public final String productFamilyId; + public final List> instanceParams; + @JsonInclude(NON_EMPTY) public final List vfModules; + @JsonInclude(NON_NULL) public final String instanceName; + + public ServiceInstantiationVnf(ModelInfo modelInfo, CloudConfiguration cloudConfiguration, String platform, String lineOfBusiness, String productFamilyId, List> instanceParams, List vfModules, String instanceName) { + this.modelInfo = modelInfo; + this.cloudConfiguration = cloudConfiguration; + this.platform = new Platform(platform); + this.lineOfBusiness = new LineOfBusiness(lineOfBusiness); + this.productFamilyId = productFamilyId; + this.instanceParams = instanceParams; + this.vfModules = vfModules; + this.instanceName = instanceName; + } + } + + public static class Platform{ + public final String platformName; + + public Platform(String platformName) { + this.platformName = platformName; + } + } + + public static class LineOfBusiness{ + public final String lineOfBusinessName; + + public LineOfBusiness(String lineOfBusiness) { + this.lineOfBusinessName = lineOfBusiness; + } + } +} + diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/AsyncRequestStatus.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/AsyncRequestStatus.java index 4dd6eaca..4c3dca26 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/rest/AsyncRequestStatus.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/AsyncRequestStatus.java @@ -20,104 +20,56 @@ package org.onap.vid.mso.rest; -//import java.util.HashMap; -//import java.util.Map; -//import javax.annotation.Generated; -import org.onap.vid.domain.mso.InstanceIds; -import org.onap.vid.domain.mso.RequestStatus; -//import com.fasterxml.jackson.annotation.JsonAnyGetter; -//import com.fasterxml.jackson.annotation.JsonAnySetter; -//import com.fasterxml.jackson.annotation.JsonCreator; -//import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -//import com.fasterxml.jackson.annotation.JsonPropertyOrder; -//import com.fasterxml.jackson.annotation.JsonValue; -import org.apache.commons.lang.builder.EqualsBuilder; -import org.apache.commons.lang.builder.HashCodeBuilder; -import org.apache.commons.lang.builder.ToStringBuilder; - +import org.onap.vid.domain.mso.RequestStatus; /** - * request structure. + * Represent response for: GET orchestrationRequests */ @JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class AsyncRequestStatus { -public class AsyncRequestStatus extends org.onap.vid.domain.mso.AsyncRequestStatus { + public Request request; - - /** The instance ids. */ - private InstanceIds instanceIds; - - /** The request status. */ - private RequestStatus requestStatus; - - /* (non-Javadoc) - * @see org.onap.vid.domain.mso.AsyncRequestStatus#getInstanceIds() - */ - public InstanceIds getInstanceIds() { - return instanceIds; + public AsyncRequestStatus(Request request) { + this.request = request; } - /** - * Sets the instance ids. - * - * @param instanceIds the new instance ids - */ - public void setInstanceIds(InstanceIds instanceIds) { - this.instanceIds = instanceIds; - } + public AsyncRequestStatus() { - - /** - * (Required). - * - * @return The requestStatus - */ - @JsonProperty("requestStatus") - public RequestStatus getRequestStatus() { - return requestStatus; } - /** - * (Required). - * - * @param requestStatus The requestStatus - */ - @JsonProperty("requestStatus") - public void setRequestStatus(RequestStatus requestStatus) { - this.requestStatus = requestStatus; - } - - /* (non-Javadoc) - * @see org.onap.vid.domain.mso.AsyncRequestStatus#toString() - */ - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this); - } - - /* (non-Javadoc) - * @see org.onap.vid.domain.mso.AsyncRequestStatus#hashCode() - */ - @Override - public int hashCode() { - return new HashCodeBuilder().append(getCorrelator()).append(getFinishTime()).append(instanceIds).append(getRequestId()).append(getRequestScope()).append(getRequestStatus()).append(getRequestType()).append(getStartTime()).append(getAdditionalProperties()).toHashCode(); - } + @JsonIgnoreProperties(ignoreUnknown = true) + public static class Request { - /* (non-Javadoc) - * @see org.onap.vid.domain.mso.AsyncRequestStatus#equals(java.lang.Object) - */ - @Override - public boolean equals(Object other) { - if (other == this) { - return true; + public Request(RequestStatus requestStatus) { + this.requestStatus = requestStatus; } - if ((other instanceof AsyncRequestStatus) == false) { - return false; + + public Request() { } - AsyncRequestStatus rhs = ((AsyncRequestStatus) other); - return new EqualsBuilder().append(getCorrelator(), rhs.getCorrelator()).append(getFinishTime(), rhs.getFinishTime()).append(instanceIds, rhs.instanceIds).append(getRequestId(), rhs.getRequestId()).append(getRequestScope(), rhs.getRequestScope()).append(getRequestStatus(), rhs.getRequestStatus()).append(getRequestType(), rhs.getRequestType()).append(getStartTime(), rhs.getStartTime()).append(getAdditionalProperties(), rhs.getAdditionalProperties()).isEquals(); + + public String requestId; + + /** + * The instance ids. + */ + public InstanceReferences instanceReferences; + + /** + * The request status. + */ + public RequestStatus requestStatus; } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static class InstanceReferences { + + public String serviceInstanceId; + } + + } diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java index 14761cad..ae1b7a2a 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/MsoRestClientNew.java @@ -20,6 +20,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf * The Constant dateFormat. */ final static DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSSS"); + private static final String START = " start"; private final String ORIGINAL_REQUEST_ID = "originalRequestId"; /** * The logger. @@ -27,124 +28,131 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MsoRestClientNew.class); @Override - public MsoResponseWrapper createSvcInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper createSvcInstance(RequestDetails requestDetails, String endpoint) { String methodName = "createSvcInstance "; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return createInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper createE2eSvcInstance(Object requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper createE2eSvcInstance(Object requestDetails, String endpoint) { String methodName = "createE2eSvcInstance "; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return createInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper createVnf(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper createVnf(RequestDetails requestDetails, String endpoint) { String methodName = "createVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return createInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper createNwInstance(RequestDetails requestDetails, String endpoint) { String methodName = "createNwInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return createInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper createVolumeGroupInstance(RequestDetails requestDetails, String endpoint) { String methodName = "createVolumeGroupInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return createInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper createVfModuleInstance(RequestDetails requestDetails, String endpoint) { String methodName = "createVfModuleInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return createInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper createConfigurationInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper createConfigurationInstance(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String endpoint) { String methodName = "createConfigurationInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); - - return createInstance(requestDetails, endpoint); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); + return createInstance(requestDetailsWrapper, endpoint); } @Override - public MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper deleteE2eSvcInstance(Object requestDetails, String endpoint) { String methodName = "deleteE2eSvcInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return deleteInstance(requestDetails, endpoint); } - + @Override - public MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper deleteSvcInstance(RequestDetails requestDetails, String endpoint) { String methodName = "deleteSvcInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return deleteInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper unassignSvcInstance(RequestDetails requestDetails, String endpoint) { + String methodName = "unassignSvcInstance"; + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); + + RestObject msoResponse = PostForObject(requestDetails, "", endpoint, String.class); + return MsoUtil.wrapResponse(msoResponse); + } + + @Override + public MsoResponseWrapper deleteVnf(RequestDetails requestDetails, String endpoint) { String methodName = "deleteVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return deleteInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper deleteVfModule(RequestDetails requestDetails, String endpoint) { String methodName = "deleteVfModule"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return deleteInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper deleteVolumeGroupInstance(RequestDetails requestDetails, String endpoint) { String methodName = "deleteVolumeGroupInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return deleteInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper deleteNwInstance(RequestDetails requestDetails, String endpoint) { String methodName = "deleteNwInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return deleteInstance(requestDetails, endpoint); } @Override - public void getOrchestrationRequest(String t, String sourceId, String endpoint, RestObject restObject) throws Exception { + public void getOrchestrationRequest(String t, String sourceId, String endpoint, RestObject restObject) { Get(t, sourceId, endpoint, restObject); } - public void getManualTasks(String t, String sourceId, String endpoint, RestObject restObject) throws Exception { + public void getManualTasks(String t, String sourceId, String endpoint, RestObject restObject) { Get(t, sourceId, endpoint, restObject); } - - public MsoResponseWrapper createInstance(Object request, String path) throws Exception { + public MsoResponseWrapper createInstance(Object request, String path) { String methodName = "createInstance"; - logger.debug(dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START); try { RestObject restObjStr = new RestObject(); @@ -164,7 +172,6 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } } - /** * Delete instance. * @@ -173,9 +180,9 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf * @return the mso response wrapper * @throws Exception the exception */ - public MsoResponseWrapper deleteInstance(Object request, String path) throws Exception { + public MsoResponseWrapper deleteInstance(Object request, String path) { String methodName = "deleteInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Delete, path =[" + path + "]"); @@ -197,9 +204,9 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } - public MsoResponseWrapper getOrchestrationRequestsForDashboard(String t, String sourceId, String endpoint, RestObject restObject) throws Exception { + public MsoResponseWrapper getOrchestrationRequestsForDashboard(String t, String sourceId, String endpoint, RestObject restObject) { String methodName = "getOrchestrationRequestsForDashboard"; - logger.debug(dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START); try { getOrchestrationRequest(t, sourceId, endpoint, restObject); @@ -215,9 +222,9 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } } - public MsoResponseWrapper getManualTasksByRequestId(String t, String sourceId, String endpoint, RestObject restObject) throws Exception { + public MsoResponseWrapper getManualTasksByRequestId(String t, String sourceId, String endpoint, RestObject restObject) { String methodName = "getManualTasksByRequestId"; - logger.debug(dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(dateFormat.format(new Date()) + "<== " + methodName + START); try { getManualTasks(t, sourceId, endpoint, restObject); @@ -233,9 +240,8 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } } - @Override - public MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject) throws Exception { + public MsoResponseWrapper completeManualTask(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject) { String methodName = "completeManualTask"; logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Complete "); try { @@ -254,26 +260,25 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } @Override - public MsoResponseWrapper replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper replaceVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String endpoint) { String methodName = "replaceVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); return replaceInstance(requestDetails, endpoint); } @Override - public MsoResponseWrapper deleteConfiguration(RequestDetails requestDetails, String pmc_endpoint) - throws Exception { + public MsoResponseWrapper deleteConfiguration(org.onap.vid.mso.rest.RequestDetailsWrapper requestDetailsWrapper, String pmc_endpoint) { String methodName = "deleteConfiguration"; logger.debug(EELFLoggerDelegate.debugLogger, - dateFormat.format(new Date()) + "<== " + methodName + " start"); + dateFormat.format(new Date()) + "<== " + methodName + START); - return deleteInstance(requestDetails, pmc_endpoint); + return deleteInstance(requestDetailsWrapper, pmc_endpoint); } @Override - public MsoResponseWrapper setConfigurationActiveStatus(RequestDetails request, String path) throws Exception { + public MsoResponseWrapper setConfigurationActiveStatus(RequestDetails request, String path) { String methodName = "setConfigurationActiveStatus"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling change configuration active status, path =[" + path + "]"); @@ -293,9 +298,9 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } @Override - public MsoResponseWrapper setPortOnConfigurationStatus(RequestDetails request, String path) throws Exception { + public MsoResponseWrapper setPortOnConfigurationStatus(RequestDetails request, String path) { String methodName = "setPortOnConfigurationStatus"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling change port configuration status, path =[" + path + "]"); @@ -315,14 +320,14 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } @Override - public MsoResponseWrapperInterface changeManagementUpdate(RequestDetailsWrapper requestDetails, String endpoint) throws Exception { + public MsoResponseWrapperInterface changeManagementUpdate(RequestDetailsWrapper requestDetails, String endpoint) { RestObject msoResponse = PostForObject(requestDetails, "", endpoint, RequestReferencesContainer.class); return new MsoResponseWrapper2<>(msoResponse); } - public MsoResponseWrapper replaceInstance(org.onap.vid.changeManagement.RequestDetails request, String path) throws Exception { + public MsoResponseWrapper replaceInstance(org.onap.vid.changeManagement.RequestDetails request, String path) { String methodName = "replaceInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { @@ -357,17 +362,17 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } @Override - public MsoResponseWrapper updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper updateVnf(org.onap.vid.changeManagement.RequestDetails requestDetails, String endpoint) { String methodName = "updateVnf"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); RequestDetailsWrapper wrapper = new RequestDetailsWrapper(); wrapper.requestDetails = new MsoRequestDetails(requestDetails); return updateInstance(requestDetails, endpoint); } - public MsoResponseWrapper updateInstance(org.onap.vid.changeManagement.RequestDetails request, String path) throws Exception { + public MsoResponseWrapper updateInstance(org.onap.vid.changeManagement.RequestDetails request, String path) { String methodName = "updateInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Delete, path =[" + path + "]"); @@ -390,7 +395,7 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } - public void setServiceInstanceStatus(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject) throws Exception { + public void setServiceInstanceStatus(RequestDetails requestDetails, String t, String sourceId, String endpoint, RestObject restObject) { String methodName = "activateServiceInstance"; logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start "); try { @@ -408,9 +413,9 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } @Override - public MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String endpoint) throws Exception { + public MsoResponseWrapper removeRelationshipFromServiceInstance(RequestDetails requestDetails, String endpoint) { String methodName = "removeRelationshipFromServiceInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Remove relationship from service instance, path =[" + endpoint + "]"); @@ -429,9 +434,9 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf } @Override - public MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String addRelationshipsPath) throws Exception { + public MsoResponseWrapper addRelationshipToServiceInstance(RequestDetails requestDetails, String addRelationshipsPath) { String methodName = "addRelationshipToServiceInstance"; - logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " start"); + logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + START); try { logger.debug(EELFLoggerDelegate.debugLogger, dateFormat.format(new Date()) + "<== " + methodName + " calling Add relationship to service instance, path =[" + addRelationshipsPath + "]"); @@ -447,5 +452,4 @@ public class MsoRestClientNew extends RestMsoImplementation implements MsoInterf throw e; } } - } \ No newline at end of file diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/RelatedInstanceWrapper.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RelatedInstanceWrapper.java new file mode 100644 index 00000000..0dd64670 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RelatedInstanceWrapper.java @@ -0,0 +1,5 @@ +package org.onap.vid.mso.rest; + +public class RelatedInstanceWrapper { + public RelatedInstance relatedInstance; +} diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetails.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetails.java index 9e744736..df691484 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetails.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetails.java @@ -20,21 +20,15 @@ package org.onap.vid.mso.rest; -import java.util.HashMap; -import java.util.Map; -import java.util.List; - -import org.onap.vid.domain.mso.*; -import org.onap.vid.domain.mso.SubscriberInfo; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import com.fasterxml.jackson.annotation.*; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; +import org.onap.vid.domain.mso.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -51,6 +45,8 @@ import org.apache.commons.lang.builder.ToStringBuilder; }) public class RequestDetails{ + + /** The cloud configuration. */ @JsonProperty("cloudConfiguration") private CloudConfiguration cloudConfiguration; @@ -60,8 +56,8 @@ public class RequestDetails{ private ModelInfo modelInfo; /** The related model list. */ - @JsonProperty("relatedModelList") - private List relatedInstanceList; + @JsonProperty("relatedInstanceList") + private List relatedInstanceList; /** The request info. */ @JsonProperty("requestInfo") @@ -124,7 +120,7 @@ public class RequestDetails{ * @return The relatedInstanceList */ @JsonProperty("relatedInstanceList") - public List getRelatedInstanceList() { + public List getRelatedInstanceList() { return relatedInstanceList; } @@ -134,7 +130,7 @@ public class RequestDetails{ * @param relatedInstanceList The relatedInstanceList */ @JsonProperty("relatedInstanceList") - public void setRelatedInstanceList( List relatedInstanceList) { + public void setRelatedInstanceList(List relatedInstanceList) { this.relatedInstanceList = relatedInstanceList; } diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetailsWrapper.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetailsWrapper.java new file mode 100644 index 00000000..0e320a35 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RequestDetailsWrapper.java @@ -0,0 +1,5 @@ +package org.onap.vid.mso.rest; + +public class RequestDetailsWrapper { + public RequestDetails requestDetails; +} diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/rest/RestInterface.java b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RestInterface.java index 38cd5151..feb3f3c1 100644 --- a/vid-app-common/src/main/java/org/onap/vid/mso/rest/RestInterface.java +++ b/vid-app-common/src/main/java/org/onap/vid/mso/rest/RestInterface.java @@ -24,7 +24,7 @@ public interface RestInterface { * @param restObject the rest object * @throws Exception the exception */ - void Get (T t, String sourceId, String path, RestObject restObject ) throws Exception; + void Get (T t, String sourceId, String path, RestObject restObject ); /** * Delete. @@ -37,7 +37,7 @@ public interface RestInterface { * @param restObject the rest object * @throws Exception the exception */ - void Delete(T t, Object r, String sourceID, String path, RestObject restObject) throws Exception; + void Delete(T t, Object r, String sourceID, String path, RestObject restObject); /** * Post. @@ -50,7 +50,7 @@ public interface RestInterface { * @param restObject the rest object * @throws Exception the exception */ - void Post(T t, Object r, String sourceID, String path, RestObject restObject) throws Exception; + void Post(T t, Object r, String sourceID, String path, RestObject restObject); /** * Put. @@ -63,6 +63,6 @@ public interface RestInterface { * @param restObject the rest object * @throws Exception the exception */ - void Put(T t, org.onap.vid.changeManagement.RequestDetailsWrapper r, String sourceID, String path, RestObject restObject) throws Exception; + void Put(T t, org.onap.vid.changeManagement.RequestDetailsWrapper r, String sourceID, String path, RestObject restObject); } -- cgit 1.2.3-korg