aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZog2018-02-21 08:08:40 +0100
committerZog2018-02-21 16:18:34 +0100
commit70396ae000bfc5c2b792c17198efc2a8d87d9ebf (patch)
treedad5558cd81b96b2532eae140293cf8f2b680ead
parenta357c68cc96c642f15991a85e3982f4553c32a22 (diff)
downloadchouette-core-70396ae000bfc5c2b792c17198efc2a8d87d9ebf.tar.bz2
Move importers outputs in logs
-rw-r--r--.gitignore1
-rw-r--r--app/models/simple_importer.rb3
-rw-r--r--lib/tasks/imports.rake37
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