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