diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServlet.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServlet.java | 221 |
1 files changed, 108 insertions, 113 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServlet.java b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServlet.java index 54ec6e3b15..5d4001eec5 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServlet.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServlet.java @@ -20,15 +20,10 @@ package org.openecomp.sdc.be.servlets; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.jcabi.aspects.Loggable; +import fj.data.Either; import org.apache.http.HttpStatus; import org.openecomp.sdc.be.config.BeEcompErrorManager; import org.openecomp.sdc.be.dao.api.ActionStatus; @@ -38,116 +33,116 @@ import org.openecomp.sdc.be.info.ArtifactAccessInfo; import org.openecomp.sdc.be.resources.api.IResourceUploader; import org.openecomp.sdc.be.resources.data.ESArtifactData; import org.openecomp.sdc.common.api.Constants; -import org.openecomp.sdc.common.config.EcompErrorName; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.jcabi.aspects.Loggable; - -import fj.data.Either; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; @Loggable(prepend = true, value = Loggable.DEBUG, trim = false) @Path("/v1/catalog/resources/available") public class ResourceArtifactDownloadServlet extends ToscaDaoServlet { - private static Logger log = LoggerFactory.getLogger(ResourceArtifactDownloadServlet.class.getName()); - - private Gson gson = new GsonBuilder().setPrettyPrinting().create(); - - @GET - @Path("/{resourceName}/{resourceVersion}/artifacts/{artifactName}") - // @Produces(MediaType.APPLICATION_OCTET_STREAM) - public Response getResourceArtifactByName(@PathParam("resourceName") final String resourceName, @PathParam("resourceVersion") final String resourceVersion, @PathParam("artifactName") final String artifactName, - @Context final HttpServletRequest request) { - - String url = request.getMethod() + " " + request.getRequestURI(); - log.debug("Start handle request of {}", url); - Response response = null; - try { - // get the artifact data - String artifactId = String.format(Constants.ARTIFACT_ID_FORMAT, resourceName, resourceVersion, artifactName); - - IResourceUploader resouceUploader = getResourceUploader(request.getSession().getServletContext()); - if (resouceUploader == null) { - return buildResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, ""); - - } - Either<ESArtifactData, ResourceUploadStatus> getArtifactStatus = resouceUploader.getArtifact(artifactId); - - DownloadArtifactLogic logic = getLogic(request.getSession().getServletContext()); - if (logic == null) { - return buildResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, ""); - - } - response = logic.downloadArtifact(resourceName, resourceVersion, artifactName, getArtifactStatus, artifactId); - - log.info("Finish handle request of {} | result = {}", url, response.getStatus()); - return response; - - } catch (Exception e) { - BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeRestApiGeneralError, "Get Resource Artifact By Name"); - BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Get Resource Artifact By Name"); - log.debug("getResourceArtifactByName failed with exception", e); - response = buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)); - return response; - } - } - - @GET - @Path("/{resourceName}/{resourceVersion}/artifacts/{artifactName}/metadata") - @Produces(MediaType.APPLICATION_JSON) - public Response getResourceArtifactMetadata(@PathParam("resourceName") final String resourceName, @PathParam("resourceVersion") final String resourceVersion, @PathParam("artifactName") final String artifactName, - @Context final HttpServletRequest request) { - - String url = request.getMethod() + " " + request.getRequestURI(); - log.debug("Start handle request of {}", url); - - Response response = null; - try { - IResourceUploader resourceDao = getResourceUploader(request.getSession().getServletContext()); - if (resourceDao == null) { - log.error("resource dao cannot be found"); - response = buildResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Resource dao cannot be found"); - return response; - } - - String artifactId = String.format(Constants.ARTIFACT_ID_FORMAT, resourceName, resourceVersion, artifactName); - Either<ESArtifactData, ResourceUploadStatus> getArtifactStatus = resourceDao.getArtifact(artifactId); - - if (getArtifactStatus.isRight()) { - ResourceUploadStatus status = getArtifactStatus.right().value(); - if (status == ResourceUploadStatus.COMPONENT_NOT_EXIST) { - response = Response.status(HttpStatus.SC_NOT_FOUND).build(); - log.debug("Could not find artifact for with id: {}", artifactId); - } else { - response = Response.status(HttpStatus.SC_NO_CONTENT).build(); - log.debug("Could not find artifact for with id: {}", artifactId); - } - return response; - } else { - ESArtifactData artifactData = getArtifactStatus.left().value(); - log.debug("found artifact with id: {}", artifactId); - ArtifactAccessInfo artifactInfo = new ArtifactAccessInfo(artifactData); - String artifactDataJson = gson.toJson(artifactInfo); - response = Response.status(HttpStatus.SC_OK).entity(artifactDataJson).type(MediaType.APPLICATION_JSON_TYPE).build(); - - log.info("Finish handle request of {} | result = {}", url, response.getStatus()); - return response; - } - } catch (Exception e) { - BeEcompErrorManager.getInstance().processEcompError(EcompErrorName.BeRestApiGeneralError, "Get Resource Artifact Metadata"); - BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Get Resource Artifact Metadata"); - log.debug("getResourceArtifactMetadata failed with exception", e); - response = buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)); - return response; - } - - } - - @Override - public Logger getLogger() { - return log; - } + private static final Logger log = LoggerFactory.getLogger(ResourceArtifactDownloadServlet.class); + + private Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + @GET + @Path("/{resourceName}/{resourceVersion}/artifacts/{artifactName}") + // @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response getResourceArtifactByName(@PathParam("resourceName") final String resourceName, @PathParam("resourceVersion") final String resourceVersion, @PathParam("artifactName") final String artifactName, + @Context final HttpServletRequest request) { + + String url = request.getMethod() + " " + request.getRequestURI(); + log.debug("Start handle request of {}", url); + Response response = null; + try { + // get the artifact data + String artifactId = String.format(Constants.ARTIFACT_ID_FORMAT, resourceName, resourceVersion, artifactName); + + IResourceUploader resouceUploader = getResourceUploader(request.getSession().getServletContext()); + if (resouceUploader == null) { + return buildResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, ""); + + } + Either<ESArtifactData, ResourceUploadStatus> getArtifactStatus = resouceUploader.getArtifact(artifactId); + + DownloadArtifactLogic logic = getLogic(request.getSession().getServletContext()); + if (logic == null) { + return buildResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, ""); + + } + response = logic.downloadArtifact(artifactName, getArtifactStatus, artifactId); + + log.info("Finish handle request of {} | result = {}", url, response.getStatus()); + return response; + + } catch (Exception e) { + BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Get Resource Artifact By Name"); + log.debug("getResourceArtifactByName failed with exception", e); + response = buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)); + return response; + } + } + + @GET + @Path("/{resourceName}/{resourceVersion}/artifacts/{artifactName}/metadata") + @Produces(MediaType.APPLICATION_JSON) + public Response getResourceArtifactMetadata(@PathParam("resourceName") final String resourceName, @PathParam("resourceVersion") final String resourceVersion, @PathParam("artifactName") final String artifactName, + @Context final HttpServletRequest request) { + + String url = request.getMethod() + " " + request.getRequestURI(); + log.debug("Start handle request of {}", url); + + Response response = null; + try { + IResourceUploader resourceDao = getResourceUploader(request.getSession().getServletContext()); + if (resourceDao == null) { + log.error("resource dao cannot be found"); + response = buildResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Resource dao cannot be found"); + return response; + } + + String artifactId = String.format(Constants.ARTIFACT_ID_FORMAT, resourceName, resourceVersion, artifactName); + Either<ESArtifactData, ResourceUploadStatus> getArtifactStatus = resourceDao.getArtifact(artifactId); + + if (getArtifactStatus.isRight()) { + ResourceUploadStatus status = getArtifactStatus.right().value(); + if (status == ResourceUploadStatus.COMPONENT_NOT_EXIST) { + response = Response.status(HttpStatus.SC_NOT_FOUND).build(); + log.debug("Could not find artifact for with id: {}", artifactId); + } else { + response = Response.status(HttpStatus.SC_NO_CONTENT).build(); + log.debug("Could not find artifact for with id: {}", artifactId); + } + return response; + } else { + ESArtifactData artifactData = getArtifactStatus.left().value(); + log.debug("found artifact with id: {}", artifactId); + ArtifactAccessInfo artifactInfo = new ArtifactAccessInfo(artifactData); + String artifactDataJson = gson.toJson(artifactInfo); + response = Response.status(HttpStatus.SC_OK).entity(artifactDataJson).type(MediaType.APPLICATION_JSON_TYPE).build(); + + log.info("Finish handle request of {} | result = {}", url, response.getStatus()); + return response; + } + } catch (Exception e) { + BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Get Resource Artifact Metadata"); + log.debug("getResourceArtifactMetadata failed with exception", e); + response = buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR)); + return response; + } + + } + + @Override + public Logger getLogger() { + return log; + } } |