X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=datadb%2Fcompbio%2Fcassandra%2FJpredParserHTTP.java;h=e53ddd8da7f1bbf43db2969963ad804a0a62d7d5;hb=52edb573d0491d34b3951c18bced4c3e00a58d13;hp=bf4c46085021e3bb08037e9c5327296ec7f948fa;hpb=5b33e8d273539ac860bb2db853b47b5e7de0280e;p=proteocache.git diff --git a/datadb/compbio/cassandra/JpredParserHTTP.java b/datadb/compbio/cassandra/JpredParserHTTP.java index bf4c460..e53ddd8 100644 --- a/datadb/compbio/cassandra/JpredParserHTTP.java +++ b/datadb/compbio/cassandra/JpredParserHTTP.java @@ -1,8 +1,6 @@ package compbio.cassandra; import java.io.BufferedReader; -import java.io.DataInputStream; -import java.io.EOFException; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; @@ -11,14 +9,13 @@ import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import compbio.cassandra.JpredParser; +import compbio.engine.JpredJob; public class JpredParserHTTP implements JpredParser { private CassandraWriter cw = new CassandraWriter(); @@ -44,10 +41,7 @@ public class JpredParserHTTP implements JpredParser { cal.add(Calendar.DATE, -nDays); for (int i = 0; i < nDays; ++i) { cal.add(Calendar.DATE, 1); - int month = cal.get(Calendar.MONTH) + 1; - int year = cal.get(Calendar.YEAR); - int day = cal.get(Calendar.DATE); - String date = year + "/" + month + "/" + day; + String date = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE); ParsingForDate(source, date); } } @@ -89,59 +83,25 @@ public class JpredParserHTTP implements JpredParser { return out; } - private List parseArchiveFile(final InputStream stream) throws IOException { - DataInputStream data_in = new DataInputStream(stream); - List out = new ArrayList(); - while (true) { - try { - out.add(data_in.readByte()); - } catch (EOFException eof) { - break; - } - } - return out; - } - - private int analyseJob(String[] job) throws IOException { + private int analyseJob(String[] jobinfo) throws IOException { boolean running = true; boolean ConcisefileExists = false; boolean LogfileExists = false; - String id = job[job.length - 1]; - String startdatestring = job[0].substring(0, job[0].indexOf(":")); - Date startdate = new Date(0); - Date starttime = new Date(0); - Date endtime = new Date(0); + JpredJob job = new JpredJob (jobinfo[jobinfo.length - 1], jobinfo[0], jobinfo[1]); + job.setIP(jobinfo[2]); Date currDate = new Date(); - String ip = job[2]; - String execstatus = "OK"; - String finalstatus = "OK"; - String protein = ""; - long exectime = 0; - String log = ""; - String maindir = dirprefix + "/" + id + "/"; - String concisefile = dirprefix + "/" + id + "/" + id + ".concise.fasta"; - String archivefile = dirprefix + "/" + id + "/" + id + ".tar.gz"; - String logfile = dirprefix + "/" + id + "/LOG"; - SimpleDateFormat dateformatter = new SimpleDateFormat("yyyy/MM/dd"); - SimpleDateFormat timeformatter = new SimpleDateFormat("yyyy/MM/dd:H:m:s"); - try { - startdate = dateformatter.parse(startdatestring); - starttime = timeformatter.parse(job[0]); - endtime = timeformatter.parse(job[1]); - exectime = (endtime.getTime() - starttime.getTime()) / 1000; - } catch (ParseException e) { - e.printStackTrace(); - } + String maindir = dirprefix + "/" + job.getJobID() + "/"; + //System.out.println("analyzing job " + job.getJobID()); try { URL dirurl = new URL(maindir); HttpURLConnection httpConnection_dirurl = (HttpURLConnection) dirurl.openConnection(); if (httpConnection_dirurl.getResponseCode() < 199 || 300 <= httpConnection_dirurl.getResponseCode()) { return 0; } - URL conciseurl = new URL(concisefile); - URL archiveurl = new URL(archivefile); - URL logurl = new URL(logfile); + URL conciseurl = new URL(maindir + job.getJobID() + ".concise.fasta"); + URL archiveurl = new URL(maindir + job.getJobID() + ".tar.gz"); + URL logurl = new URL(maindir + "LOG"); HttpURLConnection httpConnection_conciseurl = (HttpURLConnection) conciseurl.openConnection(); HttpURLConnection httpConnection_logurl = (HttpURLConnection) logurl.openConnection(); HttpURLConnection httpConnection_archiveurl = (HttpURLConnection) archiveurl.openConnection(); @@ -149,39 +109,37 @@ public class JpredParserHTTP implements JpredParser { ConcisefileExists = true; running = false; try { - protein = parsePredictions(conciseurl.openStream(), id); + job.setProtein(parsePredictions(conciseurl.openStream(), job.getJobID())); } catch (IOException e) { e.printStackTrace(); } } else { // The job still can be running of failed... ++countNoData; - alignment = new ArrayList(); - predictions = new ArrayList(); } if (199 < httpConnection_logurl.getResponseCode() && httpConnection_logurl.getResponseCode() < 300) { LogfileExists = true; - log = parseLogFile(logurl.openStream()); + job.setLog(parseLogFile(logurl.openStream())); } else { // The job has not been started at all... - execstatus = "FAIL"; - finalstatus = "STOPPED"; + job.setExecutionStatus("FAIL"); + job.setFinalStatus("STOPPED"); running = false; } - if (log.matches("(.*)TIMEOUT\\syour\\sjob\\stimed\\sout(.*)")) { + if (job.getLog().matches("(.*)TIMEOUT\\syour\\sjob\\stimed\\sout(.*)")) { // blast job was too long (more than 3600 secs by default)... - execstatus = "FAIL"; - finalstatus = "TIMEDOUT"; + job.setExecutionStatus("FAIL"); + job.setFinalStatus("TIMEDOUT"); running = false; - } else if (log.matches("(.*)Jpred\\serror:\\sDied\\sat(.*)")) { + } else if (job.getLog().matches("(.*)Jpred\\serror:\\sDied\\sat(.*)")) { // an internal Jpred error... - execstatus = "FAIL"; - finalstatus = "JPREDERROR"; + job.setExecutionStatus("FAIL"); + job.setFinalStatus("JPREDERROR"); running = false; - } else if ((currDate.getTime() - endtime.getTime()) / 1000 > 3601 && LogfileExists && !ConcisefileExists) { + } else if ((currDate.getTime() - job.getEndTime()) / 1000 > 3601 && LogfileExists && !ConcisefileExists) { // the job was stopped with unknown reason... - execstatus = "FAIL"; - finalstatus = "STOPPED"; + job.setExecutionStatus("FAIL"); + job.setFinalStatus("STOPPED"); running = false; } @@ -193,12 +151,12 @@ public class JpredParserHTTP implements JpredParser { } if (!running) { - long t = startdate.getTime(); - cw.FormQueryTables(t, job[0], job[1], ip, id, execstatus, finalstatus, protein, predictions); - cw.ArchiveData(t, exectime, ip, id, execstatus, finalstatus, protein, predictions, alignment, log, archivefile); + job.setAlignment(alignment); + job.setPredictions(predictions); + cw.FormQueryTables(job); + cw.ArchiveData(job, "undefined"); return 1; - } else - System.out.println("job " + id + " is running"); + } return 0; }