From c1ac12174b9aff7535a84af9f76d1cda95b750f4 Mon Sep 17 00:00:00 2001 From: Zog Date: Fri, 2 Mar 2018 11:17:08 +0100 Subject: Refs #6068; Refactor import/export tasks --- lib/tasks/helpers/simple_interfaces.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lib/tasks/helpers/simple_interfaces.rb (limited to 'lib/tasks/helpers/simple_interfaces.rb') diff --git a/lib/tasks/helpers/simple_interfaces.rb b/lib/tasks/helpers/simple_interfaces.rb new file mode 100644 index 000000000..68e02e818 --- /dev/null +++ b/lib/tasks/helpers/simple_interfaces.rb @@ -0,0 +1,27 @@ +module SimpleInterfacesHelper + def self.interface_output_to_csv interface, output_dir + filepath = File.join output_dir, + "#{interface.configuration_name}_#{Time.now.strftime "%y%m%d%H%M"}_out.csv" + cols = %w(line kind event message error) + if interface.reload.journal.size > 0 + keys = interface.journal.first["row"].map(&:first) + CSV.open(filepath, "w") do |csv| + csv << cols + keys + interface.journal.each do |j| + csv << cols.map{|c| j[c]} + j["row"].map(&:last) + end + end + puts "Task Output written in #{filepath}" + end + end + + def self.run_interface_controlling_interruption interface, method, args + begin + interface.send(method, verbose: true) + rescue Interrupt + raise + ensure + puts "\n\e[33m***\e[0m Done, status: " + (interface.status == "success" ? "\e[32m" : "\e[31m" ) + (interface.status || "") + "\e[0m" + interface_output_to_csv interface, args[:logs_output_dir] + end + end +end -- cgit v1.2.3