lib/sushi_fabric/sushiApp.rb in sushi_fabric-0.4.3 vs lib/sushi_fabric/sushiApp.rb in sushi_fabric-0.4.6

- old
+ new

@@ -1,8 +1,8 @@ #!/usr/bin/env ruby # encoding: utf-8 -# Version = '20150716-161756' +# Version = '20150904-134632' require 'csv' require 'fileutils' require 'yaml' require 'drb/drb' @@ -123,20 +123,22 @@ class ::String def tag?(tag) scan(/\[(.*)\]/).flatten.join =~ /#{tag}/ end end -def save_data_set(data_set_arr, headers, rows) +def save_data_set(data_set_arr, headers, rows, user=nil) data_set_hash = Hash[*data_set_arr] unless project = Project.find_by_number(data_set_hash['ProjectNumber'].to_i) project = Project.new project.number = data_set_hash['ProjectNumber'].to_i project.save end if project = Project.find_by_number(data_set_hash['ProjectNumber'].to_i) data_set = DataSet.new - #data_set.user = user + if user + data_set.user = user + end data_set.name = data_set_hash['DataSetName'] data_set.project = project if parent_id = data_set_hash['ParentID'] and parent_data_set = DataSet.find_by_id(parent_id.to_i) data_set.data_set = parent_data_set end @@ -158,10 +160,14 @@ data_set.md5 = data_set.md5hexdigest unless data_set.saved? project.data_sets << data_set parent_data_set.data_sets << data_set if parent_data_set data_set.save + if user + user.data_sets << data_set + user.save + end end data_set.id end end #module_function :save_data_set @@ -184,10 +190,11 @@ attr_accessor :user attr_accessor :next_dataset_name attr_accessor :dataset_name attr_accessor :next_dataset_comment attr_accessor :workflow_manager + attr_accessor :current_user def initialize @gstore_dir = GSTORE_DIR @project = nil @name = nil @params = {} @@ -227,11 +234,12 @@ else rows << row end end unless NO_ROR - @dataset_sushi_id = save_data_set(data_set_arr.to_a.flatten, headers, rows) + @current_user ||= nil + @dataset_sushi_id = save_data_set(data_set_arr.to_a.flatten, headers, rows, @current_user) end elsif @dataset_sushi_id @dataset_hash = [] @dataset = [] if dataset = DataSet.find_by_id(@dataset_sushi_id.to_i) @@ -510,22 +518,22 @@ end make_job_script @job_scripts << @job_script @result_dataset << next_dataset end - def save_data_set(data_set_arr, headers, rows) - #SushiFabric.save_data_set(data_set_arr, headers, rows, user) -#=begin + def save_data_set(data_set_arr, headers, rows, user=nil) data_set_hash = Hash[*data_set_arr] unless project = Project.find_by_number(data_set_hash['ProjectNumber'].to_i) project = Project.new project.number = data_set_hash['ProjectNumber'].to_i project.save end if project = Project.find_by_number(data_set_hash['ProjectNumber'].to_i) data_set = DataSet.new - #data_set.user = user + if user + data_set.user = user + end data_set.name = data_set_hash['DataSetName'] data_set.project = project if parent_id = data_set_hash['ParentID'] and parent_data_set = DataSet.find_by_id(parent_id.to_i) data_set.data_set = parent_data_set end @@ -547,14 +555,17 @@ data_set.md5 = data_set.md5hexdigest unless data_set.saved? project.data_sets << data_set parent_data_set.data_sets << data_set if parent_data_set data_set.save + if user + user.data_sets << data_set + user.save + end end data_set.id end -#=end end def main ## sushi writes creates the job scripts and builds the result data set that is to be generated @result_dataset = [] @job_scripts = [] @@ -602,11 +613,11 @@ else rows << row end end unless NO_ROR - #@next_dataset_id = save_data_set(data_set_arr.to_a.flatten, headers, rows, current_user) - @next_dataset_id = save_data_set(data_set_arr.to_a.flatten, headers, rows) + @current_user ||= nil + @next_dataset_id = save_data_set(data_set_arr.to_a.flatten, headers, rows, @current_user) # save job and dataset relation in Sushi DB job_ids.each do |job_id| new_job = Job.new new_job.submit_job_id = job_id.to_i