X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=server%2Fcompbio%2Fcontrollers%2FIPDataController.java;h=a9d25b9b9e8cb4c1e39817d83df752601af30bbf;hb=HEAD;hp=5f3f5e1afb4299d8f46a85a96be6b8399e08e191;hpb=c441a23b5f24da06199b9b5b830010e5a5833ab8;p=proteocache.git diff --git a/server/compbio/controllers/IPDataController.java b/server/compbio/controllers/IPDataController.java index 5f3f5e1..a9d25b9 100644 --- a/server/compbio/controllers/IPDataController.java +++ b/server/compbio/controllers/IPDataController.java @@ -8,32 +8,57 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; -import compbio.cassandra.TotalByCounterBean; -import compbio.cassandra.UserBean; -import compbio.statistic.CassandraRequester; +import compbio.beans.TotalByCounterBean; +import compbio.beans.UserBean; +import compbio.cassandra.readers.CassandraReader; +import compbio.cassandra.readers.IpReader; +import compbio.cassandra.readers.ReaderByCounter; /** + * The controller + * * @author Alexander Sherstnev * @author Natasha Sherstneva + * @version 1.0 */ @Controller public class IPDataController extends BasicController { - + /** + * default minimal jobs to consider a user "heavy user" + */ + private int minimalJobsFromIP = 5; + + /** + * for initial page for request "heavy users" + * + */ @RequestMapping(value = "/admin/ip/counts/query", method = RequestMethod.GET) public String initStatisticsForm(Map model) { model.put("username", getPrincipalName()); - model.put("value", 5); + model.put("value", minimalJobsFromIP); return "query/IPStatistics"; } + /** + * form query page for requesting a single IP + * + * @param model - MVC abstract model + * @return + */ @RequestMapping(value = "/admin/ip/query", method = RequestMethod.GET) public String initOneIPForm(Map model) { model.put("username", getPrincipalName()); - CassandraRequester cr = new CassandraRequester(); + CassandraReader cr = new CassandraReader(); model.put("value", cr.getExample("ip")); return "query/IP"; } + /** + * Form output model with statistics on "heavy users" + * @param counter - the number of jobs for requested "heavy users" + * @param model - abstract MVC model + * @return + */ @RequestMapping(value = "/admin/ip/counts/results", method = RequestMethod.GET) public String findIPwithCounter(@RequestParam("JobCounter") String counter, Map model) { model.put("username", getPrincipalName()); @@ -59,25 +84,32 @@ public class IPDataController extends BasicController { } final long startTime = System.currentTimeMillis(); - CassandraRequester cr = new CassandraRequester(); - List r = cr.readIpByCounter(realcounter); + ReaderByCounter reader = new ReaderByCounter(); + List r = reader.readIpByCounter(realcounter); model.put("results", r); model.put("njobs", 0); + String csvline = ""; if (null != r) { model.put("njobs", r.size()); + csvline = "\'Job%20 count\', \'IP\'%0A"; + } + // form line for CSV file + for (TotalByCounterBean b : r) { + csvline += "\'" + b.getTotaljobs() + "\',\'" + b.getName() + "\'%0A"; } + model.put("csvfile", csvline); final long endTime = System.currentTimeMillis(); model.put("timeExecution", (endTime - startTime)); model.put("counter", realcounter); - return "reportIPstatistics"; + return "reports/IPstatistics"; } @RequestMapping(value = "/admin/ip/results", method = RequestMethod.GET) public String findIP(@RequestParam("ip") String ip, Map model) { model.put("username", getPrincipalName()); final long startTime = System.currentTimeMillis(); - CassandraRequester cr = new CassandraRequester(); - UserBean r = cr.readIp(ip); + IpReader reader = new IpReader(); + UserBean r = reader.readIp(ip); model.put("results", r); model.put("njobs", 0); if (null != r) { @@ -86,6 +118,6 @@ public class IPDataController extends BasicController { final long endTime = System.currentTimeMillis(); model.put("timeExecution", (endTime - startTime)); model.put("ip", ip); - return "reportIP"; + return "reports/IP"; } }