diff options
| author | Zog | 2018-02-21 08:08:40 +0100 |
|---|---|---|
| committer | Zog | 2018-02-21 16:18:34 +0100 |
| commit | 70396ae000bfc5c2b792c17198efc2a8d87d9ebf (patch) | |
| tree | dad5558cd81b96b2532eae140293cf8f2b680ead | |
| parent | a357c68cc96c642f15991a85e3982f4553c32a22 (diff) | |
| download | chouette-core-70396ae000bfc5c2b792c17198efc2a8d87d9ebf.tar.bz2 | |
Move importers outputs in logs
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | app/models/simple_importer.rb | 3 | ||||
| -rw-r--r-- | lib/tasks/imports.rake | 37 |
3 files changed, 28 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore index dd4d057ef..28960565b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ # Ignore all logfiles and tempfiles. /log/*.log +/log/importers /tmp *~ public/assets/ diff --git a/app/models/simple_importer.rb b/app/models/simple_importer.rb index aacf85a9e..d6ba64494 100644 --- a/app/models/simple_importer.rb +++ b/app/models/simple_importer.rb @@ -95,7 +95,8 @@ class SimpleImporter < ActiveRecord::Base end def dump_csv_from_context - filepath = "./#{self.configuration_name}_#{Time.now.strftime "%y%m%d%H%M"}.csv" + dir = context[:output_dir] || "log/importers" + filepath = File.join dir, "#{self.configuration_name}_#{Time.now.strftime "%y%m%d%H%M"}.csv" # for some reason, context[:csv].to_csv does not work CSV.open(filepath, 'w') do |csv| header = true diff --git a/lib/tasks/imports.rake b/lib/tasks/imports.rake index b91ff7efb..f01d3f34f 100644 --- a/lib/tasks/imports.rake +++ b/lib/tasks/imports.rake @@ -11,8 +11,8 @@ namespace :import do NetexImport.abort_old end - def importer_output_to_csv importer - filepath = "./#{importer.configuration_name}_#{Time.now.strftime "%y%m%d%H%M"}_out.csv" + def importer_output_to_csv importer, output_dir + filepath = File.join output_dir, + "#{importer.configuration_name}_#{Time.now.strftime "%y%m%d%H%M"}_out.csv" cols = %w(line kind event message error) if importer.reload.journal.size > 0 keys = importer.journal.first["row"].map(&:first) @@ -27,13 +27,17 @@ namespace :import do end desc "import the given file with the corresponding importer" - task :import, [:configuration_name, :filepath, :referential_id] => :environment do |t, args| + task :import, [:configuration_name, :filepath, :referential_id, :output_dir] => :environment do |t, args| + args.with_defaults(output_dir: "./log/importers/") + FileUtils.mkdir_p args[:output_dir] + importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath] + if args[:referential_id].present? referential = Referential.find args[:referential_id] importer.configure do |config| config.add_value :referential, referential - config.context = {referential: referential} + config.context = {referential: referential, output_dir: args[:output_dir]} end end puts "\e[33m***\e[0m Start importing" @@ -43,17 +47,20 @@ namespace :import do raise ensure puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m" - importer_output_to_csv importer + importer_output_to_csv importer, args[:output_dir] end end desc "import the given file with the corresponding importer in the given StopAreaReferential" task :import_in_stop_area_referential, [:referential_id, :configuration_name, :filepath] => :environment do |t, args| + args.with_defaults(output_dir: "./log/importers/") + FileUtils.mkdir_p args[:output_dir] + referential = StopAreaReferential.find args[:referential_id] importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath] importer.configure do |config| config.add_value :stop_area_referential, referential - config.context = {stop_area_referential: referential} + config.context = {stop_area_referential: referential, output_dir: args[:output_dir]} end puts "\e[33m***\e[0m Start importing" begin @@ -62,19 +69,22 @@ namespace :import do raise ensure puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m" - importer_output_to_csv importer + importer_output_to_csv importer, args[:output_dir] end end desc "import the given routes files" task :import_routes, [:referential_id, :configuration_name, :mapping_filepath, :filepath] => :environment do |t, args| + args.with_defaults(output_dir: "./log/importers/") + FileUtils.mkdir_p args[:output_dir] + referential = Referential.find args[:referential_id] referential.switch stop_area_referential = referential.stop_area_referential importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath] importer.configure do |config| config.add_value :stop_area_referential, referential - config.context = {stop_area_referential: stop_area_referential, mapping_filepath: args[:mapping_filepath]} + config.context = {stop_area_referential: stop_area_referential, mapping_filepath: args[:mapping_filepath], output_dir: args[:output_dir]} end puts "\e[33m***\e[0m Start importing" begin @@ -83,17 +93,20 @@ namespace :import do raise ensure puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m" - importer_output_to_csv importer + importer_output_to_csv importer, args[:output_dir] end end desc "import the given file with the corresponding importer in the given LineReferential" - task :import_in_line_referential, [:referential_id, :configuration_name, :filepath] => :environment do |t, args| + task :import_in_line_referential, [:referential_id, :configuration_name, :filepath, :output_dir] => :environment do |t, args| + args.with_defaults(output_dir: "./log/importers/") + FileUtils.mkdir_p args[:output_dir] + referential = LineReferential.find args[:referential_id] importer = SimpleImporter.create configuration_name: args[:configuration_name], filepath: args[:filepath] importer.configure do |config| config.add_value :line_referential, referential - config.context = {line_referential: referential} + config.context = {line_referential: referential, output_dir: args[:output_dir]} end puts "\e[33m***\e[0m Start importing" begin @@ -102,7 +115,7 @@ namespace :import do raise ensure puts "\n\e[33m***\e[0m Import done, status: " + (importer.status == "success" ? "\e[32m" : "\e[31m" ) + (importer.status || "") + "\e[0m" - importer_output_to_csv importer + importer_output_to_csv importer, args[:output_dir] end end end |
