sushi_fabric 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
- # Version = '20140612-161952'
3
+ # Version = '20140613-165327'
4
4
 
5
5
  require 'csv'
6
6
  require 'fileutils'
@@ -412,9 +412,20 @@ rm -rf #{@scratch_dir} || exit 1
412
412
  def copy_commands(org_dir, dest_parent_dir)
413
413
  @workflow_manager.copy_commands(org_dir, dest_parent_dir)
414
414
  end
415
- def copy_dataset_parameter_jobscripts
415
+ def copy_inputdataset_parameter_jobscripts
416
416
  org = @scratch_result_dir
417
417
  dest = @gstore_project_dir
418
+ copy_commands(org, dest).each do |command|
419
+ puts command
420
+ unless system command
421
+ raise "fails in copying input_dataset, parameters and jobscript files from /scratch to /gstore"
422
+ end
423
+ end
424
+ sleep 1
425
+ end
426
+ def copy_nextdataset
427
+ org = @next_dataset_tsv_path
428
+ dest = @gstore_project_dir
418
429
  copy_commands(org, dest).each do |command|
419
430
  puts command
420
431
  unless system command
@@ -425,6 +436,7 @@ rm -rf #{@scratch_dir} || exit 1
425
436
  command = "rm -rf #{@scratch_result_dir}"
426
437
  `#{command}`
427
438
  end
439
+
428
440
  def make_job_script
429
441
  @out = open(@job_script, 'w')
430
442
  job_header
@@ -500,74 +512,75 @@ rm -rf #{@scratch_dir} || exit 1
500
512
  save_parameters_as_tsv
501
513
  save_input_dataset_as_tsv
502
514
 
515
+ t = Thread.new do
516
+ copy_inputdataset_parameter_jobscripts
517
+
518
+ ## sushi writes creates the job scripts and builds the result data set that is to be generated
519
+ @result_dataset = []
520
+ @job_scripts = []
521
+ if @params['process_mode'] == 'SAMPLE'
522
+ sample_mode
523
+ elsif @params['process_mode'] == 'DATASET'
524
+ dataset_mode
525
+ else
526
+ #stop
527
+ warn "the process mode (#{@params['process_mode']}) is not defined"
528
+ raise "stop job submitting"
529
+ end
503
530
 
504
- ## sushi writes creates the job scripts and builds the result data set that is to be generated
505
- @result_dataset = []
506
- @job_scripts = []
507
- if @params['process_mode'] == 'SAMPLE'
508
- sample_mode
509
- elsif @params['process_mode'] == 'DATASET'
510
- dataset_mode
511
- else
512
- #stop
513
- warn "the process mode (#{@params['process_mode']}) is not defined"
514
- raise "stop job submitting"
515
- end
516
-
517
- # job submittion
518
- @job_scripts.each_with_index do |job_script, i|
519
- job_id = submit(job_script)
520
- @job_ids << job_id
521
- print "Submit job #{File.basename(job_script)} job_id=#{job_id}"
522
- end
523
-
524
- puts
525
- print 'job scripts: '
526
- p @job_scripts
527
- print 'result dataset: '
528
- p @result_dataset
529
-
530
- # copy application data to gstore
531
- next_dataset_tsv_path = save_next_dataset_as_tsv
532
-
533
- if !@job_ids.empty? and @dataset_sushi_id and dataset = DataSet.find_by_id(@dataset_sushi_id.to_i)
534
- data_set_arr = []
535
- headers = []
536
- rows = []
537
- next_dataset_name = if name = @next_dataset_name
538
- name.to_s
539
- else
540
- "#{@analysis_category}_#{@name.gsub(/\s/,'').gsub(/_/,'')}_#{dataset.id}"
541
- end
542
- data_set_arr = {'DataSetName'=>next_dataset_name, 'ProjectNumber'=>@project.gsub(/p/,''), 'ParentID'=>@dataset_sushi_id, 'Comment'=>@next_dataset_comment.to_s}
543
- csv = CSV.readlines(next_dataset_tsv_path, :col_sep=>"\t")
544
- csv.each do |row|
545
- if headers.empty?
546
- headers = row
547
- else
548
- rows << row
549
- end
531
+ # job submittion
532
+ @job_scripts.each_with_index do |job_script, i|
533
+ job_id = submit(job_script)
534
+ @job_ids << job_id
535
+ print "Submit job #{File.basename(job_script)} job_id=#{job_id}"
550
536
  end
551
- unless NO_ROR
552
- @next_dataset_id = save_data_set(data_set_arr.to_a.flatten, headers, rows)
553
-
554
- # save job and dataset relation in Sushi DB
555
- job_ids.each do |job_id|
556
- new_job = Job.new
557
- new_job.submit_job_id = job_id.to_i
558
- new_job.next_dataset_id = @next_dataset_id
559
- new_job.save
560
- new_job.data_set.jobs << new_job
561
- new_job.data_set.save
537
+
538
+ puts
539
+ print 'job scripts: '
540
+ p @job_scripts
541
+ print 'result dataset: '
542
+ p @result_dataset
543
+
544
+ # copy application data to gstore
545
+ @next_dataset_tsv_path = save_next_dataset_as_tsv
546
+
547
+ if !@job_ids.empty? and @dataset_sushi_id and dataset = DataSet.find_by_id(@dataset_sushi_id.to_i)
548
+ data_set_arr = []
549
+ headers = []
550
+ rows = []
551
+ next_dataset_name = if name = @next_dataset_name
552
+ name.to_s
553
+ else
554
+ "#{@analysis_category}_#{@name.gsub(/\s/,'').gsub(/_/,'')}_#{dataset.id}"
555
+ end
556
+ data_set_arr = {'DataSetName'=>next_dataset_name, 'ProjectNumber'=>@project.gsub(/p/,''), 'ParentID'=>@dataset_sushi_id, 'Comment'=>@next_dataset_comment.to_s}
557
+ csv = CSV.readlines(@next_dataset_tsv_path, :col_sep=>"\t")
558
+ csv.each do |row|
559
+ if headers.empty?
560
+ headers = row
561
+ else
562
+ rows << row
563
+ end
562
564
  end
565
+ unless NO_ROR
566
+ @next_dataset_id = save_data_set(data_set_arr.to_a.flatten, headers, rows)
567
+
568
+ # save job and dataset relation in Sushi DB
569
+ job_ids.each do |job_id|
570
+ new_job = Job.new
571
+ new_job.submit_job_id = job_id.to_i
572
+ new_job.next_dataset_id = @next_dataset_id
573
+ new_job.save
574
+ new_job.data_set.jobs << new_job
575
+ new_job.data_set.save
576
+ end
563
577
 
578
+ end
564
579
  end
565
- end
566
- t = Thread.new do
567
- copy_dataset_parameter_jobscripts
580
+ copy_nextdataset
568
581
  end
569
582
  if Thread.main == Thread.current # in case of running script directly on terminal
570
- warn "copy dataset, parameter, jobscripts..."
583
+ warn "copy next dataset..."
571
584
  t.join
572
585
  warn "copy finish."
573
586
  end
@@ -1,3 +1,3 @@
1
1
  module SushiFabric
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sushi_fabric
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-12 00:00:00.000000000 Z
12
+ date: 2014-06-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler