import org.springframework.web.bind.annotation.RequestParam;
import compbio.engine.JobStatus;
-import compbio.cassandra.CassandraReader;
-import compbio.cassandra.DateBean;
+import compbio.beans.DateBean;
+import compbio.beans.TotalJobsStatisticBean;
import compbio.cassandra.DateFormatter;
-import compbio.cassandra.TotalJobsStatisticBean;
-import compbio.statistic.CassandraRequester;
+
+import compbio.beans.Total;
+import compbio.cassandra.readers.CassandraReader;
+import compbio.cassandra.readers.DailyStatisticsReader;
/**
* @author Alexander Sherstnev
public class DailyStatisticsController extends BasicController {
/**
- * form a query page for daily job statistics. The servlet should be
- * available for users and admins only. By defaults the report time range is
- * from the earliest day with jobs to today ("Query for all dates" is
- * ticked). If the user removes the tick the time range is from today - 3
- * days to today. Currently, the input model is empty.
+ * form a query page for daily job statistics.
+ *
+ * The servlet should be available for users and admins only. By defaults
+ * the report time range is from the earliest day with jobs to current date
+ * ("Query for all dates" is ticked). If the user removes the tick the time
+ * range is from today - 3 days to today. Currently, the input model is
+ * empty.
*
* @param model
* MVC model
* the final date for the report (if option is set, date2 =
* today)
* @param option
- * defined whether the whole time range of jobs is reported
- * (null means date1 and date2 are used)
+ * defined whether the whole time range of jobs is reported (null
+ * means date1 and date2 are used)
* @return link to the report JSP page
*/
@RequestMapping(value = "/stat/jobsdaily/results", method = RequestMethod.GET)
model.put("username", getPrincipalName());
Calendar loccal = Calendar.getInstance();
final long startTime = System.currentTimeMillis();
- CassandraRequester cr = new CassandraRequester();
+ DailyStatisticsReader reader = new DailyStatisticsReader();
if (option.equals("AllDates,off")) {
date1 = theEaerlistDate;
date2 = theCurrentDate;
date2 = DateFormatter.DateLongToString(longDate2, formaterYYMMDD);
model.put("date1", date1);
model.put("date2", date2);
- TotalJobsStatisticBean res = cr.countJobs(date1, date2);
+ TotalJobsStatisticBean res = reader.query(longDate1, longDate2);
model.put("result", res);
+ Map<String, Total> results = res.getDateTotal();
+ String csvline = "\'Date\',\'Total\',\'OK\',\'Stopped\',\'Error\',\'Timeout\'%0A";
+ for (Map.Entry<String, Total> entry : results.entrySet()) {
+ csvline += "\'" + entry.getKey() + "\',\'" + entry.getValue().getTotal() + "\',\'" + entry.getValue().getTotalOK() + "\',\'"
+ + entry.getValue().getTotalStopped() + "\',\'" + entry.getValue().getTotalError() + "\',\'"
+ + entry.getValue().getTotalTimeOut() + "\'%0A";
+ }
+ model.put("csvfile", csvline);
model.put("ndays", res.getDateTotal().size());
final long endTime = System.currentTimeMillis();
model.put("timeExecution", (endTime - startTime));
model.put("option", option);
- return "/reportJobStatistics";
+ return "reports/JobStatistics";
}
/**
final long startTime = System.currentTimeMillis();
String realdate;
+ long thetime = 0;
try {
- long thetime = formaterYYMMDD.parse(date).getTime();
+ thetime = formaterYYMMDD.parse(date).getTime();
if (thetime < 0) {
realdate = date;
} else {
}
} catch (ParseException e) {
realdate = date;
+ thetime = formaterDDMMYY.parse(realdate).getTime();
}
- if (null == JobStatus.getJobStatus(status)) {
+ if (null == JobStatus.getJobStatus(status))
return "support/Notimplemented";
- }
- CassandraRequester cr = new CassandraRequester();
+
+ DailyStatisticsReader reader = new DailyStatisticsReader();
// IMPORTANT: input should be suppied in the format: DD/MM/YYYY
- DateBean r = cr.readJobByDay(realdate, JobStatus.getJobStatus(status));
+ DateBean r = reader.readJobByDay(thetime, realdate, JobStatus.getJobStatus(status));
model.put("results", r);
if (r != null)
model.put("njobs", r.getJobidAndSeq().size());
model.put("status", status);
final long endTime = System.currentTimeMillis();
model.put("timeExecution", (endTime - startTime));
- return "/reportJobStatisticsOneDay";
+ return "reports/JobStatisticsOneDay";
}
}