1 package System::Introspector::Report::Builder::Packages::Apt::ByPackage;
4 extends 'System::Introspector::Report::Builder';
6 has _host_by_remote => (is => 'ro', default => sub { {} });
7 has _host_data => (is => 'ro', default => sub { {} });
16 sub _collect_from_data {
17 my ($self, $id, $hostname, $packages, $upgrades) = @_;
18 $self->_host_by_remote->{$id} = $hostname;
19 for my $package (keys %$packages) {
20 my $version = $packages->{$package}{version};
21 my $upgrade = $self->_clear_upgrade($upgrades->{$package}, $version);
22 $self->_host_data->{$package}{$id} = {
24 defined($upgrade) ? (upgrade => $upgrade) : (),
32 { key => 'hostname', label => 'Hostname' },
33 { key => 'remote', label => 'Remote Host' },
34 { key => 'version', label => 'Version' },
35 { key => 'upgrade', label => 'Upgrade' },
37 my $data = $self->_host_data;
38 my $hbr = $self->_host_by_remote;
41 my $hosts = $data->{$package};
44 title => "$package Installations",
45 id => ['packages-apt-by-package', $package],
46 rowid => [qw( remote )],
47 meta => { package => $package },
52 hostname => $hbr->{$remote},
55 } sort keys %$hosts ],
61 System::Introspector::Report::Builder::Packages::Apt::API