Sha256: 9ec71d3da1a8c6d140e6976709119ff96e6544ac414f86c7bef4b9491d47255a

Contents?: true

Size: 1.51 KB

Versions: 13

Compression:

Stored size: 1.51 KB

Contents

module ForemanInventoryUpload
  module Async
    class QueueForUploadJob < ::ApplicationJob
      def perform(base_folder, report_file, organization_id)
        @base_folder = base_folder
        @report_file = report_file
        logger.debug('Ensuring objects')
        ensure_ouput_folder
        ensure_output_script
        logger.debug("Copying #{report_file} to #{uploads_folder}")
        enqueued_file_name = File.join(uploads_folder, report_file)
        FileUtils.mv(File.join(base_folder, report_file), enqueued_file_name)
        logger.debug("Done copying #{report_file} to #{enqueued_file_name}")

        UploadReportJob.perform_later(enqueued_file_name, organization_id)
      end

      def uploads_folder
        @uploads_folder ||= ForemanInventoryUpload.uploads_folder
      end

      def script_file
        @script_file ||= File.join(uploads_folder, ForemanInventoryUpload.upload_script_file)
      end

      def ensure_ouput_folder
        FileUtils.mkdir_p(uploads_folder)
      end

      def ensure_output_script
        return if File.exist?(script_file)

        script_source_file = File.join(ForemanRhCloud::Engine.root, 'lib/foreman_inventory_upload/scripts/uploader.sh.erb')

        script_source = File.read(script_source_file)
        script_source.gsub!('<%= @upload_url %>', ForemanInventoryUpload.upload_url)

        File.write(script_file, script_source)
        FileUtils.chmod('+x', script_file)
      end

      def logger
        Foreman::Logging.logger('background')
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
foreman_rh_cloud-0.9.14 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.13.1 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.13 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.12 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.11 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.10 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.9 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.8 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.7 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.6 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.5 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.4.1 lib/foreman_inventory_upload/async/queue_for_upload_job.rb
foreman_rh_cloud-0.9.4 lib/foreman_inventory_upload/async/queue_for_upload_job.rb