mirror of
https://git.proxmox.com/git/pmg-api
synced 2025-10-05 02:12:51 +00:00
pmgreport: add timespan parameter
This commit is contained in:
parent
2e2d48305c
commit
2f7031b7d0
@ -171,21 +171,7 @@ __PACKAGE__->register_method ({
|
|||||||
my (undef, undef, undef, $mday, $mon, $year) = localtime(time());
|
my (undef, undef, undef, $mday, $mon, $year) = localtime(time());
|
||||||
my $daystart = timelocal(0, 0, 0, $mday, $mon, $year);
|
my $daystart = timelocal(0, 0, 0, $mday, $mon, $year);
|
||||||
|
|
||||||
my $start;
|
my ($start, $end) = PMG::Utils::lookup_timespan($timespan);
|
||||||
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 $hostname = PVE::INotify::nodename();
|
my $hostname = PVE::INotify::nodename();
|
||||||
|
|
||||||
|
@ -130,15 +130,23 @@ __PACKAGE__->register_method ({
|
|||||||
type => 'string', format => 'email',
|
type => 'string', format => 'email',
|
||||||
optional => 1,
|
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'},
|
returns => { type => 'null'},
|
||||||
code => sub {
|
code => sub {
|
||||||
my ($param) = @_;
|
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 = {
|
my $vars = {
|
||||||
hostname => $nodename,
|
hostname => $nodename,
|
||||||
|
26
PMG/Utils.pm
26
PMG/Utils.pm
@ -13,6 +13,7 @@ use File::Basename;
|
|||||||
use MIME::Words;
|
use MIME::Words;
|
||||||
use MIME::Parser;
|
use MIME::Parser;
|
||||||
use Time::HiRes qw (gettimeofday);
|
use Time::HiRes qw (gettimeofday);
|
||||||
|
use Time::Local;
|
||||||
use Xdgmime;
|
use Xdgmime;
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
use Digest::SHA;
|
use Digest::SHA;
|
||||||
@ -1029,4 +1030,29 @@ sub finalize_report {
|
|||||||
PMG::Utils::reinject_mail ($top, '', [$receiver], undef, $data->{fqdn});
|
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;
|
1;
|
||||||
|
2
debian/pmgreport.service
vendored
2
debian/pmgreport.service
vendored
@ -4,5 +4,5 @@ ConditionPathExists=/usr/bin/pmgreport
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
ExecStart=/usr/bin/pmgreport --auto
|
ExecStart=/usr/bin/pmgreport --timespan yesterday --auto
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user