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

Version Path
katello-4.16.0 app/presenters/katello/host_package_presenter.rb
katello-4.15.1 app/presenters/katello/host_package_presenter.rb
katello-4.16.0.rc2 app/presenters/katello/host_package_presenter.rb
katello-4.16.0.rc1 app/presenters/katello/host_package_presenter.rb
katello-4.14.3 app/presenters/katello/host_package_presenter.rb
katello-4.14.2 app/presenters/katello/host_package_presenter.rb
katello-4.15.0 app/presenters/katello/host_package_presenter.rb
katello-4.15.0.rc2 app/presenters/katello/host_package_presenter.rb
katello-4.15.0.rc1 app/presenters/katello/host_package_presenter.rb
katello-4.14.1 app/presenters/katello/host_package_presenter.rb
katello-4.14.0 app/presenters/katello/host_package_presenter.rb
katello-4.14.0.rc3 app/presenters/katello/host_package_presenter.rb
katello-4.14.0.rc2 app/presenters/katello/host_package_presenter.rb
katello-4.14.0.rc1.1 app/presenters/katello/host_package_presenter.rb
katello-4.14.0.rc1 app/presenters/katello/host_package_presenter.rb
katello-4.13.1 app/presenters/katello/host_package_presenter.rb
katello-4.13.0 app/presenters/katello/host_package_presenter.rb
katello-4.12.1 app/presenters/katello/host_package_presenter.rb
katello-4.13.0.rc1 app/presenters/katello/host_package_presenter.rb
katello-4.12.0 app/presenters/katello/host_package_presenter.rb