Sha256: e47d9882ce5cba18827a3dcf67e10fca43efe63b0f8a9102fbeb905bb4adb0dc

Contents?: true

Size: 1.24 KB

Versions: 12

Compression:

Stored size: 1.24 KB

Contents

module ForemanInventoryUpload
  module Async
    class GenerateAllReportsJob < ::Actions::EntryAction
      include ::Actions::RecurringAction

      def plan
        unless Setting[:allow_auto_inventory_upload]
          logger.debug(
            'The scheduled process is disabled due to the "allow_auto_inventory_upload"
            setting being set to false.'
          )
          return
        end

        organizations = Organization.unscoped.all

        organizations.map do |organization|
          total_hosts = ForemanInventoryUpload::Generators::Queries.for_org(organization.id, use_batches: false).count

          if total_hosts <= ForemanInventoryUpload.max_org_size
            plan_generate_report(ForemanInventoryUpload.generated_reports_folder, organization)
          else
            logger.info("Skipping automatic uploads for organization #{organization.name}, too many hosts (#{total_hosts}/#{ForemanInventoryUpload.max_org_size})")
          end
        end.compact
      end

      def rescue_strategy_for_self
        Dynflow::Action::Rescue::Fail
      end

      def plan_generate_report(folder, organization)
        plan_action(ForemanInventoryUpload::Async::GenerateReportJob, folder, organization.id)
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
foreman_rh_cloud-5.0.39 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.38 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.37 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.36 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.35 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.34 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.33 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.32 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.31 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.30 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.29 lib/foreman_inventory_upload/async/generate_all_reports_job.rb
foreman_rh_cloud-5.0.28 lib/foreman_inventory_upload/async/generate_all_reports_job.rb