]> git.proxmox.com Git - pmg-api.git/blame - PMG/CLI/pmgversion.pm
Drop sa-awl output from pmg-system-report
[pmg-api.git] / PMG / CLI / pmgversion.pm
CommitLineData
89fdd3ba 1package PMG::CLI::pmgversion;
ac60ead2
DM
2
3use strict;
4use warnings;
89fdd3ba
DM
5use POSIX qw();
6
7use PVE::SafeSyslog;
8use PVE::Tools qw(extract_param);
9use PVE::INotify;
10use PVE::CLIHandler;
11
12use PMG::RESTEnvironment;
ac60ead2
DM
13use PMG::pmgcfg;
14use PMG::API2::APT;
15
89fdd3ba
DM
16use base qw(PVE::CLIHandler);
17
18sub setup_environment {
19 PMG::RESTEnvironment->setup_default_cli_env();
ac60ead2
DM
20}
21
89fdd3ba
DM
22my $print_status = sub {
23 my ($pkginfo) = @_;
ac60ead2 24
89fdd3ba 25 my $pkg = $pkginfo->{Package};
ac60ead2 26
ac60ead2
DM
27 my $version = "not correctly installed";
28 if ($pkginfo->{OldVersion} && $pkginfo->{CurrentState} eq 'Installed') {
29 $version = $pkginfo->{OldVersion};
30 }
31
8730dfca
DM
32 if ($pkginfo->{RunningKernel} && $pkginfo->{ManagerVersion}) {
33 print "$pkg: $version (API: $pkginfo->{ManagerVersion}, running kernel: $pkginfo->{RunningKernel})\n";
ac60ead2
DM
34 } else {
35 print "$pkg: $version\n";
36 }
89fdd3ba
DM
37};
38
39__PACKAGE__->register_method ({
40 name => 'pmgversion',
41 path => 'pmgversion',
42 method => 'GET',
43 description => "Print version information for Proxmox Mail Gateway packages.",
44 parameters => {
45 additionalProperties => 0,
46 properties => {
47 verbose => {
48 type => 'boolean',
49 description => "List version details for important packages.",
50 optional => 1,
51 default => 0,
52 },
53 }
54 },
55 returns => { type => 'null'},
56 code => sub {
57 my ($param) = @_;
58
59 my $pkgarray = PMG::API2::APT->versions({ node => 'localhost'});
60
61 my $ver = PMG::pmgcfg::package() . '/' . PMG::pmgcfg::version_text();
62 my (undef, undef, $kver) = POSIX::uname();
63
64 if (!$param->{verbose}) {
65 print "$ver (running kernel: $kver)\n";
66 return undef;
67 }
68
69 foreach my $pkg (@$pkgarray) {
70 $print_status->($pkg);
71 }
72
73 return undef;
74
75 }});
76
77our $cmddef = [ __PACKAGE__, 'pmgversion', []];
78
791;