Loading data-access/servlet/src/main/java/common/output/MCutResult.java +10 −0 Original line number Diff line number Diff line import org.json.simple.JSONObject; class MCutResult { Loading @@ -10,6 +11,15 @@ class MCutResult public int index; public ContentType contentType; public String content; JSONObject toJsonObject() { JSONObject jo = new JSONObject(); //jo.put("input", inputs.toJsonObject()); jo.put("type", contentType.toString()); jo.put("content", content); return jo; } } Loading data-access/servlet/src/main/java/cutout/DatasetsCli.java +45 −54 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; import java.io.BufferedOutputStream; import java.util.Date; import java.text.SimpleDateFormat; import org.json.simple.JSONArray; import vo.parameter.*; Loading Loading @@ -89,7 +90,8 @@ class DatasetsCli implements Datasets CutArgs[] cutArgsArr = CutArgs.parseCutArgsArr(jdlJson); MCutResult.Cut[] cutResultArr = doCutouts( cutArgsArr ); mCutResult = doCompressCutFiles( cutResultArr ); String respJsonString = genResponseJson( cutResultArr ); mCutResult = doCompressCutFiles( cutResultArr, respJsonString ); return mCutResult; } Loading Loading @@ -121,46 +123,25 @@ class DatasetsCli implements Datasets // FIXME implement similar for Merge: MCutResult = call-Montage-demosaic-sequence(cutResultArr) private MCutResult doCompressCutFiles(MCutResult.Cut[] cutArr) private MCutResult doCompressCutFiles(MCutResult.Cut[] cutArr, String respJsonString) throws IOException, InterruptedException { String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); Instant instant = Instant.now(); String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "_" + instant.getNano(); final String tgzFileName = settings.fitsPaths.cutouts() + "/mcutout_" + timestamp + ".tar.gz"; /* StringBuilder sb = new StringBuilder(); for(MCutResult.Cut cut : cutArr) { LOGGER.info("cut-id"+ String.valueOf(cut.index) + " -> " + cut.content); if(cut.contentType == MCutResult.Cut.ContentType.FILENAME) // generate response-*.json with timestamp String respJsonPathname = settings.fitsPaths.cutouts() + "/response_" + timestamp + ".json"; try (PrintWriter out = new PrintWriter(respJsonPathname)) { Path p = Paths.get(cut.content); sb.append(" " + p.getFileName().toString()); } out.print(respJsonString); } String[] cmd = new String[6]; cmd[0] = "/bin/tar"; cmd[1] = "cfz"; cmd[2] = tgzFileName; cmd[3] = "-C"; cmd[4] = settings.fitsPaths.cutouts(); cmd[5] = sb.toString(); LOGGER.info("CMD: " + String.join(" ",cmd)); ByteArrayOutputStream bos = new ByteArrayOutputStream(); if(bos == null) throw new AssertionError("byte output stream for bounds was not created, is null"); ExecCmd exec = new ExecCmd(); exec.doRun(bos, cmd); LOGGER.info("exec tar.gz exitValue: " + exec.exitValue); boolean has_result = (exec.exitValue == 0); */ List<Path> paths = new ArrayList<Path>(); paths.add(Paths.get(respJsonPathname)); for(MCutResult.Cut cut : cutArr) { LOGGER.info("cut-id"+ String.valueOf(cut.index) + " -> " + cut.content); Loading @@ -179,12 +160,26 @@ class DatasetsCli implements Datasets mCutResult.fileName = tgzFileName; mCutResult.fileSize = Files.size(output); // FIXME add response.json to tar.gz, add nanosecs to timestamp return mCutResult; } private String genResponseJson(MCutResult.Cut[] cutArr) { List<Path> paths = new ArrayList<Path>(); JSONArray jArr = new JSONArray(); for(MCutResult.Cut cut : cutArr) { jArr.add(cut.toJsonObject()); } return jArr.toString(); } private MCutResult.Cut doFileByIdWithErr(String id, Pos pos, Band band, Time time, Pol pol, String pixels, boolean countNullValues, Subsurvey[] subsurveys) { Loading Loading @@ -237,11 +232,8 @@ class DatasetsCli implements Datasets import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; */ public static void createTarGzipFiles(List<Path> paths, Path output) private static void createTarGzipFiles(List<Path> paths, Path output) throws IOException { try (OutputStream fOut = Files.newOutputStream(output); Loading Loading @@ -270,7 +262,6 @@ class DatasetsCli implements Datasets tOut.finish(); } } } Loading Loading
data-access/servlet/src/main/java/common/output/MCutResult.java +10 −0 Original line number Diff line number Diff line import org.json.simple.JSONObject; class MCutResult { Loading @@ -10,6 +11,15 @@ class MCutResult public int index; public ContentType contentType; public String content; JSONObject toJsonObject() { JSONObject jo = new JSONObject(); //jo.put("input", inputs.toJsonObject()); jo.put("type", contentType.toString()); jo.put("content", content); return jo; } } Loading
data-access/servlet/src/main/java/cutout/DatasetsCli.java +45 −54 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; import java.io.BufferedOutputStream; import java.util.Date; import java.text.SimpleDateFormat; import org.json.simple.JSONArray; import vo.parameter.*; Loading Loading @@ -89,7 +90,8 @@ class DatasetsCli implements Datasets CutArgs[] cutArgsArr = CutArgs.parseCutArgsArr(jdlJson); MCutResult.Cut[] cutResultArr = doCutouts( cutArgsArr ); mCutResult = doCompressCutFiles( cutResultArr ); String respJsonString = genResponseJson( cutResultArr ); mCutResult = doCompressCutFiles( cutResultArr, respJsonString ); return mCutResult; } Loading Loading @@ -121,46 +123,25 @@ class DatasetsCli implements Datasets // FIXME implement similar for Merge: MCutResult = call-Montage-demosaic-sequence(cutResultArr) private MCutResult doCompressCutFiles(MCutResult.Cut[] cutArr) private MCutResult doCompressCutFiles(MCutResult.Cut[] cutArr, String respJsonString) throws IOException, InterruptedException { String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); Instant instant = Instant.now(); String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "_" + instant.getNano(); final String tgzFileName = settings.fitsPaths.cutouts() + "/mcutout_" + timestamp + ".tar.gz"; /* StringBuilder sb = new StringBuilder(); for(MCutResult.Cut cut : cutArr) { LOGGER.info("cut-id"+ String.valueOf(cut.index) + " -> " + cut.content); if(cut.contentType == MCutResult.Cut.ContentType.FILENAME) // generate response-*.json with timestamp String respJsonPathname = settings.fitsPaths.cutouts() + "/response_" + timestamp + ".json"; try (PrintWriter out = new PrintWriter(respJsonPathname)) { Path p = Paths.get(cut.content); sb.append(" " + p.getFileName().toString()); } out.print(respJsonString); } String[] cmd = new String[6]; cmd[0] = "/bin/tar"; cmd[1] = "cfz"; cmd[2] = tgzFileName; cmd[3] = "-C"; cmd[4] = settings.fitsPaths.cutouts(); cmd[5] = sb.toString(); LOGGER.info("CMD: " + String.join(" ",cmd)); ByteArrayOutputStream bos = new ByteArrayOutputStream(); if(bos == null) throw new AssertionError("byte output stream for bounds was not created, is null"); ExecCmd exec = new ExecCmd(); exec.doRun(bos, cmd); LOGGER.info("exec tar.gz exitValue: " + exec.exitValue); boolean has_result = (exec.exitValue == 0); */ List<Path> paths = new ArrayList<Path>(); paths.add(Paths.get(respJsonPathname)); for(MCutResult.Cut cut : cutArr) { LOGGER.info("cut-id"+ String.valueOf(cut.index) + " -> " + cut.content); Loading @@ -179,12 +160,26 @@ class DatasetsCli implements Datasets mCutResult.fileName = tgzFileName; mCutResult.fileSize = Files.size(output); // FIXME add response.json to tar.gz, add nanosecs to timestamp return mCutResult; } private String genResponseJson(MCutResult.Cut[] cutArr) { List<Path> paths = new ArrayList<Path>(); JSONArray jArr = new JSONArray(); for(MCutResult.Cut cut : cutArr) { jArr.add(cut.toJsonObject()); } return jArr.toString(); } private MCutResult.Cut doFileByIdWithErr(String id, Pos pos, Band band, Time time, Pol pol, String pixels, boolean countNullValues, Subsurvey[] subsurveys) { Loading Loading @@ -237,11 +232,8 @@ class DatasetsCli implements Datasets import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; */ public static void createTarGzipFiles(List<Path> paths, Path output) private static void createTarGzipFiles(List<Path> paths, Path output) throws IOException { try (OutputStream fOut = Files.newOutputStream(output); Loading Loading @@ -270,7 +262,6 @@ class DatasetsCli implements Datasets tOut.finish(); } } } Loading