Class: ForemanInventoryUpload::Async::QueueForUploadJob

Inherits:
Actions::EntryAction
  • Object
show all
Defined in:
lib/foreman_inventory_upload/async/queue_for_upload_job.rb

Instance Method Summary collapse

Instance Method Details

#base_folderObject



54
55
56
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 54

def base_folder
  input[:base_folder]
end

#ensure_ouput_folderObject



29
30
31
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 29

def ensure_ouput_folder
  FileUtils.mkdir_p(uploads_folder)
end

#ensure_output_scriptObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 33

def ensure_output_script
  return if File.exist?(script_file)

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

  template_src = Foreman::Renderer::Source::String.new(content: File.read(script_source))
  scope = Foreman::Renderer::Scope::Base.new(
    source: template_src,
    variables: {
      upload_url: ForemanInventoryUpload.upload_url,
    }
  )
  script_source = Foreman::Renderer.render(template_src, scope)
  File.write(script_file, script_source)
  FileUtils.chmod('+x', script_file)
end

#loggerObject



50
51
52
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 50

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

#plan(base_folder, report_file, organization_id, disconnected) ⇒ Object



4
5
6
7
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 4

def plan(base_folder, report_file, organization_id, disconnected)
  enqueue_task = plan_self(base_folder: base_folder, report_file: report_file)
  plan_upload_report(enqueue_task.output[:enqueued_file_name], organization_id) unless disconnected
end

#plan_upload_report(enqueued_file_name, organization_id) ⇒ Object



62
63
64
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 62

def plan_upload_report(enqueued_file_name, organization_id)
  plan_action(UploadReportJob, enqueued_file_name, organization_id)
end

#report_fileObject



58
59
60
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 58

def report_file
  input[:report_file]
end

#runObject



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 9

def run
  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}")

  output[:enqueued_file_name] = enqueued_file_name
end

#script_fileObject



25
26
27
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 25

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

#uploads_folderObject



21
22
23
# File 'lib/foreman_inventory_upload/async/queue_for_upload_job.rb', line 21

def uploads_folder
  @uploads_folder ||= ForemanInventoryUpload.uploads_folder
end