pmgreport: add timespan parameter

This commit is contained in:
Dietmar Maurer 2017-08-22 12:12:42 +02:00
parent 2e2d48305c
commit 2f7031b7d0
4 changed files with 38 additions and 18 deletions

View File

@ -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();

View File

@ -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,

View File

@ -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;

View File

@ -4,5 +4,5 @@ ConditionPathExists=/usr/bin/pmgreport
[Service]
Type=oneshot
ExecStart=/usr/bin/pmgreport --auto
ExecStart=/usr/bin/pmgreport --timespan yesterday --auto