From 2f7031b7d09dc1b1842ef67b703cb74ee1488de7 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 22 Aug 2017 12:12:42 +0200 Subject: [PATCH] pmgreport: add timespan parameter --- PMG/CLI/pmgqm.pm | 16 +--------------- PMG/CLI/pmgreport.pm | 12 ++++++++++-- PMG/Utils.pm | 26 ++++++++++++++++++++++++++ debian/pmgreport.service | 2 +- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/PMG/CLI/pmgqm.pm b/PMG/CLI/pmgqm.pm index ca19ef2..064b003 100755 --- a/PMG/CLI/pmgqm.pm +++ b/PMG/CLI/pmgqm.pm @@ -171,21 +171,7 @@ __PACKAGE__->register_method ({ my (undef, undef, undef, $mday, $mon, $year) = localtime(time()); my $daystart = timelocal(0, 0, 0, $mday, $mon, $year); - my $start; - my $end; - - if ($timespan eq 'today') { - $start = $daystart; - $end = $start + 86400; - } elsif ($timespan eq 'yesterday') { - $end = $daystart; - $start = $end - 86400; - } elsif ($timespan eq 'week') { - $end = $daystart; - $start = $end - 7*86400; - } else { - die "internal error"; - } + my ($start, $end) = PMG::Utils::lookup_timespan($timespan); my $hostname = PVE::INotify::nodename(); diff --git a/PMG/CLI/pmgreport.pm b/PMG/CLI/pmgreport.pm index 905c188..97faeb9 100644 --- a/PMG/CLI/pmgreport.pm +++ b/PMG/CLI/pmgreport.pm @@ -130,15 +130,23 @@ __PACKAGE__->register_method ({ type => 'string', format => 'email', optional => 1, }, + timespan => { + description => "Select time span for included email statistics.\n\nNOTE: System and cluster performance data is always from current time (when script is run).", + type => 'string', + enum => ['today', 'yesterday'], + default => 'today', + optional => 1, + }, }, }, returns => { type => 'null'}, code => sub { my ($param) = @_; - my $fqdn = PVE::Tools::get_fqdn($nodename); + my $timespan = $param->{timespan} // 'today'; + my ($start, $end) = PMG::Utils::lookup_timespan($timespan); - my $end = time(); # fixme + my $fqdn = PVE::Tools::get_fqdn($nodename); my $vars = { hostname => $nodename, diff --git a/PMG/Utils.pm b/PMG/Utils.pm index 81d2dca..824dd9f 100644 --- a/PMG/Utils.pm +++ b/PMG/Utils.pm @@ -13,6 +13,7 @@ use File::Basename; use MIME::Words; use MIME::Parser; use Time::HiRes qw (gettimeofday); +use Time::Local; use Xdgmime; use Data::Dumper; use Digest::SHA; @@ -1029,4 +1030,29 @@ sub finalize_report { PMG::Utils::reinject_mail ($top, '', [$receiver], undef, $data->{fqdn}); } +sub lookup_timespan { + my ($timespan) = @_; + + my (undef, undef, undef, $mday, $mon, $year) = localtime(time()); + my $daystart = timelocal(0, 0, 0, $mday, $mon, $year); + + my $start; + my $end; + + if ($timespan eq 'today') { + $start = $daystart; + $end = $start + 86400; + } elsif ($timespan eq 'yesterday') { + $end = $daystart; + $start = $end - 86400; + } elsif ($timespan eq 'week') { + $end = $daystart; + $start = $end - 7*86400; + } else { + die "internal error"; + } + + return ($start, $end); +} + 1; diff --git a/debian/pmgreport.service b/debian/pmgreport.service index 5c7b58b..6b05213 100644 --- a/debian/pmgreport.service +++ b/debian/pmgreport.service @@ -4,5 +4,5 @@ ConditionPathExists=/usr/bin/pmgreport [Service] Type=oneshot -ExecStart=/usr/bin/pmgreport --auto +ExecStart=/usr/bin/pmgreport --timespan yesterday --auto