Sha256: 0e1dccb87d18edc9b02d71f9ac7dc8890c5e12c1480c0547eefee753fb652734

Contents?: true

Size: 1.7 KB

Versions: 59

Compression:

Stored size: 1.7 KB

Contents

module Katello
  module Pulp
    class ContentCountsCalculator
      def initialize(repos)
        @repos = repos
      end

      # rubocop:disable Metrics/MethodLength
      def calculate
        counts = {
          :apt_repositories => 0,
          :deb_packages => 0,
          :yum_repositories => 0,
          :packages => 0,
          :package_groups => 0,
          :errata => 0,
          :puppet_repositories => 0,
          :puppet_modules => 0,
          :docker_repositories => 0,
          :docker_images => 0
        }

        @repos.each do |repo|
          case
          when repo_type?(repo, 'deb')
            counts[:apt_repositories] += 1
            counts[:deb_packages] += get_unit_count(repo, 'deb')
          when repo_type?(repo, 'rpm')
            counts[:yum_repositories] += 1
            counts[:packages] += get_unit_count(repo, 'rpm')
            counts[:package_groups] += get_unit_count(repo, 'package_group')
            counts[:errata] += get_unit_count(repo, 'erratum')
          when repo_type?(repo, 'docker')
            counts[:docker_repositories] += 1
            counts[:docker_images] += get_unit_count(repo, 'docker_image')
          when repo_type?(repo, 'puppet')
            counts[:puppet_repositories] += 1
            counts[:puppet_modules] += get_unit_count(repo, 'puppet_module')
          end
        end

        counts
      end

      protected

      def repo_type?(repo, repo_type)
        repo['notes'] && (repo['notes']['_repo-type'] == "#{repo_type}-repo")
      end

      def get_unit_count(repo, unit_type)
        if repo['content_unit_counts']
          repo['content_unit_counts'][unit_type] || 0
        else
          0
        end
      end
    end
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
katello-3.18.5 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.4 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.3.1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.3 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.2.1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.2 app/services/katello/pulp/content_counts_calculator.rb
katello-3.17.3 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.1.1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.17.2 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.0 app/services/katello/pulp/content_counts_calculator.rb
katello-3.17.1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.16.2 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.0.rc2.1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.0.rc2 app/services/katello/pulp/content_counts_calculator.rb
katello-3.17.0 app/services/katello/pulp/content_counts_calculator.rb
katello-3.18.0.rc1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.17.0.rc2.2 app/services/katello/pulp/content_counts_calculator.rb
katello-3.17.0.rc2.1 app/services/katello/pulp/content_counts_calculator.rb
katello-3.16.1.2 app/services/katello/pulp/content_counts_calculator.rb