Sha256: 5d8aa5c2677ba91a4ed27d5e5e98d0b6963dde84657ead4b759afc46642faee2
Contents?: true
Size: 964 Bytes
Versions: 35
Compression:
Stored size: 964 Bytes
Contents
module Katello class HostPackagePresenter < SimpleDelegator attr_accessor :installed_package, :upgradable_versions, :rpm_id def initialize(installed_package, upgradable_versions, rpm_id) @installed_package = installed_package @upgradable_versions = upgradable_versions @rpm_id = rpm_id super(@installed_package) end def self.with_latest(packages, host) upgradable_packages_map = ::Katello::Rpm.installable_for_hosts([host]).select(:id, :name, :arch, :nvra, :evr).order(evr: :desc).group_by { |i| [i.name, i.arch] } installed_packages_map = ::Katello::Rpm.where(nvra: packages.map(&:nvra)).select(:id, :arch, :name).group_by { |i| [i.name, i.arch] } packages.map do |p| upgrades = upgradable_packages_map[[p.name, p.arch]]&.pluck(:nvra) installed = installed_packages_map[[p.name, p.arch]]&.first&.id HostPackagePresenter.new(p, upgrades, installed) end end end end
Version data entries
35 entries across 35 versions & 1 rubygems