X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fadmin%2FPolicyManagerServlet.java;fp=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fadmin%2FPolicyManagerServlet.java;h=a23a0e821461172805ec2406b7993411dcdf844d;hp=d7d6e78296b5428140bc38de016391a2f571cab7;hb=39db5ecce3151ad42bc0c5433d14b2a81887a4ef;hpb=7302e2ad3c8d52f9d16dad662913934d7bedf16a diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java index d7d6e7829..a23a0e821 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java @@ -25,7 +25,6 @@ package org.onap.policy.admin; import com.att.research.xacml.util.XACMLProperties; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; - import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; @@ -49,7 +48,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; - import javax.json.Json; import javax.json.JsonArray; import javax.json.JsonReader; @@ -61,11 +59,11 @@ import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpStatus; import org.elasticsearch.common.Strings; import org.json.JSONArray; @@ -266,20 +264,24 @@ public class PolicyManagerServlet extends HttpServlet { private void uploadFile(HttpServletRequest request, HttpServletResponse response) throws ServletException { try { Map files = new HashMap<>(); - + String resp = null; List items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { // Process form file field (input type="file"). files.put(item.getName(), item.getInputStream()); - processFormFile(request, item); + resp = processFormFile(request, item, response); } } - JSONObject responseJsonObject; - responseJsonObject = this.success(); response.setContentType(CONTENTTYPE); PrintWriter out = response.getWriter(); + JSONObject responseJsonObject; + if (!StringUtils.isBlank(resp)) { + responseJsonObject = this.error("Import Issue " + resp); + } else { + responseJsonObject = this.success(); + } out.print(responseJsonObject); out.flush(); } catch (Exception e) { @@ -288,23 +290,27 @@ public class PolicyManagerServlet extends HttpServlet { } } - private void processFormFile(HttpServletRequest request, FileItem item) { + private String processFormFile(HttpServletRequest request, FileItem item, HttpServletResponse response) { String newFile; + String outPutResp = null; if (item.getName().endsWith(".xls") && item.getSize() <= getFileSizeLimit()) { File file = new File(item.getName()); try (OutputStream outputStream = new FileOutputStream(file)) { - copyStream(item.getInputStream(), outputStream); + IOUtils.copy(item.getInputStream(), outputStream); newFile = file.toString(); PolicyExportAndImportController importController = new PolicyExportAndImportController(); - importController.importRepositoryFile(newFile, request); + return importController.importRepositoryFile(newFile, request); } catch (Exception e) { LOGGER.error("Upload error : " + e); } } else if (!item.getName().endsWith(".xls")) { - LOGGER.error("Non .xls filetype uploaded: " + item.getName()); + outPutResp = "Non .xls filetype uploaded: " + item.getName(); + LOGGER.error(outPutResp); } else { // uploaded file size is greater than allowed - LOGGER.error("Upload file size limit exceeded! File size (Bytes) is: " + item.getSize()); + outPutResp = "Upload file size limit exceeded! File size (Bytes) is: " + item.getSize(); + LOGGER.error(outPutResp); } + return outPutResp; } protected long copyStream(InputStream inputStream, OutputStream outputStream) throws IOException {