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 { {} });
17 sub _collect_from_data {
18 my ($self, $id, $hostname, $packages, $upgrade, $data) = @_;
19 for my $package (keys %$packages) {
20 $self->_known_package->{$package}++;
22 $self->_host_package->{$id} = $packages;
23 $self->_host_upgrade->{$id} = $upgrade;
30 { key => 'package', label => 'Package' },
31 { key => 'version', label => 'Version' },
32 { key => 'upgrade', label => 'Upgrade' },
34 my $host_package = $self->_host_package;
35 my $host_upgrade = $self->_host_upgrade;
36 my @known_packages = sort keys %{$self->_known_package};
41 title => "Packages on $remote",
42 id => ['packages-apt-by-remote', $remote],
43 meta => { remote => $remote },
46 my $version = $host_package->{$remote}{$package}{version};
47 my $upgrade = $self->_clear_upgrade(
48 $host_upgrade->{$remote}{$package},
53 defined($version) ? (version => $version) : (),
54 defined($upgrade) ? (upgrade => $upgrade) : (),
58 } sort keys %{$self->_host_package};
62 System::Introspector::Report::Builder::Packages::Apt::API