private String ip;
private String ProgramName;
private String ProgramVersion;
+ private String ProgramLink;
private LinkedHashMap<String, String> predictions;
- public JobBean(String seq, String id, String dateStart, String dateEnd, String ip, Map<String, String> pred, String program, String version) {
+ public JobBean(String seq, String id, String dateStart, String dateEnd, String ip, Map<String, String> pred) {
this.sequence = seq;
- this.ProgramName = program;
- this.ProgramVersion = version;
+ this.ProgramName = "";
+ this.ProgramVersion = "";
this.jobid = id;
this.dateStart = dateStart;
this.dateEnd = dateEnd;
this.ip = ip;
+ this.ProgramLink = "";
this.predictions = new LinkedHashMap<String, String>();
setPredictions(pred);
}
return ProgramVersion;
}
+ public String getProgramLink() {
+ return ProgramLink;
+ }
+
+ public void setProgramName(String name) {
+ ProgramName = name;
+ }
+
+ public void setProgramVersion(String version) {
+ ProgramVersion = version;
+ }
+
+ public void setProgramLink(String link) {
+ ProgramLink = link;
+ }
+
public Map<String, String> getPrediction() {
return predictions;
}
session.execute("CREATE TABLE IF NOT EXISTS JobDateInfo "
+ "(jobday bigint, Total bigint, TotalOK bigint, TotalStopped bigint, TotalError bigint, TotalTimeOut bigint, Program varchar, Version varchar, PRIMARY KEY(jobday));");
- String com = "CREATE TABLE IF NOT EXISTS Users "
- + "(name varchar, id bigint, email varchar, password varchar, organisation varchar, position varchar, signedtolist boolean, registrationdate bigint, PRIMARY KEY(id));";
+ session.execute("CREATE TABLE IF NOT EXISTS Programs "
+ + "(Program varchar, Version varchar, Description varchar, weblink varchar, PRIMARY KEY(Program,Version));");
+
+ session.execute("CREATE TABLE IF NOT EXISTS Users "
+ + "(name varchar, id bigint, email varchar, password varchar, organisation varchar, position varchar, signedtolist boolean, registrationdate bigint, PRIMARY KEY(id));");
// session.execute("ALTER TABLE ProteinLog ADD ProgramName ascii;");
// session.execute("ALTER TABLE ProteinLog ADD ProgramVersion ascii;");
Calendar endcal = Calendar.getInstance();
long endTime = endcal.getTime().getTime();
for (Date date = runnicCal.getTime(); date.getTime() < endTime; runnicCal.add(Calendar.DATE, 1), date = runnicCal.getTime()) {
- try {
+ try {
String com = "SELECT JobID, Protein FROM ProteinData WHERE jobtime = " + date.getTime() + ";";
System.out.println(com);
ResultSet results = session.execute(com);
continue;
List<Row> rows = results.all();
System.out.println(rows.size());
- int k=0;
for (Row r : rows) {
session.execute("UPDATE ProteinLog SET ProgramName = 'Jpred', ProgramVersion = '3.0.1' WHERE JobID = '"
+ r.getString("JobID") + "';");
session.execute("UPDATE JpredArchive SET ProgramName = 'Jpred', ProgramVersion = '3.0.1' WHERE JobID = '"
- + r.getString("JobID") + "';");
+ + r.getString("JobID") + "';");
}
} catch (QueryExecutionException e) {
e.printStackTrace();
return null;
Row row1 = results1.one();
JobBean res = new JobBean(row.getString("Protein"), row.getString("JobID"), row.getString("DataBegin"), row.getString("DataEnd"),
- row.getString("ip"), row1.getMap("Predictions", String.class, String.class), row.getString("ProgramName"),
- row.getString("ProgramVersion"));
+ row.getString("ip"), row1.getMap("Predictions", String.class, String.class));
+ String program = row.getString("ProgramName");
+ String version = row.getString("ProgramVersion");
+ if (null != program && null != version) {
+ res.setProgramName(program);
+ res.setProgramVersion(version);
+ }
System.out.println("Query time is " + (queryTime - startTime) + " msec");
final long endTime = System.currentTimeMillis();
System.out.println(" rows analysed, execution time is " + (endTime - startTime) + " msec");
ResultSet results = CassandraQuery("SELECT * FROM ProteinLog WHERE JobID = '" + jobid + "';");
if (results.isExhausted())
return null;
- Row row = results.one();
+ Row row1 = results.one();
ResultSet results1 = CassandraQuery("SELECT * FROM ProteinRow WHERE JobID = '" + jobid + "' ALLOW FILTERING;");
if (results1.isExhausted())
return null;
- Row row1 = results1.one();
- JobBean res = new JobBean(row.getString("Protein"), row.getString("JobID"), row.getString("DataBegin"), row.getString("DataEnd"),
- row.getString("ip"), row1.getMap("Predictions", String.class, String.class), row.getString("ProgramName"),
- row.getString("ProgramVersion"));
+ Row row2 = results1.one();
+ String program = row1.getString("ProgramName");
+ String version = row1.getString("ProgramVersion");
+ JobBean res = new JobBean(row1.getString("Protein"), row1.getString("JobID"), row1.getString("DataBegin"),
+ row1.getString("DataEnd"), row1.getString("ip"), row2.getMap("Predictions", String.class, String.class));
+
+ if (null != program && null != version) {
+ res.setProgramName(program);
+ res.setProgramVersion(version);
+ ResultSet results3 = CassandraQuery("SELECT * FROM Programs WHERE Program = '" + program + "' and Version = '" + version
+ + "' ALLOW FILTERING;");
+ if (results3.isExhausted())
+ return null;
+ Row row3 = results3.one();
+ String link = row3.getString("weblink");
+ if (null != link) {
+ res.setProgramLink(link);
+ }
+ }
+
return res;
}
}
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
-import java.text.SimpleDateFormat;
import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import compbio.statistic.CassandraRequester;
import compbio.beans.ExecutionTimeBean;
-import compbio.beans.Total;
import compbio.beans.TotalExecutionTime;
-import compbio.beans.TotalJobsStatisticBean;
-import compbio.cassandra.DataBase;
import compbio.cassandra.DateFormatter;
import compbio.cassandra.readers.CassandraReader;
import compbio.cassandra.readers.ExecutionTimeReader;
return "reports/Job";
}
- /**
- * convert date from the standard long representation (milliseconds from 1
- * Jan 1970) to yyyy/mm/dd
- *
- * @param indate
- * date in milliseconds from 1 Jan 1970
- * @return date in the form of yyyy/mm/dd
- */
- private String DateFormatYYMMDD(long indate) {
- SimpleDateFormat datformat = new SimpleDateFormat("yyyy/MM/dd");
- String dateString = datformat.format(new Date(indate));
- return dateString;
- }
-
}
<div class="panel-body">
<p>Start timestamp : ${result.dateStart}</p>
<p>End timestamp : ${result.dateEnd}</p>
- <c:if test='${jobarchive != null}'>
- <p>Program name : ${result.programName}</p>
- <p>Program version : ${result.programVersion}</p>
+ <c:if test='${result.programName != null}'>
+ <c:choose>
+ <c:when test="${result.programLink != ''}">
+ <p style="font-weight:bold;">
+ Program: <a href="${result.programLink}">${result.programName}</a> (version : ${result.programVersion})
+ </p>
+ </c:when>
+ <c:otherwise>
+ <p style="font-weight:bold;">Program : ${result.programName} (version : ${result.programVersion})</p>
+ </c:otherwise>
+ </c:choose>
</c:if>
<sec:authorize access="hasRole('ROLE_ADMIN')">
<p>IP: <a title="Click to view other jobs" href="${ip_query}?ip=${result.ip}">${result.ip}</a></p>