]>
git.proxmox.com Git - pmg-api.git/blob - PMG/CLI/pmgreport.pm
1 package PMG
::CLI
::pmgreport
;
6 use POSIX
qw(strftime);
13 use PMG
::RESTEnvironment
;
16 use base
qw(PVE::CLIHandler);
18 my $nodename = PVE
::INotify
::nodename
();
20 sub setup_environment
{
21 PMG
::RESTEnvironment-
>setup_default_cli_env();
24 my $get_system_table_data = sub {
26 my $ni = PMG
::API2
::NodeInfo-
>status({ node
=> $nodename });
30 push @$data, { text
=> 'Hostname', value
=> $nodename };
32 my $uptime = $ni->{uptime
} ? PMG
::Utils
::format_uptime
($ni->{uptime
}) : '-';
34 push @$data, { text
=> 'Uptime', value
=> $uptime };
36 push @$data, { text
=> 'Version', value
=> $ni->{pmgversion
} };
39 if (my $d = $ni->{loadavg
}) {
42 push @$data, { text
=> 'Load', value
=> $loadavg15 };
45 if (my $d = $ni->{memory
}) {
46 $mem = sprintf("%.2f%%", $d->{used
}*100/$d->{total
});
48 push @$data, { text
=> 'Memory', value
=> $mem };
51 if (my $d = $ni->{rootfs
}) {
52 $disk = sprintf("%.2f%%", $d->{used
}*100/$d->{total
});
54 push @$data, { text
=> 'Disk', value
=> $disk };
60 __PACKAGE__-
>register_method ({
64 description
=> "Generate and send daily system report email.",
66 additionalProperties
=> 0,
69 returns
=> { type
=> 'null'},
73 my $fqdn = PVE
::Tools
::get_fqdn
($nodename);
75 my $end = time(); # fixme
78 hostname
=> $nodename,
80 date
=> strftime
("%F", localtime($end - 1)),
83 $vars->{system} = $get_system_table_data->();
85 my $tt = PMG
::Config
::get_template_toolkit
();
87 my $cfg = PMG
::Config-
>new();
88 my $email = $cfg->get ('admin', 'email');
90 if (!defined($email)) {
94 my $mailfrom = "Proxmox Mail Gateway <postmaster>";
95 PMG
::Utils
::finalize_report
($tt, 'pmgreport.tt', $vars, $mailfrom, $email, $param->{debug
});
100 our $cmddef = [ __PACKAGE__
, 'pmgreport', [], undef ];