diff --git a/lib/foreman_inventory_upload.rb b/lib/foreman_inventory_upload.rb index fefdcb69..204b301f 100644 --- a/lib/foreman_inventory_upload.rb +++ b/lib/foreman_inventory_upload.rb @@ -1,10 +1,10 @@ module ForemanInventoryUpload def self.base_folder # in production setup, where selinux is enabled, we only have rights to - # create folders under /ver/lib/foreman. If the folder does not exist, it's - # a dev setup, where we can use our current root + # create folders under /var/lib/foreman. If the folder does not exist, it's + # a dev setup, where we can use the parent of the current working directory @base_folder ||= File.join( - Dir.glob('/var/lib/foreman').first || Dir.getwd, + Dir.glob('/var/lib/foreman').first || File.dirname(Dir.getwd), 'red_hat_inventory/' ) end @@ -30,11 +30,6 @@ def self.done_file_path(filename) File.join(ForemanInventoryUpload.done_folder, filename) end - def self.report_file_paths(organization_id) - filename = facts_archive_name(organization_id) - Dir[ForemanInventoryUpload.uploads_file_path(filename), ForemanInventoryUpload.done_file_path(filename)] - end - def self.generated_reports_folder @generated_reports_folder ||= ensure_folder( File.join( @@ -44,6 +39,26 @@ def self.generated_reports_folder ) end + def self.generated_reports_file_path(filename) + File.join(ForemanInventoryUpload.generated_reports_folder, filename) + end + + def self.report_file_paths(organization_id) + filename = facts_archive_name(organization_id) + # Report files start in generated + # They are then MOVED (not copied) to uploads, then done. + # When they are moved to the new folder, they overwrite any file with the same name. + # If it's a generate-only, it will be in generated + # Failed or incomplete uploads will be in uploads + # Completed uploads will be in done + # The ordering here ensures we get the correct file path every time. + Dir[ + ForemanInventoryUpload.generated_reports_file_path(filename), + ForemanInventoryUpload.uploads_file_path(filename), + ForemanInventoryUpload.done_file_path(filename), + ] + end + def self.outputs_folder @outputs_folder ||= ensure_folder(File.join(ForemanInventoryUpload.base_folder, 'outputs/')) end