From 1128ff389aa843f434814b4a67fbc3b683683d12 Mon Sep 17 00:00:00 2001 From: Natasha Sherstneva Date: Thu, 21 Nov 2013 09:35:04 +0000 Subject: [PATCH 1/1] PROT-4 fixed remover --- datadb/compbio/cassandra/CassandraReader.java | 1 - datadb/compbio/cassandra/CassandraRemover.java | 115 ++++++++++++++------- datadb/compbio/cassandra/CassandraWriter.java | 2 - server/compbio/listeners/ServletDeleteRecord.java | 15 +-- website/ReportAboutRemove.jsp | 12 +++ website/ReportJobsByDate.jsp | 2 +- 6 files changed, 99 insertions(+), 48 deletions(-) create mode 100644 website/ReportAboutRemove.jsp diff --git a/datadb/compbio/cassandra/CassandraReader.java b/datadb/compbio/cassandra/CassandraReader.java index f4ceee5..250c705 100644 --- a/datadb/compbio/cassandra/CassandraReader.java +++ b/datadb/compbio/cassandra/CassandraReader.java @@ -146,7 +146,6 @@ public class CassandraReader { for (Row r : rows) { String protein = r.getString("Protein"); String id = r.getString("JobID"); - System.out.println(id + ", " + protein); if (res.containsKey(protein)) res.put(protein, res.get(protein) + 1); else diff --git a/datadb/compbio/cassandra/CassandraRemover.java b/datadb/compbio/cassandra/CassandraRemover.java index 8404663..d7ebd87 100644 --- a/datadb/compbio/cassandra/CassandraRemover.java +++ b/datadb/compbio/cassandra/CassandraRemover.java @@ -30,54 +30,72 @@ public class CassandraRemover { /* * delete a record from CF for current jobId */ - private void RemoveJob(String jobid, long date) { + private void RemoveJob(String jobid, long date) { + String status = FindStatus(jobid); String com0 = "DELETE FROM ProteinLog WHERE JobID = '" + jobid + "';"; System.out.println("Command: " + com0); session.execute(com0); - String com1 = "DELETE FROM ProteinRow WHERE JobID = '" + jobid + "';"; - System.out.println("Command: " + com1); - session.execute(com1); - String com2 = "DELETE FROM ProteinData WHERE JobID = '" + jobid + "' AND jobtime = " + date + ";"; - System.out.println("Command: " + com2); - session.execute(com2); String com3 = "UPDATE jpredarchive SET finalstatus = 'DELETED' WHERE JobID = '" + jobid + "' ;"; System.out.println("Command: " + com3); session.execute(com3); - String com = "SELECT total FROM JobDateInfo WHERE jobday = " + date + ";"; + String com = "SELECT * FROM JobDateInfo WHERE jobday = " + date + ";"; System.out.println("Command: " + com); ResultSet results = session.execute(com); - long njobs = results.one().getLong("total"); - System.out.println("njobs: " + njobs); - String com4 = "INSERT INTO JobDateInfo " + "(jobday, Total)" + " VALUES (" + date + "," + (njobs -1) + ");"; + Row row = results.one(); + long njobs = row.getLong("Total") -1 ; + if (status.equals("OK")) { + long njobsOK = row.getLong("TotalOK") - 1; + String com1 = "DELETE FROM ProteinRow WHERE JobID = '" + jobid + "';"; + System.out.println("Command: " + com1); + session.execute(com1); + String com2 = "DELETE FROM ProteinData WHERE JobID = '" + jobid + "' AND jobtime = " + date + ";"; + System.out.println("Command: " + com2); + session.execute(com2); + UpdateJobDateInfo(date, "TotalOK", njobsOK, njobs); + } else { + String com6 = "DELETE FROM FailLog WHERE JobID = '" + jobid + "' AND jobtime = " + date + ";"; + System.out.println("Command: " + com6); + session.execute(com6); + if (status.equals("STOPPED")) { + long njobsStopped = row.getLong("TotalStopped") - 1; + UpdateJobDateInfo(date, "TotalStopped", njobsStopped, njobs); + } else if (status.equals("ERROR")) { + long njobsError = row.getLong("TotalError") - 1; + UpdateJobDateInfo(date, "TotalError", njobsError, njobs); + } else if (status.equals("TIMEDOUT")) { + long njobsTimeOut = row.getLong("TotalTimeOut") - 1; + UpdateJobDateInfo(date, "TotalTimeOut", njobsTimeOut, njobs); + } + } + System.out.println("Remove jobs: " + jobid); + } + + private void UpdateJobDateInfo(long date, String ColumnName, long totalcol, long total) { + String com4 = "UPDATE JobDateInfo SET " + ColumnName + " = " + totalcol + ", Total = " + total + " WHERE jobday = " + date + ";"; System.out.println("Command: " + com4); session.execute(com4); - System.out.println("Remove jobs: " + jobid); } - public void RemoveJobById (String jobid) { + public int RemoveJobById (String jobid) { if (jobid == null) - return; + return 0; Long date = FindDate(jobid); - if (date == null) - return; RemoveJob(jobid, date); + return 1; } - public void RemoveJobByDate (String date1, String date2) { - System.out.println("Start " + date1 + ", " + date2); + public int RemoveJobByDate (String date1, String date2) { + int numremover = 0; if (date1 == null || date2 == null) - return; + return 0; Long dateBegin = convertDate(date1); Long dateEnd = convertDate(date2); - System.out.println("Date to long done!: "); - if (dateBegin == null || dateEnd == null) - return; Calendar start = Calendar.getInstance(); start.setTime(new Date(dateBegin)); Calendar end = Calendar.getInstance(); end.setTime(new Date(dateEnd)); - System.out.println("Date to cal done!: "); for (Date date = start.getTime(); !start.after(end); start.add(Calendar.DATE, 1), date = start.getTime()) { + System.out.println("--------------------------------------------------------------------: "); String com = "SELECT JobID FROM ProteinData WHERE jobtime = " + date.getTime() + ";"; System.out.println("Command: " + com); ResultSet results = session.execute(com); @@ -85,19 +103,37 @@ public class CassandraRemover { List rows = results.all(); for (Row r : rows) { String jobid = r.getString("JobID"); - if (jobid != null) + if (jobid != null) { RemoveJob(jobid, date.getTime()); + numremover++; + } + } + } + String comm = "SELECT JobID FROM FailLog WHERE jobtime = " + date.getTime() + ";"; + System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^: " + comm); + ResultSet resultsfail = session.execute(comm); + System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^: " + comm); + if (!resultsfail.isExhausted()) { + List rows = resultsfail.all(); + for (Row r : rows) { + String jobid = r.getString("JobID"); + System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^: " + jobid); + if (jobid != null) { + RemoveJob(jobid, date.getTime()); + numremover++; + } } } } + return numremover; } - public void RemoveJobByIp (String ip) { + public int RemoveJobByIp (String ip) { + int numremover = 0; if (ip == null) - return; + return 0; String com = "SELECT databegin, JobID FROM ProteinLog WHERE ip = '" + ip + "';"; - System.out.println("Command: " + com); ResultSet results = session.execute(com); if (!results.isExhausted()) { List rows = results.all(); @@ -107,40 +143,45 @@ public class CassandraRemover { if (date == null || jobid == null) continue; RemoveJob(jobid, date); + numremover++; } } + return numremover; } - public void RemoveJobBySequence (String seq) { + public int RemoveJobBySequence (String seq) { + int numremover = 0; if (seq == null) - return; + return 0; String com = "SELECT JobID FROM ProteinRow WHERE Protein = '" + seq + "';"; - System.out.println("Command: " + com); ResultSet results = session.execute(com); if (!results.isExhausted()) { List rows = results.all(); for (Row r : rows) { String jobid = r.getString("JobID"); - if (jobid == null) - continue; Long date = FindDate(jobid); - if (date == null) - continue; RemoveJob(jobid, date); + numremover++; } } + return numremover; } private Long FindDate(String jobid) { String com = "SELECT databegin FROM ProteinLog WHERE JobID = '" + jobid + "';"; - System.out.println("Command: " + com); ResultSet results = session.execute(com); - if (results.isExhausted()) - return null; Long date = convertDate(results.one().getString("databegin")); return date; } + private String FindStatus(String jobid) { + String com = "SELECT FinalStatus FROM ProteinLog WHERE JobID = '" + jobid + "';"; + System.out.println("Command: " + com); + ResultSet results = session.execute(com); + String status = results.one().getString("FinalStatus"); + System.out.println("*****status: " + status); + return status; + } protected long convertDate (String d) { try { diff --git a/datadb/compbio/cassandra/CassandraWriter.java b/datadb/compbio/cassandra/CassandraWriter.java index 521f98c..99f0161 100644 --- a/datadb/compbio/cassandra/CassandraWriter.java +++ b/datadb/compbio/cassandra/CassandraWriter.java @@ -94,7 +94,6 @@ public class CassandraWriter { + job.getStartingDate() + ",'" + id + "'," + job.getExecutionTime() + ",'" + ip + "', '" + finalstatus + "');"; session.execute(com5); - System.out.println(com5); if (finalstatus.equals("TIMEDOUT")) njobsTimeOut = 1; else if (finalstatus.equals("JPREDERROR")) @@ -130,7 +129,6 @@ public class CassandraWriter { } String com = "INSERT INTO JobDateInfo " + "(jobday, Total, TotalOK, TotalStopped, TotalError, TotalTimeOut)" + " VALUES (" + job.getStartingDate() + "," + njobs + "," + njobsOk + "," + njobsStop + "," + njobsError + "," + njobsTimeOut + ");"; - System.out.println(com); session.execute(com); return 1; } diff --git a/server/compbio/listeners/ServletDeleteRecord.java b/server/compbio/listeners/ServletDeleteRecord.java index 49107bc..bd288fb 100644 --- a/server/compbio/listeners/ServletDeleteRecord.java +++ b/server/compbio/listeners/ServletDeleteRecord.java @@ -22,6 +22,7 @@ public class ServletDeleteRecord extends HttpServlet { */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { CassandraRemover cr = new CassandraRemover(); + int numberRemover = 0; String flagId = request.getParameter("byId"); String jobId = request.getParameter("id"); String flagDate = request.getParameter("byDate"); @@ -32,16 +33,16 @@ public class ServletDeleteRecord extends HttpServlet { String flagSeq = request.getParameter("bySequence"); String seq = request.getParameter("seq"); if (flagId != null) - cr.RemoveJobById(jobId); + numberRemover = cr.RemoveJobById(jobId); if (flagDate != null) - cr.RemoveJobByDate(date1, date2); + numberRemover = cr.RemoveJobByDate(date1, date2); if (flagIp != null) - cr.RemoveJobByIp(ip); + numberRemover = cr.RemoveJobByIp(ip); if (flagSeq != null) - cr.RemoveJobBySequence(seq); -// request.setAttribute("IdJob", id); -// RequestDispatcher rd = request.getRequestDispatcher("/ReportLogInfo.jsp"); -// rd.forward(request, response); + numberRemover = cr.RemoveJobBySequence(seq); + request.setAttribute("result", numberRemover); + RequestDispatcher rd = request.getRequestDispatcher("/ReportAboutRemove.jsp"); + rd.forward(request, response); } /** diff --git a/website/ReportAboutRemove.jsp b/website/ReportAboutRemove.jsp new file mode 100644 index 0000000..6789b06 --- /dev/null +++ b/website/ReportAboutRemove.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Proteocache removed + + +

ProteoCache removed : ${result} jobs

+ + \ No newline at end of file diff --git a/website/ReportJobsByDate.jsp b/website/ReportJobsByDate.jsp index 5192e37..f583510 100644 --- a/website/ReportJobsByDate.jsp +++ b/website/ReportJobsByDate.jsp @@ -65,7 +65,7 @@ ${res.date} - + ${res.total} ${res.totalOK} ${res.totalStopped} ${res.totalError} -- 1.7.10.2