Merge "Update e2e models"
[so.git] / adapters / mso-vfc-adapter / src / main / java / org / openecomp / mso / adapters / vfc / VfcAdapterRest.java
index 1be5bab..ebbcf1b 100644 (file)
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
+
 package org.openecomp.mso.adapters.vfc;
 
-import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
 
+import org.openecomp.mso.adapters.vfc.exceptions.ApplicationException;
 import org.openecomp.mso.adapters.vfc.model.NSResourceInputParameter;
 import org.openecomp.mso.adapters.vfc.model.NsOperationKey;
 import org.openecomp.mso.adapters.vfc.model.RestfulResponse;
 import org.openecomp.mso.adapters.vfc.util.JsonUtil;
-import org.openecomp.mso.adapters.vfc.util.RestfulUtil;
 import org.openecomp.mso.adapters.vfc.util.ValidateUtil;
 import org.openecomp.mso.logger.MsoLogger;
 
 /**
- * The rest class for VF-c Adapter
- * <br>
+ * The rest class for VF-c Adapter <br>
  * <p>
  * </p>
  * 
  * @author
- * @version     ONAP Amsterdam Release  2017-08-28
+ * @version ONAP Amsterdam Release 2017-08-28
  */
-@Path("/v1/vfcdrivers")
+@Path("/v1/vfcadapter")
 public class VfcAdapterRest {
 
     private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA);
 
     private final VfcManager driverMgr = new VfcManager();
 
+    public VfcAdapterRest() {
+
+    }
+
     /**
-     * Create a NS
-     * <br>
+     * Create a NS <br>
      * 
-     * @param servletReq the http request
+     * @param data the http request
      * @return
      * @since ONAP Amsterdam Release
      */
@@ -65,14 +67,17 @@ public class VfcAdapterRest {
     @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
-        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);
+    public Response createNfvoNs(String data) {
+        try {
+            ValidateUtil.assertObjectNotNull(data);
+            LOGGER.debug("body from request is {}" + data);
+            NSResourceInputParameter nsInput = JsonUtil.unMarshal(data, NSResourceInputParameter.class);
+            RestfulResponse rsp = driverMgr.createNs(nsInput);
+            return buildResponse(rsp);
+        } catch(ApplicationException e) {
+            LOGGER.debug("ApplicationException: ", e);
+            return e.buildErrorResponse();
+        }
     }
 
     /**
@@ -82,27 +87,29 @@ public class VfcAdapterRest {
      * @return response
      * @since ONAP Amsterdam Release
      */
-    @POST
+    @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) {
-        // 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);
+    public Response deleteNfvoNs(String data, @PathParam("nsInstanceId") String nsInstanceId) {
+        try {
 
-        RestfulResponse rsp = driverMgr.deleteNs(nsOperationKey, nsInstanceId);
-        return buildResponse(rsp);
+            ValidateUtil.assertObjectNotNull(data);
+            LOGGER.debug("body from request is {}" + data);
+            NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, 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
-     * <br>
+     * Query Operation job status <br>
      * 
      * @param servletReq The Http Request
-     * @param jobId The job id 
+     * @param jobId The job id
      * @return
      * @since ONAP Amsterdam Release
      */
@@ -110,20 +117,21 @@ public class VfcAdapterRest {
     @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) {
-        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);
+    public Response queryNfvoJobStatus(String data, @PathParam("jobId") String jobId) {
+        try {
+            ValidateUtil.assertObjectNotNull(data);
+            LOGGER.debug("body from request is {}" + data);
+            NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, NsOperationKey.class);
+            RestfulResponse rsp = driverMgr.getNsProgress(nsOperationKey, jobId);
+            return buildResponse(rsp);
+        } catch(ApplicationException e) {
+            LOGGER.debug("ApplicationException: ", e);
+            return e.buildErrorResponse();
+        }
     }
 
-
     /**
-     * Instantiate NS instance
-     * <br>
+     * Instantiate NS instance <br>
      * 
      * @param servletReq The http request
      * @param nsInstanceId The NS instance id
@@ -134,18 +142,21 @@ public class VfcAdapterRest {
     @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);
-        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);
+    public Response instantiateNfvoNs(String data, @PathParam("nsInstanceId") String nsInstanceId) {
+        try {
+            ValidateUtil.assertObjectNotNull(data);
+            LOGGER.debug("body from request is {}" + data);
+            NSResourceInputParameter nsInput = JsonUtil.unMarshal(data, NSResourceInputParameter.class);
+            RestfulResponse rsp = driverMgr.instantiateNs(nsInstanceId, nsInput);
+            return buildResponse(rsp);
+        } catch(ApplicationException e) {
+            LOGGER.debug("ApplicationException: ", e);
+            return e.buildErrorResponse();
+        }
     }
 
     /**
-     * Terminate NS instance
-     * <br>
+     * Terminate NS instance <br>
      * 
      * @param servletReq The http request
      * @param nsInstanceId The NS instance id
@@ -156,28 +167,27 @@ public class VfcAdapterRest {
     @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) {
-        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);
+    public Response terminateNfvoNs(String data, @PathParam("nsInstanceId") String nsInstanceId) {
+        try {
+            ValidateUtil.assertObjectNotNull(data);
+            LOGGER.debug("body from request is {}" + data);
+            NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, 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
-     * <br>
+     * build response from restful response <br>
      * 
      * @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();
+        return Response.status(rsp.getStatus()).entity(rsp.getResponseContent()).build();
     }
 }