1 package compbio.controllers;
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.beans.TotalByCounterBean;
12 import compbio.beans.UserBean;
13 import compbio.cassandra.readers.IpReader;
14 import compbio.cassandra.readers.ReaderByCounter;
15 import compbio.statistic.CassandraRequester;
18 * @author Alexander Sherstnev
19 * @author Natasha Sherstneva
22 public class IPDataController extends BasicController {
24 @RequestMapping(value = "/admin/ip/counts/query", method = RequestMethod.GET)
25 public String initStatisticsForm(Map<String, Object> model) {
26 model.put("username", getPrincipalName());
27 model.put("value", 5);
28 return "query/IPStatistics";
31 @RequestMapping(value = "/admin/ip/query", method = RequestMethod.GET)
32 public String initOneIPForm(Map<String, Object> model) {
33 model.put("username", getPrincipalName());
34 CassandraRequester cr = new CassandraRequester();
35 model.put("value", cr.getExample("ip"));
39 @RequestMapping(value = "/admin/ip/counts/results", method = RequestMethod.GET)
40 public String findIPwithCounter(@RequestParam("JobCounter") String counter, Map<String, Object> model) {
41 model.put("username", getPrincipalName());
42 if (counter.equals("")) {
43 model.put("error", "The value must not be empty");
44 model.put("value", counter);
45 return "query/IPStatistics";
50 realcounter = Integer.parseInt(counter.trim());
51 } catch (NumberFormatException e) {
52 model.put("error", "The value must be an integer number");
53 model.put("value", counter);
54 return "query/IPStatistics";
57 if (realcounter < 1) {
58 model.put("error", "The value must be greater than 0");
59 model.put("value", counter);
60 return "query/IPStatistics";
63 final long startTime = System.currentTimeMillis();
64 ReaderByCounter reader = new ReaderByCounter();
65 List<TotalByCounterBean> r = reader.readIpByCounter(realcounter);
66 model.put("results", r);
67 model.put("njobs", 0);
70 model.put("njobs", r.size());
71 csvline = "\'Job%20 count\', \'IP\'%0A";
73 // form line for CSV file
74 for (TotalByCounterBean b : r) {
75 csvline += "\'" + b.getTotaljobs() + "\',\'" + b.getName() + "\'%0A";
77 model.put("csvfile", csvline);
78 final long endTime = System.currentTimeMillis();
79 model.put("timeExecution", (endTime - startTime));
80 model.put("counter", realcounter);
81 return "reports/IPstatistics";
84 @RequestMapping(value = "/admin/ip/results", method = RequestMethod.GET)
85 public String findIP(@RequestParam("ip") String ip, Map<String, Object> model) {
86 model.put("username", getPrincipalName());
87 final long startTime = System.currentTimeMillis();
88 IpReader reader = new IpReader();
89 UserBean r = reader.readIp(ip);
90 model.put("results", r);
91 model.put("njobs", 0);
93 model.put("njobs", r.getMainInfo().size());
95 final long endTime = System.currentTimeMillis();
96 model.put("timeExecution", (endTime - startTime));