1 package System::Introspector::Report::Builder::Packages::Apt::ByHost;
4 extends 'System::Introspector::Report::Builder';
6 has _known_package => (is => 'ro', default => sub { {} });
7 has _host_package => (is => 'ro', default => sub { {} });
8 has _host_upgrade => (is => 'ro', default => sub { {} });
9 has include_uninstalled => (is => 'ro');
18 sub _collect_from_data {
19 my ($self, $id, $hostname, $packages, $upgrade, $data) = @_;
20 for my $package (keys %$packages) {
21 $self->_known_package->{$package}++;
23 $self->_host_package->{$id} = $packages;
24 $self->_host_upgrade->{$id} = $upgrade;
31 { key => 'package', label => 'Package' },
32 { key => 'version', label => 'Version' },
33 { key => 'upgrade', label => 'Upgrade' },
35 my $host_package = $self->_host_package;
36 my $host_upgrade = $self->_host_upgrade;
37 my @known_packages = sort keys %{$self->_known_package};
38 my $inc_uninstalled = $self->include_uninstalled;
43 title => "Packages on $remote",
44 id => ['packages-apt-by-remote', $remote],
45 rowid => [qw( package )],
46 meta => { remote => $remote },
49 my $version = $host_package->{$remote}{$package}{version};
50 my $upgrade = $self->_clear_upgrade(
51 $host_upgrade->{$remote}{$package},
56 defined($version) ? (version => $version) : (),
57 defined($upgrade) ? (upgrade => $upgrade) : (),
62 : defined($host_package->{$remote}{$_});
65 } sort keys %{$self->_host_package};
69 System::Introspector::Report::Builder::Packages::Apt::API