1 package compbio.controllers;
3 import java.util.Calendar;
6 import org.springframework.stereotype.Controller;
7 import org.springframework.web.bind.annotation.RequestMapping;
8 import org.springframework.web.bind.annotation.RequestMethod;
9 import org.springframework.web.bind.annotation.RequestParam;
11 import compbio.cassandra.CassandraRemover;
12 import compbio.cassandra.DateFormatter;
15 * MVC controller for direct interaction with the internal DB
16 * A really dangerous controller since it can change data in the DB
17 * Should be available to administrators only
19 * @author Alexander Sherstnev
20 * @author Natasha Sherstneva
26 public class DatabaseController extends BasicController {
28 @RequestMapping(value = "/database/remove", method = RequestMethod.GET)
29 public String initRemoveForm(Map<String, Object> model) {
30 model.put("username", getPrincipalName());
31 Calendar cal = Calendar.getInstance();
32 String date2 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE);
33 cal.add(Calendar.DATE, -3);
34 String date1 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DATE);
35 String jobid = "jp_NzBOJKo";
37 model.put("samplejobid", jobid);
38 model.put("date1", date1);
39 model.put("date2", date2);
40 model.put("sampleip", "127.0.0.1");
41 model.put("sampleseq", "ATA");
42 return "query/RemoveJobs";
45 @RequestMapping(value = "/database/state", method = RequestMethod.GET)
46 public String initDBStatRequest(Map<String, Object> model) {
47 model.put("username", getPrincipalName());
48 // return "queryDBState";
49 return "support/Denied";
52 @RequestMapping(value = "/database/remove/go", method = RequestMethod.GET)
53 public String findIPwithCounter(@RequestParam("byId") String byId, @RequestParam("id") String jobid,
54 @RequestParam("byDate") String byDate, @RequestParam("date1") String date1, @RequestParam("date2") String date2,
55 @RequestParam("byIp") String byIp, @RequestParam("ip") String ip, @RequestParam("bySequence") String bySequence,
56 @RequestParam("seq") String sequence, Map<String, Object> model) {
57 model.put("username", getPrincipalName());
59 model.put("byDate", byDate);
60 model.put("date1", date1);
61 model.put("date2", date2);
63 model.put("byId", byId);
64 model.put("id", jobid);
66 model.put("byIp", byIp);
69 model.put("bySequence", bySequence);
70 model.put("seq", sequence);
72 CassandraRemover cr = new CassandraRemover();
77 if (byId.equals("on,off"))
78 njobs1 = cr.RemoveJobById(jobid);
79 if (byDate.equals("on,off")) {
80 long longDate1 = DateFormatter.DateParsing(date1, formaterYYMMDD) / 1000;
81 long longDate2 = DateFormatter.DateParsing(date2, formaterYYMMDD) / 1000;
82 int timerange = (int)(longDate2 - longDate1) /24 / 3600 + 1;
83 model.put("ndays", timerange);
84 njobs2 = cr.RemoveJobByDate(date1, date2);
86 if (byIp.equals("on,off"))
87 njobs3 = cr.RemoveJobByIp(ip);
88 if (bySequence.equals("on,off"))
89 njobs4 = cr.RemoveJobBySequence(sequence);
90 model.put("njobs", njobs1 + njobs2 + njobs3 + njobs4);
91 model.put("njobsbyDate", njobs2);
92 model.put("njobsbyIP", njobs3);
93 model.put("njobsbySeq", njobs4);
95 return "reports/RemoveJobs";