From f86960874497f005079c9e595b5e9e2eb0a815d1 Mon Sep 17 00:00:00 2001 From: Seshu-Kumar-M Date: Wed, 11 Oct 2017 20:39:35 +0800 Subject: [PATCH] Imp Modules refactored for the readthedocs Signed-off-by: Seshu-Kumar-M IssueId: SO-209 Change-Id: Ie1b553863f824497fbe7381f66bc1581310702af --- .../WEB-INF/jboss-deployment-structure.xml | 11 +- .../mso-vfc-adapter/WebContent/WEB-INF/web.xml | 209 ++++--- adapters/mso-vfc-adapter/WebContent/check.html | 3 +- adapters/mso-vfc-adapter/pom.xml | 237 ++++--- .../org/openecomp/mso/adapters/vfc/AaiUtil.java | 27 +- .../openecomp/mso/adapters/vfc/VfcAdapterRest.java | 288 +++++---- .../org/openecomp/mso/adapters/vfc/VfcManager.java | 692 +++++++++++---------- .../adapters/vfc/constant/DriverExceptionID.java | 26 +- .../openecomp/mso/adapters/vfc/util/JsonUtil.java | 156 ++--- .../mso/adapters/vfc/util/RestfulUtil.java | 334 +++++----- .../mso/adapters/vfc/util/ValidateUtil.java | 97 +-- .../openecomp/mso/adapters/vfc/VfcAdapterTest.java | 381 ++++++------ .../src/test/resources/logback-test.xml | 83 ++- 13 files changed, 1268 insertions(+), 1276 deletions(-) diff --git a/adapters/mso-vfc-adapter/WebContent/WEB-INF/jboss-deployment-structure.xml b/adapters/mso-vfc-adapter/WebContent/WEB-INF/jboss-deployment-structure.xml index 58ddb4a08f..e7bc08ae83 100644 --- a/adapters/mso-vfc-adapter/WebContent/WEB-INF/jboss-deployment-structure.xml +++ b/adapters/mso-vfc-adapter/WebContent/WEB-INF/jboss-deployment-structure.xml @@ -1,16 +1,17 @@ - + - - - - + + + + \ No newline at end of file diff --git a/adapters/mso-vfc-adapter/WebContent/WEB-INF/web.xml b/adapters/mso-vfc-adapter/WebContent/WEB-INF/web.xml index 160dfb81bf..0c198defa0 100644 --- a/adapters/mso-vfc-adapter/WebContent/WEB-INF/web.xml +++ b/adapters/mso-vfc-adapter/WebContent/WEB-INF/web.xml @@ -1,118 +1,121 @@ - - mso-vfc-adapter + + mso-vfc-adapter - - resteasy.jndi.resources - java:module/MsoPropertiesFactory,java:module/CloudConfigFactory - + + resteasy.jndi.resources + java:module/MsoPropertiesFactory,java:module/CloudConfigFactory + - - log.configuration - logback.vfc.xml - - - mso.configuration - MSO_PROP_NETWORK_ADAPTER=mso.vfc.properties,MSO_PROP_TOPOLOGY=topology.properties - - - mso.cloud_config.configuration - cloud_config.json=2 - - - resteasy.resources - + + log.configuration + logback.vfc.xml + + + mso.configuration + MSO_PROP_NETWORK_ADAPTER=mso.vfc.properties,MSO_PROP_TOPOLOGY=topology.properties + + + mso.cloud_config.configuration + cloud_config.json=2 + + + resteasy.resources + org.openecomp.mso.MsoStatusHandler, org.openecomp.mso.logger.MsoLoggingServlet, org.openecomp.mso.adapters.vfc.HealthCheckHandler, org.openecomp.mso.adapters.vfc.VfcAdapterRest - - - resteasy.servlet.mapping.prefix - /rest - - - Resteasy - org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher - - - Resteasy - /vfcadapter/* - - - - SoapRequests - Soap Ingress Requests - /VfcAdapter - /VfcAdapterAsync - POST - - - BPEL-Client - - - - - SiteStatus - SiteStatus APIs - /rest/setStatus/* - POST - - - SiteControl-Client - - - - - RestRequests - Rest Ingress Requests - /rest/v1/vfc/* - DELETE - GET - POST - PUT - - - BPEL-Client - - - - - MSO internal Requests - Internal Requests - /rest/logging/* - /rest/properties/* - POST - GET - - - MSO-Client - - - - BASIC - ApplicationRealm - - - BPEL-Client - - - SiteControl-Client - - - MSO-Client - - + + + resteasy.servlet.mapping.prefix + /rest + + + Resteasy + org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher + + + Resteasy + /vfcadapter/* + + + + SoapRequests + Soap Ingress Requests + /VfcAdapter + /VfcAdapterAsync + POST + + + BPEL-Client + + + + + SiteStatus + SiteStatus APIs + /rest/setStatus/* + POST + + + SiteControl-Client + + + + + RestRequests + Rest Ingress Requests + /rest/v1/vfc/* + DELETE + GET + POST + PUT + + + BPEL-Client + + + + + MSO internal Requests + Internal Requests + /rest/logging/* + /rest/properties/* + POST + GET + + + MSO-Client + + + + BASIC + ApplicationRealm + + + BPEL-Client + + + SiteControl-Client + + + MSO-Client + + LogFilter org.openecomp.mso.logger.LogFilter - - + + LogFilter /* - - check.html - + + check.html + diff --git a/adapters/mso-vfc-adapter/WebContent/check.html b/adapters/mso-vfc-adapter/WebContent/check.html index 00f37d60d1..b4250aa782 100644 --- a/adapters/mso-vfc-adapter/WebContent/check.html +++ b/adapters/mso-vfc-adapter/WebContent/check.html @@ -4,7 +4,6 @@ Health Check - -Application ready +Application ready \ No newline at end of file diff --git a/adapters/mso-vfc-adapter/pom.xml b/adapters/mso-vfc-adapter/pom.xml index fcf0682ca5..b5e3780cd9 100644 --- a/adapters/mso-vfc-adapter/pom.xml +++ b/adapters/mso-vfc-adapter/pom.xml @@ -1,121 +1,118 @@ - - 4.0.0 - - org.openecomp.so - adapters - 1.1.0-SNAPSHOT - - org.openecomp.so.adapters - mso-vfc-adapter - war - mso-vfc-adapter - Web service endpoint for vfc operations - - - - - - ${project.artifactId}-${project.version} - - - maven-war-plugin - 2.4 - - WebContent - false - true - - - - - - - - javax.ws.rs - javax.ws.rs-api - 2.0 - - - org.openecomp.so.adapters - mso-adapter-utils - ${project.version} - - - org.openecomp.so.adapters - mso-adapters-rest-interface - ${project.version} - - - org.mockito - mockito-all - 1.10.19 - test - - - javax.servlet - javax.servlet-api - 3.1.0 - test - - - org.jboss.spec.javax.ejb - jboss-ejb-api_3.2_spec - 1.0.0.Final - provided - - - org.jboss.ejb3 - jboss-ejb3-ext-api - 2.2.0.Final - provided - - - org.openecomp.so - status-control - ${project.version} - - - org.openecomp.so - mso-requests-db - ${project.version} - - - commons-io - commons-io - - - org.jmockit - jmockit - 1.19 - test - - - junit - junit - 4.12 - test - - - org.jmockit - jmockit-coverage - 1.19 - test - - - org.glassfish.jersey.core - jersey-common - 2.22.2 - test - - - javax.servlet - javax.servlet-api - 3.1.0 - - + + 4.0.0 + + org.openecomp.so + adapters + 1.1.0-SNAPSHOT + + org.openecomp.so.adapters + mso-vfc-adapter + war + mso-vfc-adapter + Web service endpoint for vfc operations + + + + + + ${project.artifactId}-${project.version} + + + maven-war-plugin + 2.4 + + WebContent + false + true + + + + + + + + javax.ws.rs + javax.ws.rs-api + 2.0 + + + org.openecomp.so.adapters + mso-adapter-utils + ${project.version} + + + org.openecomp.so.adapters + mso-adapters-rest-interface + ${project.version} + + + org.mockito + mockito-all + 1.10.19 + test + + + javax.servlet + javax.servlet-api + 3.1.0 + test + + + org.jboss.spec.javax.ejb + jboss-ejb-api_3.2_spec + 1.0.0.Final + provided + + + org.jboss.ejb3 + jboss-ejb3-ext-api + 2.2.0.Final + provided + + + org.openecomp.so + status-control + ${project.version} + + + org.openecomp.so + mso-requests-db + ${project.version} + + + commons-io + commons-io + + + org.jmockit + jmockit + 1.19 + test + + + junit + junit + 4.12 + test + + + org.jmockit + jmockit-coverage + 1.19 + test + + + org.glassfish.jersey.core + jersey-common + 2.22.2 + test + + + javax.servlet + javax.servlet-api + 3.1.0 + + diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/AaiUtil.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/AaiUtil.java index 29f27d05e9..719385f97f 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/AaiUtil.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/AaiUtil.java @@ -22,25 +22,24 @@ package org.openecomp.mso.adapters.vfc; import org.openecomp.mso.adapters.vfc.model.RestfulResponse; /** - * Implement class of operating aai database table - *
+ * Implement class of operating aai database table
*

*

* * @author - * @version ONAP Amsterdam Release 2017-08-28 + * @version ONAP Amsterdam Release 2017-08-28 */ public class AaiUtil { - public static RestfulResponse addRelation(String globalSubsriberId, String serviceType, String serviceInstanceId, String resourceInstanceId) - { - //sent rest to aai to add relation for service and ns. - return null; - } - - public static RestfulResponse removeRelation(String globalSubsriberId, String serviceType, String serviceInstanceId ,String resourceInstanceId) - { - //sent rest to aai to remove relation between service an ns. - return null; - } + public static RestfulResponse addRelation(String globalSubsriberId, String serviceType, + String serviceInstanceId, String resourceInstanceId) { + // sent rest to aai to add relation for service and ns. + return null; + } + + public static RestfulResponse removeRelation(String globalSubsriberId, String serviceType, + String serviceInstanceId, String resourceInstanceId) { + // sent rest to aai to remove relation between service an ns. + return null; + } } diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcAdapterRest.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcAdapterRest.java index 52286fd3ac..6c2ab4d081 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcAdapterRest.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcAdapterRest.java @@ -41,8 +41,7 @@ import org.openecomp.mso.adapters.vfc.util.ValidateUtil; import org.openecomp.mso.logger.MsoLogger; /** - * The rest class for VF-c Adapter - *
+ * The rest class for VF-c Adapter
*

*

* @@ -52,162 +51,161 @@ import org.openecomp.mso.logger.MsoLogger; @Path("/vfcadapter/v1") public class VfcAdapterRest { - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA); + private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA); - private final VfcManager driverMgr = new VfcManager(); + private final VfcManager driverMgr = new VfcManager(); - public VfcAdapterRest() { + public VfcAdapterRest() { - } + } - /** - * Create a NS - *
- * - * @param servletReq the http request - * @return - * @since ONAP Amsterdam Release - */ - @POST - @Path("/ns") - @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - public Response createNfvoNs(HttpServletRequest servletReq) { - // Step 1: get parameters from request for current node - try { - String body = RestfulUtil.getRequestBody(servletReq); - ValidateUtil.assertObjectNotNull(body); - LOGGER.debug("body from request is {}" + body); - NSResourceInputParameter nsInput = JsonUtil.unMarshal(body, NSResourceInputParameter.class); - RestfulResponse rsp = driverMgr.createNs(nsInput); - return buildResponse(rsp); - } catch(ApplicationException e) { - LOGGER.debug("ApplicationException: ", e); - return e.buildErrorResponse(); - } + /** + * Create a NS
+ * + * @param servletReq the http request + * @return + * @since ONAP Amsterdam Release + */ + @POST + @Path("/ns") + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + public Response createNfvoNs(HttpServletRequest servletReq) { + // Step 1: get parameters from request for current node + try { + String body = RestfulUtil.getRequestBody(servletReq); + ValidateUtil.assertObjectNotNull(body); + LOGGER.debug("body from request is {}" + body); + NSResourceInputParameter nsInput = JsonUtil.unMarshal(body, NSResourceInputParameter.class); + RestfulResponse rsp = driverMgr.createNs(nsInput); + return buildResponse(rsp); + } catch (ApplicationException e) { + LOGGER.debug("ApplicationException: ", e); + return e.buildErrorResponse(); } + } - /** - * Delete NS instance
- * - * @param servletReq http request - * @return response - * @since ONAP Amsterdam Release - */ - @DELETE - @Path("/ns/{nsInstanceId}") - @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - public Response deleteNfvoNs(HttpServletRequest servletReq, @PathParam("nsInstanceId") String nsInstanceId) { - try { - // Step 1: get parameters from request for current node - String body = RestfulUtil.getRequestBody(servletReq); - ValidateUtil.assertObjectNotNull(body); - LOGGER.debug("body from request is {}" + body); - NsOperationKey nsOperationKey = JsonUtil.unMarshal(body, NsOperationKey.class); - RestfulResponse rsp = driverMgr.deleteNs(nsOperationKey, nsInstanceId); - return buildResponse(rsp); - } catch(ApplicationException e) { - LOGGER.debug("ApplicationException: ", e); - return e.buildErrorResponse(); - } + /** + * Delete NS instance
+ * + * @param servletReq http request + * @return response + * @since ONAP Amsterdam Release + */ + @DELETE + @Path("/ns/{nsInstanceId}") + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + public Response deleteNfvoNs(HttpServletRequest servletReq, + @PathParam("nsInstanceId") String nsInstanceId) { + try { + // Step 1: get parameters from request for current node + String body = RestfulUtil.getRequestBody(servletReq); + ValidateUtil.assertObjectNotNull(body); + LOGGER.debug("body from request is {}" + body); + NsOperationKey nsOperationKey = JsonUtil.unMarshal(body, NsOperationKey.class); + RestfulResponse rsp = driverMgr.deleteNs(nsOperationKey, nsInstanceId); + return buildResponse(rsp); + } catch (ApplicationException e) { + LOGGER.debug("ApplicationException: ", e); + return e.buildErrorResponse(); } + } - /** - * Query Operation job status - *
- * - * @param servletReq The Http Request - * @param jobId The job id - * @return - * @since ONAP Amsterdam Release - */ - @POST - @Path("/jobs/{jobId}") - @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - public Response queryNfvoJobStatus(HttpServletRequest servletReq, @PathParam("jobId") String jobId) { - try { - ValidateUtil.assertObjectNotNull(jobId); - String body = RestfulUtil.getRequestBody(servletReq); - ValidateUtil.assertObjectNotNull(body); - LOGGER.debug("body from request is {}" + body); - NsOperationKey nsOperationKey = JsonUtil.unMarshal(body, NsOperationKey.class); + /** + * Query Operation job status
+ * + * @param servletReq The Http Request + * @param jobId The job id + * @return + * @since ONAP Amsterdam Release + */ + @POST + @Path("/jobs/{jobId}") + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + public Response queryNfvoJobStatus(HttpServletRequest servletReq, + @PathParam("jobId") String jobId) { + try { + ValidateUtil.assertObjectNotNull(jobId); + String body = RestfulUtil.getRequestBody(servletReq); + ValidateUtil.assertObjectNotNull(body); + LOGGER.debug("body from request is {}" + body); + NsOperationKey nsOperationKey = JsonUtil.unMarshal(body, NsOperationKey.class); - RestfulResponse rsp = driverMgr.getNsProgress(nsOperationKey, jobId); - return buildResponse(rsp); - } catch(ApplicationException e) { - LOGGER.debug("ApplicationException: ", e); - return e.buildErrorResponse(); - } + RestfulResponse rsp = driverMgr.getNsProgress(nsOperationKey, jobId); + return buildResponse(rsp); + } catch (ApplicationException e) { + LOGGER.debug("ApplicationException: ", e); + return e.buildErrorResponse(); } + } - /** - * Instantiate NS instance - *
- * - * @param servletReq The http request - * @param nsInstanceId The NS instance id - * @return - * @since ONAP Amsterdam Release - */ - @POST - @Path("/ns/{nsInstanceId}/instantiate") - @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - public Response instantiateNfvoNs(HttpServletRequest servletReq, @PathParam("nsInstanceId") String nsInstanceId) { - String body = RestfulUtil.getRequestBody(servletReq); - try { - ValidateUtil.assertObjectNotNull(body); - LOGGER.debug("body from request is {}" + body); - NSResourceInputParameter nsInput = JsonUtil.unMarshal(body, NSResourceInputParameter.class); - RestfulResponse rsp = driverMgr.instantiateNs(nsInstanceId, nsInput); - return buildResponse(rsp); - } catch(ApplicationException e) { - LOGGER.debug("ApplicationException: ", e); - return e.buildErrorResponse(); - } + /** + * Instantiate NS instance
+ * + * @param servletReq The http request + * @param nsInstanceId The NS instance id + * @return + * @since ONAP Amsterdam Release + */ + @POST + @Path("/ns/{nsInstanceId}/instantiate") + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + public Response instantiateNfvoNs(HttpServletRequest servletReq, + @PathParam("nsInstanceId") String nsInstanceId) { + String body = RestfulUtil.getRequestBody(servletReq); + try { + ValidateUtil.assertObjectNotNull(body); + LOGGER.debug("body from request is {}" + body); + NSResourceInputParameter nsInput = JsonUtil.unMarshal(body, NSResourceInputParameter.class); + RestfulResponse rsp = driverMgr.instantiateNs(nsInstanceId, nsInput); + return buildResponse(rsp); + } catch (ApplicationException e) { + LOGGER.debug("ApplicationException: ", e); + return e.buildErrorResponse(); } + } - /** - * Terminate NS instance - *
- * - * @param servletReq The http request - * @param nsInstanceId The NS instance id - * @return - * @since ONAP Amsterdam Release - */ - @POST - @Path("/ns/{nsInstanceId}/terminate") - @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) - public Response terminateNfvoNs(HttpServletRequest servletReq, @PathParam("nsInstanceId") String nsInstanceId) { - try { - ValidateUtil.assertObjectNotNull(nsInstanceId); - String body = RestfulUtil.getRequestBody(servletReq); - ValidateUtil.assertObjectNotNull(body); - LOGGER.debug("body from request is {}" + body); - NsOperationKey nsOperationKey = JsonUtil.unMarshal(body, NsOperationKey.class); - RestfulResponse rsp = driverMgr.terminateNs(nsOperationKey, nsInstanceId); - return buildResponse(rsp); - } catch(ApplicationException e) { - LOGGER.debug("ApplicationException: ", e); - return e.buildErrorResponse(); - } + /** + * Terminate NS instance
+ * + * @param servletReq The http request + * @param nsInstanceId The NS instance id + * @return + * @since ONAP Amsterdam Release + */ + @POST + @Path("/ns/{nsInstanceId}/terminate") + @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + public Response terminateNfvoNs(HttpServletRequest servletReq, + @PathParam("nsInstanceId") String nsInstanceId) { + try { + ValidateUtil.assertObjectNotNull(nsInstanceId); + String body = RestfulUtil.getRequestBody(servletReq); + ValidateUtil.assertObjectNotNull(body); + LOGGER.debug("body from request is {}" + body); + NsOperationKey nsOperationKey = JsonUtil.unMarshal(body, NsOperationKey.class); + RestfulResponse rsp = driverMgr.terminateNs(nsOperationKey, nsInstanceId); + return buildResponse(rsp); + } catch (ApplicationException e) { + LOGGER.debug("ApplicationException: ", e); + return e.buildErrorResponse(); } + } - /** - * build response from restful response - *
- * - * @param rsp general response object - * @return - * @since ONAP Amsterdam Release - */ - private Response buildResponse(RestfulResponse rsp) { - ResponseBuilder rspBuilder = Response.status(rsp.getStatus()); - rspBuilder.entity(rsp.getResponseContent()); - return rspBuilder.build(); - } + /** + * build response from restful response
+ * + * @param rsp general response object + * @return + * @since ONAP Amsterdam Release + */ + private Response buildResponse(RestfulResponse rsp) { + ResponseBuilder rspBuilder = Response.status(rsp.getStatus()); + rspBuilder.entity(rsp.getResponseContent()); + return rspBuilder.build(); + } } diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java index 8c503aa43e..78ec50f9f0 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/VfcManager.java @@ -46,8 +46,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * VF-C Manager - *
+ * VF-C Manager
*

*

* @@ -56,355 +55,364 @@ import org.slf4j.LoggerFactory; */ public class VfcManager { - private static final Logger LOGGER = LoggerFactory.getLogger(VfcManager.class); - - /** - * nfvo url map - */ - private static Map nfvoUrlMap; - - static { - nfvoUrlMap = new HashMap<>(); - nfvoUrlMap.put(Step.CREATE, CommonConstant.NFVO_CREATE_URL); - nfvoUrlMap.put(Step.INSTANTIATE, CommonConstant.NFVO_INSTANTIATE_URL); - nfvoUrlMap.put(Step.TERMINATE, CommonConstant.NFVO_TERMINATE_URL); - nfvoUrlMap.put(Step.DELETE, CommonConstant.NFVO_DELETE_URL); - nfvoUrlMap.put(Step.QUERY, CommonConstant.NFVO_QUERY_URL); + private static final Logger LOGGER = LoggerFactory.getLogger(VfcManager.class); + + /** + * nfvo url map + */ + private static Map nfvoUrlMap; + + static { + nfvoUrlMap = new HashMap<>(); + nfvoUrlMap.put(Step.CREATE, CommonConstant.NFVO_CREATE_URL); + nfvoUrlMap.put(Step.INSTANTIATE, CommonConstant.NFVO_INSTANTIATE_URL); + nfvoUrlMap.put(Step.TERMINATE, CommonConstant.NFVO_TERMINATE_URL); + nfvoUrlMap.put(Step.DELETE, CommonConstant.NFVO_DELETE_URL); + nfvoUrlMap.put(Step.QUERY, CommonConstant.NFVO_QUERY_URL); + } + + public VfcManager() { + + } + + /** + * create network service
+ * + * @param segInput input parameters for current node from http request + * @return + * @since ONAP Amsterdam Release + */ + public RestfulResponse createNs(NSResourceInputParameter segInput) throws ApplicationException { + + // Step1: get service template by node type + String nsdId = segInput.getNsOperationKey().getNodeTemplateUUID(); + // nsdId for NFVO is "id" in the response, while for SDNO is "servcice template id" + LOGGER.info("serviceTemplateId is {}, id is {}", nsdId); + + LOGGER.info("create ns -> begin"); + // Step2: Prepare url and method type + String url = getUrl(null, CommonConstant.Step.CREATE); + String methodType = CommonConstant.MethodType.POST; + + // Step3: Prepare restful parameters and options + NsCreateReq oRequest = new NsCreateReq(); + oRequest.setNsdId(nsdId); + oRequest.setNsName(segInput.getNsServiceName()); + oRequest.setDescription(segInput.getNsServiceDescription()); + String createReq = JsonUtil.marshal(oRequest); + + // Step4: Call NFVO or SDNO lcm to create ns + RestfulResponse createRsp = RestfulUtil.send(url, methodType, createReq); + ValidateUtil.assertObjectNotNull(createRsp); + LOGGER.info("create ns response status is : {}", createRsp.getStatus()); + LOGGER.info("create ns response content is : {}", createRsp.getResponseContent()); + @SuppressWarnings("unchecked") + Map rsp = JsonUtil.unMarshal(createRsp.getResponseContent(), Map.class); + String nsInstanceId = rsp.get(CommonConstant.NS_INSTANCE_ID); + if (ValidateUtil.isStrEmpty(nsInstanceId)) { + LOGGER.error("Invalid instanceId from create operation"); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.INVALID_RESPONSEE_FROM_CREATE_OPERATION); } - - public VfcManager() { - + LOGGER.info("create ns -> end"); + LOGGER.info("save segment and operaton info -> begin"); + // Step 5: add relation between service and NS + AaiUtil.addRelation(segInput.getNsOperationKey().getGlobalSubscriberId(), + segInput.getNsOperationKey().getServiceType(), segInput.getNsOperationKey().getServiceId(), + nsInstanceId); + + // Step 6: save resource operation information + ResourceOperationStatus nsOperInfo = (RequestsDatabase.getInstance()) + .getResourceOperationStatus(segInput.getNsOperationKey().getServiceId(), + segInput.getNsOperationKey().getOperationId(), + segInput.getNsOperationKey().getNodeTemplateUUID()); + nsOperInfo.setStatus(RequestsDbConstant.Status.PROCESSING); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + + if (!HttpCode.isSucess(createRsp.getStatus())) { + LOGGER.error("update segment operation status : fail to create ns"); + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + nsOperInfo.setErrorCode(String.valueOf(createRsp.getStatus())); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.FAIL_TO_CREATE_NS); } - - /** - * create network service - *
- * - * @param segInput input parameters for current node from http request - * @return - * @since ONAP Amsterdam Release - */ - public RestfulResponse createNs(NSResourceInputParameter segInput) throws ApplicationException { - - // Step1: get service template by node type - String nsdId = segInput.getNsOperationKey().getNodeTemplateUUID(); - // nsdId for NFVO is "id" in the response, while for SDNO is "servcice template id" - LOGGER.info("serviceTemplateId is {}, id is {}", nsdId); - - LOGGER.info("create ns -> begin"); - // Step2: Prepare url and method type - String url = getUrl(null, CommonConstant.Step.CREATE); - String methodType = CommonConstant.MethodType.POST; - - // Step3: Prepare restful parameters and options - NsCreateReq oRequest = new NsCreateReq(); - oRequest.setNsdId(nsdId); - oRequest.setNsName(segInput.getNsServiceName()); - oRequest.setDescription(segInput.getNsServiceDescription()); - String createReq = JsonUtil.marshal(oRequest); - - // Step4: Call NFVO or SDNO lcm to create ns - RestfulResponse createRsp = RestfulUtil.send(url, methodType, createReq); - ValidateUtil.assertObjectNotNull(createRsp); - LOGGER.info("create ns response status is : {}", createRsp.getStatus()); - LOGGER.info("create ns response content is : {}", createRsp.getResponseContent()); - @SuppressWarnings("unchecked") - Map rsp = JsonUtil.unMarshal(createRsp.getResponseContent(), Map.class); - String nsInstanceId = rsp.get(CommonConstant.NS_INSTANCE_ID); - if(ValidateUtil.isStrEmpty(nsInstanceId)) { - LOGGER.error("Invalid instanceId from create operation"); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, - DriverExceptionID.INVALID_RESPONSEE_FROM_CREATE_OPERATION); - } - LOGGER.info("create ns -> end"); - LOGGER.info("save segment and operaton info -> begin"); - // Step 5: add relation between service and NS - AaiUtil.addRelation(segInput.getNsOperationKey().getGlobalSubscriberId(), - segInput.getNsOperationKey().getServiceType(), segInput.getNsOperationKey().getServiceId(), - nsInstanceId); - - // Step 6: save resource operation information - ResourceOperationStatus nsOperInfo = (RequestsDatabase.getInstance()).getResourceOperationStatus( - segInput.getNsOperationKey().getServiceId(), segInput.getNsOperationKey().getOperationId(), - segInput.getNsOperationKey().getNodeTemplateUUID()); - nsOperInfo.setStatus(RequestsDbConstant.Status.PROCESSING); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - - if(!HttpCode.isSucess(createRsp.getStatus())) { - LOGGER.error("update segment operation status : fail to create ns"); - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - nsOperInfo.setErrorCode(String.valueOf(createRsp.getStatus())); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_CREATE_NS); - } - LOGGER.info("save segment and operation info -> end"); - return createRsp; + LOGGER.info("save segment and operation info -> end"); + return createRsp; + } + + /** + * delete network service
+ * + * @param nsOperationKey The operation key of the NS resource + * @param nsInstanceId The NS instance id + * @return + * @since ONAP Amsterdam Release + */ + public RestfulResponse deleteNs(NsOperationKey nsOperationKey, String nsInstanceId) + throws ApplicationException { + LOGGER.info("delete ns -> begin"); + // Step1: prepare url and methodType + String url = getUrl(nsInstanceId, CommonConstant.Step.DELETE); + String methodType = CommonConstant.MethodType.DELETE; + + // Step2: prepare restful parameters and options + RestfulResponse deleteRsp = RestfulUtil.send(url, methodType, ""); + ValidateUtil.assertObjectNotNull(deleteRsp); + LOGGER.info("delete ns response status is : {}", deleteRsp.getStatus()); + LOGGER.info("delete ns response content is : {}", deleteRsp.getResponseContent()); + LOGGER.info("delete ns -> end"); + ResourceOperationStatus nsOperInfo = + (RequestsDatabase.getInstance()).getResourceOperationStatus(nsOperationKey.getServiceId(), + nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID()); + if (!HttpCode.isSucess(deleteRsp.getStatus())) { + LOGGER.error("fail to delete ns"); + + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + nsOperInfo.setErrorCode(String.valueOf(deleteRsp.getStatus())); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.FAIL_TO_DELETE_NS); } - /** - * delete network service - *
- * - * @param nsOperationKey The operation key of the NS resource - * @param nsInstanceId The NS instance id - * @return - * @since ONAP Amsterdam Release - */ - public RestfulResponse deleteNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException { - LOGGER.info("delete ns -> begin"); - // Step1: prepare url and methodType - String url = getUrl(nsInstanceId, CommonConstant.Step.DELETE); - String methodType = CommonConstant.MethodType.DELETE; - - // Step2: prepare restful parameters and options - RestfulResponse deleteRsp = RestfulUtil.send(url, methodType, ""); - ValidateUtil.assertObjectNotNull(deleteRsp); - LOGGER.info("delete ns response status is : {}", deleteRsp.getStatus()); - LOGGER.info("delete ns response content is : {}", deleteRsp.getResponseContent()); - LOGGER.info("delete ns -> end"); - ResourceOperationStatus nsOperInfo = (RequestsDatabase.getInstance()).getResourceOperationStatus( - nsOperationKey.getServiceId(), nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID()); - if(!HttpCode.isSucess(deleteRsp.getStatus())) { - LOGGER.error("fail to delete ns"); - - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - nsOperInfo.setErrorCode(String.valueOf(deleteRsp.getStatus())); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_DELETE_NS); - } - - // Step3: remove relation info between service and ns - AaiUtil.removeRelation(nsOperationKey.getGlobalSubscriberId(), nsOperationKey.getServiceType(), - nsOperationKey.getServiceId(), nsInstanceId); - LOGGER.info("delete segment information -> end"); - - // Step4: update service segment operation status - nsOperInfo.setStatus(RequestsDbConstant.Status.FINISHED); - nsOperInfo.setErrorCode(String.valueOf(deleteRsp.getStatus())); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - LOGGER.info("update segment operaton status for delete -> end"); - - return deleteRsp; - + // Step3: remove relation info between service and ns + AaiUtil.removeRelation(nsOperationKey.getGlobalSubscriberId(), nsOperationKey.getServiceType(), + nsOperationKey.getServiceId(), nsInstanceId); + LOGGER.info("delete segment information -> end"); + + // Step4: update service segment operation status + nsOperInfo.setStatus(RequestsDbConstant.Status.FINISHED); + nsOperInfo.setErrorCode(String.valueOf(deleteRsp.getStatus())); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + LOGGER.info("update segment operaton status for delete -> end"); + + return deleteRsp; + + } + + /** + * instantiate network service
+ * + * @param nsInstanceId The NS instance id + * @param segInput input parameters for current node from http request + * @return + * @since ONAP Amsterdam Release + */ + public RestfulResponse instantiateNs(String nsInstanceId, NSResourceInputParameter segInput) + throws ApplicationException { + // Call the NFVO or SDNO service to instantiate service + LOGGER.info("instantiate ns -> begin"); + + // Step1: Prepare restful parameters and options + NsInstantiateReq oRequest = new NsInstantiateReq(); + oRequest.setNsInstanceId(nsInstanceId); + NsParameters nsParameters = segInput.getNsParameters(); + oRequest.setLocationConstraints(nsParameters.getLocationConstraints()); + oRequest.setAdditionalParamForNs(nsParameters.getAdditionalParamForNs()); + String instReq = JsonUtil.marshal(oRequest); + // Step2: prepare url and + String url = getUrl(nsInstanceId, CommonConstant.Step.INSTANTIATE); + String methodType = CommonConstant.MethodType.POST; + + RestfulResponse instRsp = RestfulUtil.send(url, methodType, instReq); + ValidateUtil.assertObjectNotNull(instRsp); + LOGGER.info("instantiate ns response status is : {}", instRsp.getStatus()); + LOGGER.info("instantiate ns response content is : {}", instRsp.getResponseContent()); + ValidateUtil.assertObjectNotNull(instRsp.getResponseContent()); + @SuppressWarnings("unchecked") + Map rsp = JsonUtil.unMarshal(instRsp.getResponseContent(), Map.class); + String jobId = rsp.get(CommonConstant.JOB_ID); + ResourceOperationStatus nsOperInfo = (RequestsDatabase.getInstance()) + .getResourceOperationStatus(segInput.getNsOperationKey().getServiceId(), + segInput.getNsOperationKey().getOperationId(), + segInput.getNsOperationKey().getNodeTemplateUUID()); + if (ValidateUtil.isStrEmpty(jobId)) { + LOGGER.error("Invalid jobId from instantiate operation"); + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + nsOperInfo.setErrorCode(String.valueOf(instRsp.getStatus())); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION); } - - /** - * instantiate network service - *
- * - * @param nsInstanceId The NS instance id - * @param segInput input parameters for current node from http request - * @return - * @since ONAP Amsterdam Release - */ - public RestfulResponse instantiateNs(String nsInstanceId, NSResourceInputParameter segInput) - throws ApplicationException { - // Call the NFVO or SDNO service to instantiate service - LOGGER.info("instantiate ns -> begin"); - - // Step1: Prepare restful parameters and options - NsInstantiateReq oRequest = new NsInstantiateReq(); - oRequest.setNsInstanceId(nsInstanceId); - NsParameters nsParameters = segInput.getNsParameters(); - oRequest.setLocationConstraints(nsParameters.getLocationConstraints()); - oRequest.setAdditionalParamForNs(nsParameters.getAdditionalParamForNs()); - String instReq = JsonUtil.marshal(oRequest); - // Step2: prepare url and - String url = getUrl(nsInstanceId, CommonConstant.Step.INSTANTIATE); - String methodType = CommonConstant.MethodType.POST; - - RestfulResponse instRsp = RestfulUtil.send(url, methodType, instReq); - ValidateUtil.assertObjectNotNull(instRsp); - LOGGER.info("instantiate ns response status is : {}", instRsp.getStatus()); - LOGGER.info("instantiate ns response content is : {}", instRsp.getResponseContent()); - ValidateUtil.assertObjectNotNull(instRsp.getResponseContent()); - @SuppressWarnings("unchecked") - Map rsp = JsonUtil.unMarshal(instRsp.getResponseContent(), Map.class); - String jobId = rsp.get(CommonConstant.JOB_ID); - ResourceOperationStatus nsOperInfo = (RequestsDatabase.getInstance()).getResourceOperationStatus( - segInput.getNsOperationKey().getServiceId(), segInput.getNsOperationKey().getOperationId(), - segInput.getNsOperationKey().getNodeTemplateUUID()); - if(ValidateUtil.isStrEmpty(jobId)) { - LOGGER.error("Invalid jobId from instantiate operation"); - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - nsOperInfo.setErrorCode(String.valueOf(instRsp.getStatus())); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, - DriverExceptionID.INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION); - } - LOGGER.info("instantiate ns -> end"); - - if(!HttpCode.isSucess(instRsp.getStatus())) { - LOGGER.error("update segment operation status : fail to instantiate ns"); - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - nsOperInfo.setErrorCode(String.valueOf(instRsp.getStatus())); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_INSTANTIATE_NS); - } - - // Step 3: update segment operation job id - LOGGER.info("update resource operation status job id -> begin"); - nsOperInfo.setJobId(jobId); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - LOGGER.info("update segment operation job id -> end"); - - return instRsp; + LOGGER.info("instantiate ns -> end"); + + if (!HttpCode.isSucess(instRsp.getStatus())) { + LOGGER.error("update segment operation status : fail to instantiate ns"); + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + nsOperInfo.setErrorCode(String.valueOf(instRsp.getStatus())); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.FAIL_TO_INSTANTIATE_NS); } - /** - * terminate network service - *
- * - * @param nsOperationKey The operation key for NS resource - * @param nsInstanceId The NS instance id - * @return - * @since ONAP Amsterdam Release - */ - public RestfulResponse terminateNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException { - // Step1: save segment operation info for delete process - LOGGER.info("save segment operation for delete process"); - ResourceOperationStatus nsOperInfo = (RequestsDatabase.getInstance()).getResourceOperationStatus( - nsOperationKey.getServiceId(), nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID()); - nsOperInfo.setStatus(RequestsDbConstant.Status.PROCESSING); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - - LOGGER.info("terminate ns -> begin"); - // Step2: prepare url and method type - String url = getUrl(nsInstanceId, CommonConstant.Step.TERMINATE); - String methodType = CommonConstant.MethodType.POST; - - // Step3: prepare restful parameters and options - Map reqBody = new HashMap<>(); - reqBody.put("nsInstanceId", nsInstanceId); - reqBody.put("terminationType", "graceful"); - reqBody.put("gracefulTerminationTimeout", "60"); - - // Step4: Call the NFVO or SDNO service to terminate service - RestfulResponse terminateRsp = RestfulUtil.send(url, methodType, JsonUtil.marshal(reqBody)); - ValidateUtil.assertObjectNotNull(terminateRsp); - LOGGER.info("terminate ns response status is : {}", terminateRsp.getStatus()); - LOGGER.info("terminate ns response content is : {}", terminateRsp.getResponseContent()); - @SuppressWarnings("unchecked") - Map rsp = JsonUtil.unMarshal(terminateRsp.getResponseContent(), Map.class); - String jobId = rsp.get(CommonConstant.JOB_ID); - if(ValidateUtil.isStrEmpty(jobId)) { - LOGGER.error("Invalid jobId from terminate operation"); - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - nsOperInfo.setErrorCode(String.valueOf(terminateRsp.getStatus())); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, - DriverExceptionID.INVALID_RESPONSE_FROM_TERMINATE_OPERATION); - } - LOGGER.info("terminate ns -> end"); - - // Step 3: update segment operation - if(!HttpCode.isSucess(terminateRsp.getStatus())) { - LOGGER.error("fail to instantiate ns"); - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - nsOperInfo.setErrorCode(String.valueOf(terminateRsp.getStatus())); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS); - } - LOGGER.info("update segment job id -> begin"); - nsOperInfo.setJobId(jobId); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - LOGGER.info("update segment job id -> end"); - - return terminateRsp; + // Step 3: update segment operation job id + LOGGER.info("update resource operation status job id -> begin"); + nsOperInfo.setJobId(jobId); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + LOGGER.info("update segment operation job id -> end"); + + return instRsp; + } + + /** + * terminate network service
+ * + * @param nsOperationKey The operation key for NS resource + * @param nsInstanceId The NS instance id + * @return + * @since ONAP Amsterdam Release + */ + public RestfulResponse terminateNs(NsOperationKey nsOperationKey, String nsInstanceId) + throws ApplicationException { + // Step1: save segment operation info for delete process + LOGGER.info("save segment operation for delete process"); + ResourceOperationStatus nsOperInfo = + (RequestsDatabase.getInstance()).getResourceOperationStatus(nsOperationKey.getServiceId(), + nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID()); + nsOperInfo.setStatus(RequestsDbConstant.Status.PROCESSING); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + + LOGGER.info("terminate ns -> begin"); + // Step2: prepare url and method type + String url = getUrl(nsInstanceId, CommonConstant.Step.TERMINATE); + String methodType = CommonConstant.MethodType.POST; + + // Step3: prepare restful parameters and options + Map reqBody = new HashMap<>(); + reqBody.put("nsInstanceId", nsInstanceId); + reqBody.put("terminationType", "graceful"); + reqBody.put("gracefulTerminationTimeout", "60"); + + // Step4: Call the NFVO or SDNO service to terminate service + RestfulResponse terminateRsp = RestfulUtil.send(url, methodType, JsonUtil.marshal(reqBody)); + ValidateUtil.assertObjectNotNull(terminateRsp); + LOGGER.info("terminate ns response status is : {}", terminateRsp.getStatus()); + LOGGER.info("terminate ns response content is : {}", terminateRsp.getResponseContent()); + @SuppressWarnings("unchecked") + Map rsp = JsonUtil.unMarshal(terminateRsp.getResponseContent(), Map.class); + String jobId = rsp.get(CommonConstant.JOB_ID); + if (ValidateUtil.isStrEmpty(jobId)) { + LOGGER.error("Invalid jobId from terminate operation"); + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + nsOperInfo.setErrorCode(String.valueOf(terminateRsp.getStatus())); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.INVALID_RESPONSE_FROM_TERMINATE_OPERATION); } - - /** - * get ns progress by job Id - *
- * - * @param nsOperationKey The OperationKey for NS resource - * @param jobId the job id - * @return - * @since ONAP Amsterdam Release - */ - public RestfulResponse getNsProgress(NsOperationKey nsOperationKey, String jobId) throws ApplicationException { - - ValidateUtil.assertObjectNotNull(jobId); - // Step 1: query the current resource operation status - ResourceOperationStatus nsOperInfo = (RequestsDatabase.getInstance()).getResourceOperationStatus( - nsOperationKey.getServiceId(), nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID()); - - // Step 2: start query - LOGGER.info("query ns status -> begin"); - String url = getUrl(jobId, CommonConstant.Step.QUERY); - String methodType = CommonConstant.MethodType.GET; - // prepare restful parameters and options - RestfulResponse rsp = RestfulUtil.send(url, methodType, ""); - ValidateUtil.assertObjectNotNull(rsp); - LOGGER.info("query ns progress response status is : {}", rsp.getStatus()); - LOGGER.info("query ns progress response content is : {}", rsp.getResponseContent()); - // Step 3:check the response staus - if(!HttpCode.isSucess(rsp.getStatus())) { - LOGGER.info("fail to query job status"); - nsOperInfo.setErrorCode(String.valueOf(rsp.getStatus())); - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS); - } - // Step 4: Process Network Service Instantiate Response - NsProgressStatus nsProgress = JsonUtil.unMarshal(rsp.getResponseContent(), NsProgressStatus.class); - ResponseDescriptor rspDesc = nsProgress.getResponseDescriptor(); - // Step 5: update segment operation progress - - nsOperInfo.setProgress(rspDesc.getProgress()); - nsOperInfo.setStatusDescription(rspDesc.getStatusDescription()); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - - // Step 6: update segment operation status - if(RequestsDbConstant.Progress.ONE_HUNDRED.equals(rspDesc.getProgress()) - && RequestsDbConstant.Status.FINISHED.equals(rspDesc.getStatus())) { - LOGGER.info("job result is succeeded, operType is {}", nsOperInfo.getOperType()); - nsOperInfo.setErrorCode(String.valueOf(rsp.getStatus())); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED); - - if(RequestsDbConstant.OperationType.CREATE.equals(nsOperInfo.getOperType())) { - nsOperInfo.setStatus(RequestsDbConstant.Status.FINISHED); - } - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - } else if(RequestsDbConstant.Status.ERROR.equals(rspDesc.getStatus())) { - LOGGER.error("job result is failed, operType is {}", nsOperInfo.getOperType()); - nsOperInfo.setErrorCode(String.valueOf(rsp.getStatus())); - nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED); - nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); - (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); - throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.JOB_STATUS_ERROR); - } else { - LOGGER.error("unexcepted response status"); - } - LOGGER.info("query ns status -> end"); - - return rsp; + LOGGER.info("terminate ns -> end"); + + // Step 3: update segment operation + if (!HttpCode.isSucess(terminateRsp.getStatus())) { + LOGGER.error("fail to instantiate ns"); + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + nsOperInfo.setErrorCode(String.valueOf(terminateRsp.getStatus())); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.FAIL_TO_TERMINATE_NS); } - - /** - * get url for the operation - *
- * - * @param variable variable should be put in the url - * @param step step of the operation (terminate,query,delete) - * @return - * @since ONAP Amsterdam Release - */ - private String getUrl(String variable, String step) { - - String url; - String originalUrl; - originalUrl = (String)nfvoUrlMap.get(step); - url = String.format(originalUrl, variable); - return url; - + LOGGER.info("update segment job id -> begin"); + nsOperInfo.setJobId(jobId); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + LOGGER.info("update segment job id -> end"); + + return terminateRsp; + } + + /** + * get ns progress by job Id
+ * + * @param nsOperationKey The OperationKey for NS resource + * @param jobId the job id + * @return + * @since ONAP Amsterdam Release + */ + public RestfulResponse getNsProgress(NsOperationKey nsOperationKey, String jobId) + throws ApplicationException { + + ValidateUtil.assertObjectNotNull(jobId); + // Step 1: query the current resource operation status + ResourceOperationStatus nsOperInfo = + (RequestsDatabase.getInstance()).getResourceOperationStatus(nsOperationKey.getServiceId(), + nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID()); + + // Step 2: start query + LOGGER.info("query ns status -> begin"); + String url = getUrl(jobId, CommonConstant.Step.QUERY); + String methodType = CommonConstant.MethodType.GET; + // prepare restful parameters and options + RestfulResponse rsp = RestfulUtil.send(url, methodType, ""); + ValidateUtil.assertObjectNotNull(rsp); + LOGGER.info("query ns progress response status is : {}", rsp.getStatus()); + LOGGER.info("query ns progress response content is : {}", rsp.getResponseContent()); + // Step 3:check the response staus + if (!HttpCode.isSucess(rsp.getStatus())) { + LOGGER.info("fail to query job status"); + nsOperInfo.setErrorCode(String.valueOf(rsp.getStatus())); + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS); + } + // Step 4: Process Network Service Instantiate Response + NsProgressStatus nsProgress = + JsonUtil.unMarshal(rsp.getResponseContent(), NsProgressStatus.class); + ResponseDescriptor rspDesc = nsProgress.getResponseDescriptor(); + // Step 5: update segment operation progress + + nsOperInfo.setProgress(rspDesc.getProgress()); + nsOperInfo.setStatusDescription(rspDesc.getStatusDescription()); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + + // Step 6: update segment operation status + if (RequestsDbConstant.Progress.ONE_HUNDRED.equals(rspDesc.getProgress()) + && RequestsDbConstant.Status.FINISHED.equals(rspDesc.getStatus())) { + LOGGER.info("job result is succeeded, operType is {}", nsOperInfo.getOperType()); + nsOperInfo.setErrorCode(String.valueOf(rsp.getStatus())); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED); + + if (RequestsDbConstant.OperationType.CREATE.equals(nsOperInfo.getOperType())) { + nsOperInfo.setStatus(RequestsDbConstant.Status.FINISHED); + } + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + } else if (RequestsDbConstant.Status.ERROR.equals(rspDesc.getStatus())) { + LOGGER.error("job result is failed, operType is {}", nsOperInfo.getOperType()); + nsOperInfo.setErrorCode(String.valueOf(rsp.getStatus())); + nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED); + nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR); + (RequestsDatabase.getInstance()).updateResOperStatus(nsOperInfo); + throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, + DriverExceptionID.JOB_STATUS_ERROR); + } else { + LOGGER.error("unexcepted response status"); } + LOGGER.info("query ns status -> end"); + + return rsp; + } + + /** + * get url for the operation
+ * + * @param variable variable should be put in the url + * @param step step of the operation (terminate,query,delete) + * @return + * @since ONAP Amsterdam Release + */ + private String getUrl(String variable, String step) { + + String url; + String originalUrl; + originalUrl = (String) nfvoUrlMap.get(step); + url = String.format(originalUrl, variable); + return url; + + } } diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/constant/DriverExceptionID.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/constant/DriverExceptionID.java index a160b82e8a..afaa9019ad 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/constant/DriverExceptionID.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/constant/DriverExceptionID.java @@ -31,27 +31,29 @@ package org.openecomp.mso.adapters.vfc.constant; */ public class DriverExceptionID { - public static final String INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION = - "Invalid response from instantiate operation"; + public static final String INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION = + "Invalid response from instantiate operation"; - public static final String INVALID_RESPONSEE_FROM_CREATE_OPERATION = "Invalid response from create operation"; + public static final String INVALID_RESPONSEE_FROM_CREATE_OPERATION = + "Invalid response from create operation"; - public static final String FAIL_TO_INSTANTIATE_NS = "Fail to instantiate ns"; + public static final String FAIL_TO_INSTANTIATE_NS = "Fail to instantiate ns"; - public static final String FAIL_TO_CREATE_NS = "Fail to create ns"; + public static final String FAIL_TO_CREATE_NS = "Fail to create ns"; - public static final String INVALID_RESPONSE_FROM_TERMINATE_OPERATION = "Invalid response from terminate operation"; + public static final String INVALID_RESPONSE_FROM_TERMINATE_OPERATION = + "Invalid response from terminate operation"; - public static final String FAIL_TO_DELETE_NS = "Fail to delete ns"; + public static final String FAIL_TO_DELETE_NS = "Fail to delete ns"; - public static final String FAIL_TO_TERMINATE_NS = "Fail to terminate ns"; + public static final String FAIL_TO_TERMINATE_NS = "Fail to terminate ns"; - public static final String JOB_STATUS_ERROR = "Job status error"; + public static final String JOB_STATUS_ERROR = "Job status error"; - public static final String FAIL_TO_QUERY_JOB_STATUS = "Fail to query job status"; + public static final String FAIL_TO_QUERY_JOB_STATUS = "Fail to query job status"; - private DriverExceptionID() { + private DriverExceptionID() { - } + } } diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/JsonUtil.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/JsonUtil.java index a9546d5c4c..69ad951aa5 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/JsonUtil.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/JsonUtil.java @@ -40,93 +40,93 @@ import org.openecomp.mso.logger.MsoLogger; */ public class JsonUtil { - /** - * Log service - */ - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA); + /** + * Log service + */ + private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA); - /** - * Mapper. - */ - private static final ObjectMapper MAPPER = new ObjectMapper(); + /** + * Mapper. + */ + private static final ObjectMapper MAPPER = new ObjectMapper(); - static { - MAPPER.setDeserializationConfig(MAPPER.getDeserializationConfig() - .without(org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES)); - MAPPER.setSerializationInclusion(Inclusion.NON_NULL); - } + static { + MAPPER.setDeserializationConfig(MAPPER.getDeserializationConfig().without( + org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES)); + MAPPER.setSerializationInclusion(Inclusion.NON_NULL); + } - /** - * Constructor
- *

- *

- * - * @since ONAP Amsterdam Release 2017-9-6 - */ - private JsonUtil() { + /** + * Constructor
+ *

+ *

+ * + * @since ONAP Amsterdam Release 2017-9-6 + */ + private JsonUtil() { - } + } - /** - * Parse the string in form of json.
- * - * @param jsonstr json string. - * @param type that convert json string to - * @return model object - * @since ONAP Amsterdam Release 2017-9-6 - */ - public static T unMarshal(String jsonstr, Class type) throws ApplicationException { - try { - return MAPPER.readValue(jsonstr, type); - } catch(IOException e) { - LOGGER.error(MessageEnum.RA_NS_EXC, "", "", MsoLogger.ErrorCode.BusinessProcesssError, - "fail to unMarshal json", e); - throw new ApplicationException(HttpCode.BAD_REQUEST, "fail to unMarshal json"); - } + /** + * Parse the string in form of json.
+ * + * @param jsonstr json string. + * @param type that convert json string to + * @return model object + * @since ONAP Amsterdam Release 2017-9-6 + */ + public static T unMarshal(String jsonstr, Class type) throws ApplicationException { + try { + return MAPPER.readValue(jsonstr, type); + } catch (IOException e) { + LOGGER.error(MessageEnum.RA_NS_EXC, "", "", MsoLogger.ErrorCode.BusinessProcesssError, + "fail to unMarshal json", e); + throw new ApplicationException(HttpCode.BAD_REQUEST, "fail to unMarshal json"); } + } - /** - * Parse the string in form of json.
- * - * @param jsonstr json string. - * @param type that convert json string to - * @return model object - * @since ONAP Amsterdam Release 2017-9-6 - */ - public static T unMarshal(String jsonstr, TypeReference type) throws ApplicationException { - try { - return MAPPER.readValue(jsonstr, type); - } catch(IOException e) { - LOGGER.error(MessageEnum.RA_NS_EXC, "", "", MsoLogger.ErrorCode.BusinessProcesssError, - "fail to unMarshal json", e); - throw new ApplicationException(HttpCode.BAD_REQUEST, "fail to unMarshal json"); - } + /** + * Parse the string in form of json.
+ * + * @param jsonstr json string. + * @param type that convert json string to + * @return model object + * @since ONAP Amsterdam Release 2017-9-6 + */ + public static T unMarshal(String jsonstr, TypeReference type) throws ApplicationException { + try { + return MAPPER.readValue(jsonstr, type); + } catch (IOException e) { + LOGGER.error(MessageEnum.RA_NS_EXC, "", "", MsoLogger.ErrorCode.BusinessProcesssError, + "fail to unMarshal json", e); + throw new ApplicationException(HttpCode.BAD_REQUEST, "fail to unMarshal json"); } + } - /** - * Convert object to json string.
- * - * @param srcObj data object - * @return json string - * @since ONAP Amsterdam Release 2017-9-6 - */ - public static String marshal(Object srcObj) throws ApplicationException { - try { - return MAPPER.writeValueAsString(srcObj); - } catch(IOException e) { - LOGGER.error(MessageEnum.RA_NS_EXC, "", "", MsoLogger.ErrorCode.BusinessProcesssError, - "fail to marshal json", e); - throw new ApplicationException(HttpCode.BAD_REQUEST, "srcObj marshal failed!"); - } + /** + * Convert object to json string.
+ * + * @param srcObj data object + * @return json string + * @since ONAP Amsterdam Release 2017-9-6 + */ + public static String marshal(Object srcObj) throws ApplicationException { + try { + return MAPPER.writeValueAsString(srcObj); + } catch (IOException e) { + LOGGER.error(MessageEnum.RA_NS_EXC, "", "", MsoLogger.ErrorCode.BusinessProcesssError, + "fail to marshal json", e); + throw new ApplicationException(HttpCode.BAD_REQUEST, "srcObj marshal failed!"); } + } - /** - * Get mapper.
- * - * @return mapper - * @since ONAP Amsterdam Release 2017-9-6 - */ - public static ObjectMapper getMapper() { - return MAPPER; - } + /** + * Get mapper.
+ * + * @return mapper + * @since ONAP Amsterdam Release 2017-9-6 + */ + public static ObjectMapper getMapper() { + return MAPPER; + } } diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/RestfulUtil.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/RestfulUtil.java index 8e5f0b4274..85065c0953 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/RestfulUtil.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/RestfulUtil.java @@ -58,179 +58,179 @@ import org.openecomp.mso.logger.MsoLogger; */ public class RestfulUtil { - /** - * Log service - */ - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA); - - private static final MsoAlarmLogger ALARMLOGGER = new MsoAlarmLogger(); - - private static final int DEFAULT_TIME_OUT = 60; - - private RestfulUtil() { - - } - - public static RestfulResponse send(String url, String methodType, String content) { - LOGGER.info(MessageEnum.RA_NS_EXC, url, "VFC", ""); - LOGGER.debug("VFC Request Body:\n" + content); - - HttpRequestBase method = null; - HttpResponse httpResponse = null; - + /** + * Log service + */ + private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA); + + private static final MsoAlarmLogger ALARMLOGGER = new MsoAlarmLogger(); + + private static final int DEFAULT_TIME_OUT = 60; + + private RestfulUtil() { + + } + + public static RestfulResponse send(String url, String methodType, String content) { + LOGGER.info(MessageEnum.RA_NS_EXC, url, "VFC", ""); + LOGGER.debug("VFC Request Body:\n" + content); + + HttpRequestBase method = null; + HttpResponse httpResponse = null; + + try { + int timeout = DEFAULT_TIME_OUT; + + RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout) + .setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).build(); + + HttpClient client = HttpClientBuilder.create().build(); + + if ("POST".equals(methodType)) { + HttpPost httpPost = new HttpPost(url); + httpPost.setConfig(requestConfig); + httpPost.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON)); + method = httpPost; + } else if ("PUT".equals(methodType)) { + HttpPut httpPut = new HttpPut(url); + httpPut.setConfig(requestConfig); + httpPut.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON)); + method = httpPut; + } else if ("GET".equals(methodType)) { + HttpGet httpGet = new HttpGet(url); + httpGet.setConfig(requestConfig); + method = httpGet; + } else if ("DELETE".equals(methodType)) { + HttpDelete httpDelete = new HttpDelete(url); + httpDelete.setConfig(requestConfig); + method = httpDelete; + } + + // now VFC have no auth + // String userCredentials = + // SDNCAdapterProperties.getEncryptedProperty(Constants.SDNC_AUTH_PROP, + // Constants.DEFAULT_SDNC_AUTH, Constants.ENCRYPTION_KEY); + // String authorization = "Basic " + + // DatatypeConverter.printBase64Binary(userCredentials.getBytes()); + // method.setHeader("Authorization", authorization); + + httpResponse = client.execute(method); + + String responseContent = null; + if (httpResponse.getEntity() != null) { + responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); + } + + int statusCode = httpResponse.getStatusLine().getStatusCode(); + String statusMessage = httpResponse.getStatusLine().getReasonPhrase(); + + LOGGER.debug("VFC Response: " + statusCode + " " + statusMessage + + (responseContent == null ? "" : System.lineSeparator() + responseContent)); + + if (httpResponse.getStatusLine().getStatusCode() >= 300) { + String errMsg = "VFC returned " + statusCode + " " + statusMessage; + logError(errMsg); + return createResponse(statusCode, errMsg); + } + + httpResponse = null; + + if (null != method) { + method.reset(); + } else { + LOGGER.debug("method is NULL:"); + } + + method = null; + + LOGGER.info(MessageEnum.RA_RESPONSE_FROM_SDNC, responseContent, "SDNC", ""); + return createResponse(statusCode, responseContent); + + } catch (SocketTimeoutException e) { + String errMsg = "Request to SDNC timed out"; + logError(errMsg, e); + return createResponse(HttpURLConnection.HTTP_CLIENT_TIMEOUT, errMsg); + + } catch (ConnectTimeoutException e) { + String errMsg = "Request to SDNC timed out"; + logError(errMsg, e); + return createResponse(HttpURLConnection.HTTP_CLIENT_TIMEOUT, errMsg); + + } catch (Exception e) { + String errMsg = "Error processing request to SDNC"; + logError(errMsg, e); + return createResponse(HttpURLConnection.HTTP_INTERNAL_ERROR, errMsg); + + } finally { + if (httpResponse != null) { try { - int timeout = DEFAULT_TIME_OUT; - - RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(timeout) - .setConnectionRequestTimeout(timeout).build(); - - HttpClient client = HttpClientBuilder.create().build(); - - if("POST".equals(methodType)) { - HttpPost httpPost = new HttpPost(url); - httpPost.setConfig(requestConfig); - httpPost.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON)); - method = httpPost; - } else if("PUT".equals(methodType)) { - HttpPut httpPut = new HttpPut(url); - httpPut.setConfig(requestConfig); - httpPut.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON)); - method = httpPut; - } else if("GET".equals(methodType)) { - HttpGet httpGet = new HttpGet(url); - httpGet.setConfig(requestConfig); - method = httpGet; - } else if("DELETE".equals(methodType)) { - HttpDelete httpDelete = new HttpDelete(url); - httpDelete.setConfig(requestConfig); - method = httpDelete; - } - - // now VFC have no auth - // String userCredentials = - // SDNCAdapterProperties.getEncryptedProperty(Constants.SDNC_AUTH_PROP, - // Constants.DEFAULT_SDNC_AUTH, Constants.ENCRYPTION_KEY); - // String authorization = "Basic " + - // DatatypeConverter.printBase64Binary(userCredentials.getBytes()); - // method.setHeader("Authorization", authorization); - - httpResponse = client.execute(method); - - String responseContent = null; - if(httpResponse.getEntity() != null) { - responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); - } - - int statusCode = httpResponse.getStatusLine().getStatusCode(); - String statusMessage = httpResponse.getStatusLine().getReasonPhrase(); - - LOGGER.debug("VFC Response: " + statusCode + " " + statusMessage - + (responseContent == null ? "" : System.lineSeparator() + responseContent)); - - if(httpResponse.getStatusLine().getStatusCode() >= 300) { - String errMsg = "VFC returned " + statusCode + " " + statusMessage; - logError(errMsg); - return createResponse(statusCode, errMsg); - } - - httpResponse = null; - - if(null != method) { - method.reset(); - } - else { - LOGGER.debug("method is NULL:"); - } - - method = null; - - LOGGER.info(MessageEnum.RA_RESPONSE_FROM_SDNC, responseContent, "SDNC", ""); - return createResponse(statusCode, responseContent); - - } catch(SocketTimeoutException e) { - String errMsg = "Request to SDNC timed out"; - logError(errMsg, e); - return createResponse(HttpURLConnection.HTTP_CLIENT_TIMEOUT, errMsg); - - } catch(ConnectTimeoutException e) { - String errMsg = "Request to SDNC timed out"; - logError(errMsg, e); - return createResponse(HttpURLConnection.HTTP_CLIENT_TIMEOUT, errMsg); - - } catch(Exception e) { - String errMsg = "Error processing request to SDNC"; - logError(errMsg, e); - return createResponse(HttpURLConnection.HTTP_INTERNAL_ERROR, errMsg); - - } finally { - if(httpResponse != null) { - try { - EntityUtils.consume(httpResponse.getEntity()); - } catch(Exception e) { - LOGGER.debug("Exception :",e); - } - } - - if(method != null) { - try { - method.reset(); - } catch(Exception e) { - LOGGER.debug("Exception :",e); - } - } + EntityUtils.consume(httpResponse.getEntity()); + } catch (Exception e) { + LOGGER.debug("Exception :", e); } - } + } - private static void logError(String errMsg, Throwable t) { - LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, errMsg, t); - ALARMLOGGER.sendAlarm("MsoInternalError", MsoAlarmLogger.CRITICAL, errMsg); - } - - private static void logError(String errMsg) { - LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, errMsg); - ALARMLOGGER.sendAlarm("MsoInternalError", MsoAlarmLogger.CRITICAL, errMsg); - } - - private static RestfulResponse createResponse(int statusCode, String content) { - RestfulResponse rsp = new RestfulResponse(); - rsp.setStatus(statusCode); - rsp.setResponseContent(content); - return rsp; + if (method != null) { + try { + method.reset(); + } catch (Exception e) { + LOGGER.debug("Exception :", e); + } + } } - - /** - * @param request - * @return - */ - public static String getRequestBody(HttpServletRequest request) { - String body = null; - StringBuilder stringBuilder = new StringBuilder(); - BufferedReader bufferedReader = null; + } + + private static void logError(String errMsg, Throwable t) { + LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, errMsg, + t); + ALARMLOGGER.sendAlarm("MsoInternalError", MsoAlarmLogger.CRITICAL, errMsg); + } + + private static void logError(String errMsg) { + LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, errMsg); + ALARMLOGGER.sendAlarm("MsoInternalError", MsoAlarmLogger.CRITICAL, errMsg); + } + + private static RestfulResponse createResponse(int statusCode, String content) { + RestfulResponse rsp = new RestfulResponse(); + rsp.setStatus(statusCode); + rsp.setResponseContent(content); + return rsp; + } + + /** + * @param request + * @return + */ + public static String getRequestBody(HttpServletRequest request) { + String body = null; + StringBuilder stringBuilder = new StringBuilder(); + BufferedReader bufferedReader = null; + try { + InputStream inputStream = request.getInputStream(); + if (inputStream != null) { + bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + char[] charBuffer = new char[128]; + int bytesRead = -1; + while ((bytesRead = bufferedReader.read(charBuffer)) > 0) + stringBuilder.append(charBuffer, 0, bytesRead); + } + } catch (IOException ex) { + LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, + "read inputStream buffer catch exception:", ex); + } finally { + if (bufferedReader != null) { try { - InputStream inputStream = request.getInputStream(); - if(inputStream != null) { - bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); - char[] charBuffer = new char[128]; - int bytesRead = -1; - while((bytesRead = bufferedReader.read(charBuffer)) > 0) - stringBuilder.append(charBuffer, 0, bytesRead); - } - } catch(IOException ex) { - LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, - "read inputStream buffer catch exception:", ex); - } finally { - if(bufferedReader != null) { - try { - bufferedReader.close(); - } catch(IOException ex) { - LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, - "close buffer catch exception:", ex); - } - } + bufferedReader.close(); + } catch (IOException ex) { + LOGGER.error(MessageEnum.RA_NS_EXC, "VFC", "", MsoLogger.ErrorCode.AvailabilityError, + "close buffer catch exception:", ex); } - - body = stringBuilder.toString(); - return body; + } } + body = stringBuilder.toString(); + return body; + } + } diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/ValidateUtil.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/ValidateUtil.java index a6fa2d29e2..26f8d6e53b 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/ValidateUtil.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/util/ValidateUtil.java @@ -27,60 +27,61 @@ import org.slf4j.LoggerFactory; public class ValidateUtil { - /** - * Log server. - */ - private static final Logger LOGGER = LoggerFactory.getLogger(ValidateUtil.class); + /** + * Log server. + */ + private static final Logger LOGGER = LoggerFactory.getLogger(ValidateUtil.class); - /** - * Constructor
- *

- *

- * - * @since ONAP Amsterdam Release 2017-9-6 - */ - private ValidateUtil() { + /** + * Constructor
+ *

+ *

+ * + * @since ONAP Amsterdam Release 2017-9-6 + */ + private ValidateUtil() { - } - - /** - * Assert String parameter.
- * - * @param paramValue parameter data - * @param name of parameter - * @since ONAP Amsterdam Release 2017-9-6 - */ - public static void assertStringNotNull(String paramValue, String paramName) throws ApplicationException { - if(null != paramValue && !paramValue.isEmpty()) { - return; - } + } - LOGGER.error(paramName + ": Parameter is null or empty."); - throw new ApplicationException(HttpCode.BAD_REQUEST, paramName + ": Invalid parameter."); + /** + * Assert String parameter.
+ * + * @param paramValue parameter data + * @param name of parameter + * @since ONAP Amsterdam Release 2017-9-6 + */ + public static void assertStringNotNull(String paramValue, String paramName) + throws ApplicationException { + if (null != paramValue && !paramValue.isEmpty()) { + return; } - /** - * Assert object is null.
- * - * @param object data object - * @since ONAP Amsterdam Release 2017-9-6 - */ - public static void assertObjectNotNull(Object object) throws ApplicationException { - if(null == object) { - LOGGER.error("Object is null."); - throw new ApplicationException(HttpCode.BAD_REQUEST, "Object is null."); - } + LOGGER.error(paramName + ": Parameter is null or empty."); + throw new ApplicationException(HttpCode.BAD_REQUEST, paramName + ": Invalid parameter."); + } + /** + * Assert object is null.
+ * + * @param object data object + * @since ONAP Amsterdam Release 2017-9-6 + */ + public static void assertObjectNotNull(Object object) throws ApplicationException { + if (null == object) { + LOGGER.error("Object is null."); + throw new ApplicationException(HttpCode.BAD_REQUEST, "Object is null."); } - /** - *
- * - * @param str - * @return - * @since ONAP Amsterdam Release - */ - public static boolean isStrEmpty(String str) { - return null == str || str.isEmpty(); - } + } + + /** + *
+ * + * @param str + * @return + * @since ONAP Amsterdam Release + */ + public static boolean isStrEmpty(String str) { + return null == str || str.isEmpty(); + } } diff --git a/adapters/mso-vfc-adapter/src/test/java/org/openecomp/mso/adapters/vfc/VfcAdapterTest.java b/adapters/mso-vfc-adapter/src/test/java/org/openecomp/mso/adapters/vfc/VfcAdapterTest.java index 4dc8fffdc6..84991d77c8 100644 --- a/adapters/mso-vfc-adapter/src/test/java/org/openecomp/mso/adapters/vfc/VfcAdapterTest.java +++ b/adapters/mso-vfc-adapter/src/test/java/org/openecomp/mso/adapters/vfc/VfcAdapterTest.java @@ -43,8 +43,7 @@ import mockit.Mock; import mockit.MockUp; /** - * VF-C adapter UT - *
+ * VF-C adapter UT
*

*

* @@ -53,200 +52,194 @@ import mockit.MockUp; */ public class VfcAdapterTest { - private VfcAdapterRest vfcAdapter = new VfcAdapterRest(); - - /** - * File path - */ - private static final String FILE_PATH = "src/test/resources/json/"; - - /** - * Mock the request body form a file - *
- * - * @param fileName - * @since ONAP Amsterdam Release - */ - private void mockRestfulUtil(String fileName) { - new MockUp() { - - /** - * mock get request body - *
- * - * @param request - * @return - * @since ONAP Amsterdam Release - */ - @Mock - public String getRequestBody(HttpServletRequest request) { - return getJsonString(fileName); - } - - /** - * mock get send method - *
- * - * @param url - * @param methodType - * @param content - * @return - * @since ONAP Amsterdam Release - */ - @Mock - public RestfulResponse send(String url, String methodType, String content) { - if(url.equals(CommonConstant.NFVO_CREATE_URL) && methodType.equals(CommonConstant.MethodType.POST)) { - return getResponse("createNsRsp.json"); - } else if(url.contains("instantiate") && methodType.equals(CommonConstant.MethodType.POST)) { - return getResponse("instantiateNsRsp.json"); - } else if(methodType.equals(CommonConstant.MethodType.DELETE)) { - return getResponse(null); - } else if(url.contains("terminate") && methodType.equals(CommonConstant.MethodType.POST)) { - return getResponse("terminateNsRsp.json"); - } else if(url.contains("/api/nslcm/v1/jobs") && methodType.equals(CommonConstant.MethodType.GET)) { - return getResponse("queryJobRsp.json"); - } - else { - return null; - } - } - }; - } - - /** - * Mock the request body form a file - *
- * - * @param fileName - * @since ONAP Amsterdam Release - */ - private void mockRequestDatabase() { - new MockUp() { - - /** - * mock get resource operation status - *
- * - * @param request - * @return - * @since ONAP Amsterdam Release - */ - @Mock - public ResourceOperationStatus getResourceOperationStatus(String serviceId, String operationId, - String resourceTemplateUUID) { - ResourceOperationStatus resStatus = new ResourceOperationStatus(); - resStatus.setServiceId("111"); - resStatus.setOperationId("111"); - return resStatus; - } - - /** - * Mock update Res Oper Status - *
- * - * @param operStatus - * @since ONAP Amsterdam Release - */ - @Mock - public void updateResOperStatus(ResourceOperationStatus operStatus) { - - } - }; - } - - /** - * Before executing UT, start mock requst database - *
- * - * @since ONAP Amsterdam Release - */ - @Before - public void start() { - mockRequestDatabase(); - } - - /** - * After executing UT, close session
- * - * @since ONAP Amsterdam Release - */ - @After - public void stop() { - - } - - @Test - public void createTest() { - // get request - mockRestfulUtil(FILE_PATH + "createNsReq.json"); - vfcAdapter.createNfvoNs(null); - } - - @Test - public void deleteTest() { - // get request - mockRestfulUtil(FILE_PATH + "deleteNsReq.json"); - vfcAdapter.deleteNfvoNs(null, "9b9f02c0-298b-458a-bc9c-be3692e4f354"); - } - - @Test - public void instantiateTest() { - // get request - mockRestfulUtil(FILE_PATH + "instantiateNsReq.json"); - vfcAdapter.instantiateNfvoNs(null, "9b9f02c0-298b-458a-bc9c-be3692e4f354"); - } - - @Test - public void terminateTest() { - mockRestfulUtil(FILE_PATH + "terminateNsReq.json"); - vfcAdapter.terminateNfvoNs(null, "9b9f02c0-298b-458a-bc9c-be3692e4f354"); - } - - @Test - public void queryJobTest() { - mockRestfulUtil(FILE_PATH + "queryJobReq.json"); - vfcAdapter.queryNfvoJobStatus(null, "1"); - } - - /** - * Get json string from file.
- * - * @param file the path of file - * @return json string - * @throws IOException when fail to read - * @since ONAP Amsterdam Release 2017-9-6 - */ - @SuppressWarnings("deprecation") - private String getJsonString(final String file) { - if(ValidateUtil.isStrEmpty(file)) { - return ""; - } - - String json = null; - try { - FileInputStream fileStream = new FileInputStream(new File(file)); - json = IOUtils.toString(fileStream); - } catch(Exception e) { - Assert.fail(e.getMessage()); + private VfcAdapterRest vfcAdapter = new VfcAdapterRest(); + + /** + * File path + */ + private static final String FILE_PATH = "src/test/resources/json/"; + + /** + * Mock the request body form a file
+ * + * @param fileName + * @since ONAP Amsterdam Release + */ + private void mockRestfulUtil(String fileName) { + new MockUp() { + + /** + * mock get request body
+ * + * @param request + * @return + * @since ONAP Amsterdam Release + */ + @Mock + public String getRequestBody(HttpServletRequest request) { + return getJsonString(fileName); + } + + /** + * mock get send method
+ * + * @param url + * @param methodType + * @param content + * @return + * @since ONAP Amsterdam Release + */ + @Mock + public RestfulResponse send(String url, String methodType, String content) { + if (url.equals(CommonConstant.NFVO_CREATE_URL) + && methodType.equals(CommonConstant.MethodType.POST)) { + return getResponse("createNsRsp.json"); + } else if (url.contains("instantiate") + && methodType.equals(CommonConstant.MethodType.POST)) { + return getResponse("instantiateNsRsp.json"); + } else if (methodType.equals(CommonConstant.MethodType.DELETE)) { + return getResponse(null); + } else if (url.contains("terminate") && methodType.equals(CommonConstant.MethodType.POST)) { + return getResponse("terminateNsRsp.json"); + } else if (url.contains("/api/nslcm/v1/jobs") + && methodType.equals(CommonConstant.MethodType.GET)) { + return getResponse("queryJobRsp.json"); + } else { + return null; } - return json; + } + }; + } + + /** + * Mock the request body form a file
+ * + * @param fileName + * @since ONAP Amsterdam Release + */ + private void mockRequestDatabase() { + new MockUp() { + + /** + * mock get resource operation status
+ * + * @param request + * @return + * @since ONAP Amsterdam Release + */ + @Mock + public ResourceOperationStatus getResourceOperationStatus(String serviceId, + String operationId, String resourceTemplateUUID) { + ResourceOperationStatus resStatus = new ResourceOperationStatus(); + resStatus.setServiceId("111"); + resStatus.setOperationId("111"); + return resStatus; + } + + /** + * Mock update Res Oper Status
+ * + * @param operStatus + * @since ONAP Amsterdam Release + */ + @Mock + public void updateResOperStatus(ResourceOperationStatus operStatus) { + + } + }; + } + + /** + * Before executing UT, start mock requst database
+ * + * @since ONAP Amsterdam Release + */ + @Before + public void start() { + mockRequestDatabase(); + } + + /** + * After executing UT, close session
+ * + * @since ONAP Amsterdam Release + */ + @After + public void stop() { + + } + + @Test + public void createTest() { + // get request + mockRestfulUtil(FILE_PATH + "createNsReq.json"); + vfcAdapter.createNfvoNs(null); + } + + @Test + public void deleteTest() { + // get request + mockRestfulUtil(FILE_PATH + "deleteNsReq.json"); + vfcAdapter.deleteNfvoNs(null, "9b9f02c0-298b-458a-bc9c-be3692e4f354"); + } + + @Test + public void instantiateTest() { + // get request + mockRestfulUtil(FILE_PATH + "instantiateNsReq.json"); + vfcAdapter.instantiateNfvoNs(null, "9b9f02c0-298b-458a-bc9c-be3692e4f354"); + } + + @Test + public void terminateTest() { + mockRestfulUtil(FILE_PATH + "terminateNsReq.json"); + vfcAdapter.terminateNfvoNs(null, "9b9f02c0-298b-458a-bc9c-be3692e4f354"); + } + + @Test + public void queryJobTest() { + mockRestfulUtil(FILE_PATH + "queryJobReq.json"); + vfcAdapter.queryNfvoJobStatus(null, "1"); + } + + /** + * Get json string from file.
+ * + * @param file the path of file + * @return json string + * @throws IOException when fail to read + * @since ONAP Amsterdam Release 2017-9-6 + */ + @SuppressWarnings("deprecation") + private String getJsonString(final String file) { + if (ValidateUtil.isStrEmpty(file)) { + return ""; } - /** - * get the response from file - *
- * - * @param fileName - * @return - * @since ONAP Amsterdam Release - */ - private RestfulResponse getResponse(String fileName) { - RestfulResponse responseSuccess = new RestfulResponse(); - responseSuccess.setStatus(HttpCode.RESPOND_OK); - if(null != fileName) { - String jsonStr = getJsonString(FILE_PATH + fileName); - responseSuccess.setResponseContent(jsonStr); - } - return responseSuccess; + String json = null; + try { + FileInputStream fileStream = new FileInputStream(new File(file)); + json = IOUtils.toString(fileStream); + } catch (Exception e) { + Assert.fail(e.getMessage()); + } + return json; + } + + /** + * get the response from file
+ * + * @param fileName + * @return + * @since ONAP Amsterdam Release + */ + private RestfulResponse getResponse(String fileName) { + RestfulResponse responseSuccess = new RestfulResponse(); + responseSuccess.setStatus(HttpCode.RESPOND_OK); + if (null != fileName) { + String jsonStr = getJsonString(FILE_PATH + fileName); + responseSuccess.setResponseContent(jsonStr); } + return responseSuccess; + } } diff --git a/adapters/mso-vfc-adapter/src/test/resources/logback-test.xml b/adapters/mso-vfc-adapter/src/test/resources/logback-test.xml index 26a86877bd..61d9c45543 100644 --- a/adapters/mso-vfc-adapter/src/test/resources/logback-test.xml +++ b/adapters/mso-vfc-adapter/src/test/resources/logback-test.xml @@ -1,48 +1,39 @@ - - - - - - - - %d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}||%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}||%X{Timer}|%msg%n - - - - - - - - - - - - - - - - - - - - + + + + + + + + %d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}||%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}||%X{Timer}|%msg%n + + + + + + + + + + + + + + + + + + + + -- 2.16.6