Module for extracting and transmitting data to client JSON RPC(mod_perl) user/dmitriye/dashboard
authorDmitry Nechai <nechai.dmitry@gmail.com>
Thu, 27 Jun 2013 10:56:04 +0000 (13:56 +0300)
committerDmitry Nechai <nechai.dmitry@gmail.com>
Thu, 27 Jun 2013 10:58:24 +0000 (13:58 +0300)
Open-ILS/src/perlmods/lib/OpenILS/Dashboard/ReqHandler.pm [new file with mode: 0644]

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Dashboard/ReqHandler.pm b/Open-ILS/src/perlmods/lib/OpenILS/Dashboard/ReqHandler.pm
new file mode 100644 (file)
index 0000000..7e07edb
--- /dev/null
@@ -0,0 +1,50 @@
+package OpenILS::Dashboard::ReqHandler;
+ use 5.006;
+ use strict;
+ use base qw(JSON::RPC::Legacy::Procedure); # Perl 5.6 or more than
+ use Storable qw(retrieve);
+ my %result;
+ my $saved_data = '/tmp/janus_data';
+ sub getCPU : Public { 
+     getData('cpu');
+     return \%result;
+ }
+ sub getMemoryUsage : Public { 
+     getData('mem');
+     return \%result;
+ }
+ sub getCurrenLoad : Public { 
+     getData('load');
+     return \%result;
+ }
+ sub getDiskSpace : Public { 
+     getData('disk');
+     return \%result;
+ }
+ sub getTotalProcesses : Public { 
+     getData('proc');
+     return \%result;
+ }
+ sub getData : Private {
+  my $perf_data_ref;
+  if (-e $saved_data){ #if exists file with data
+    $perf_data_ref = retrieve($saved_data);    #retrieve data
+  } else {
+    die "File with data does not exist!";
+  }
+  my $type = shift;    #get type of requested value
+  %result = ();                #clear result hash
+  foreach my $host (keys $perf_data_ref){
+    $result{$host} = $perf_data_ref->{$host}{$type};   #add value to result hash
+  }
+ }
+
+1;
\ No newline at end of file