cnvrg 1.2.7 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7319668db1dc7e8257aa9f6067fc43b91dd559f4e73c1c5d84c6e0a6c4ec30b
4
- data.tar.gz: 3958b12ea50a32fa38ebc0c41a3e0b019199fe3f6a4f0f3ebcbe43b839fa25c1
3
+ metadata.gz: c562ccc1d7fd69f3f2b0d28db538d27d57e4a55df5f1fef3eee6cab511bd30ca
4
+ data.tar.gz: 624e78308a885897c9fc31402aff21198a3f2db6551b676f14d82d9126624255
5
5
  SHA512:
6
- metadata.gz: cb413f91c9968b93ec5e1b05be0a2deff6f5aaa5e097b9eda6e02311a36e6b14d8dba34a8385c0e1abc5193810fbaa1a0902f49537ffb79e2a7745117448233c
7
- data.tar.gz: 5a4d02fc1920d0fda7e0d5b7dfab5793ee31e6adc8b9fc2e60adc5e55213284dcc3bb3cb1c1974b1da0541da9fd8a86eb94d4c3f1c3f0a82543ec43fd4dcd080
6
+ metadata.gz: 928e1bb402e0dac773bb9d8150c65815b2af8878c4969ca555eeb79ac7ad51a8f9a7f1d8c69cd58651788100c0cf6b2cd9a2e2b427d7efd667d0d4abf6f41629
7
+ data.tar.gz: 123068cd21d3900cdf3e9ae982feb2e9e52ee9303236877f41a6653cb8e4e6294f7afa8cb8c7c3a1e665fa0b331d8ee1e337b3e6a1b9e34a4f8293f25381d027
@@ -6,7 +6,7 @@ require 'cnvrg/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'cnvrg'
8
8
  spec.version = Cnvrg::VERSION
9
- spec.authors = ['Yochay Ettun', 'Leah Kolben']
9
+ spec.authors = ['Yochay Ettun', 'Leah Kolben', 'Omer Shacham']
10
10
  spec.email = ['info@cnvrg.io']
11
11
  spec.summary = %q{A CLI tool for interacting with cnvrg.io.}
12
12
  spec.description = %q{A CLI tool for interacting with cnvrg.io.}
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = ['cnvrg']
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.11'
21
+ spec.add_development_dependency 'bundler'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  spec.add_development_dependency 'rspec', '~> 3.0'
24
24
  spec.add_development_dependency 'vcr', '~> 3.0'
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_runtime_dependency 'highline', '~> 1.7', '>= 1.7.8'
33
33
  spec.add_runtime_dependency 'thor', '~> 0.19.0','>=0.19.1'
34
34
  spec.add_runtime_dependency 'aws-sdk', '~> 2'
35
+ spec.add_runtime_dependency 'google-cloud-storage', '~> 1.16'
35
36
  spec.add_runtime_dependency 'sucker_punch', '~> 2.0'
36
37
  spec.add_runtime_dependency 'urlcrypt', '~> 0.1.1'
37
38
  spec.add_runtime_dependency 'parallel', '~> 1.12.0'
@@ -53,7 +53,7 @@ module Cnvrg
53
53
  end
54
54
  conn.headers['Auth-Token'] = @pass
55
55
  conn.headers['User-Agent'] = "#{Cnvrg::API::USER_AGENT}"
56
- conn.options.timeout = 420
56
+ conn.options.timeout = 420
57
57
  conn.options.open_timeout=180
58
58
  case method
59
59
  when 'GET'
@@ -201,7 +201,7 @@ module Cnvrg
201
201
  else
202
202
  end
203
203
  rescue => e
204
- puts e
204
+ Cnvrg::Logger.log_error(e)
205
205
  return nil
206
206
  rescue SignalException
207
207
  return false
@@ -11,6 +11,18 @@ require 'yaml'
11
11
  require 'digest' # sha1up
12
12
  require "highline/import"
13
13
  require 'socket'
14
+ require 'thor'
15
+ require 'docker'
16
+ require 'launchy'
17
+ require 'socket'
18
+ require 'timeout'
19
+ require 'fileutils'
20
+ require 'active_support/all'
21
+ require 'pathname'
22
+ require 'enumerator'
23
+ require 'ruby-progressbar'
24
+ require 'open3'
25
+ require 'logstash-logger'
14
26
  require 'cnvrg/helpers'
15
27
  require 'cnvrg/api'
16
28
  require 'cnvrg/auth'
@@ -21,25 +33,15 @@ require 'cnvrg/Images'
21
33
  require 'cnvrg/dataset'
22
34
  require 'cnvrg/datafiles'
23
35
  require 'cnvrg/data'
36
+ require 'cnvrg/storage'
24
37
  require 'cnvrg/ssh'
25
38
  require 'cnvrg/result'
26
39
  require 'cnvrg/logger'
27
40
  require 'cnvrg/org_helpers'
28
- require 'cnvrg/cli/flow'
29
- require 'cnvrg/cli/task'
30
- require 'logstash-logger'
31
- require 'cnvrg/job'
32
- require 'docker'
33
- require 'launchy'
34
- require 'socket'
35
- require 'timeout'
36
- require 'fileutils'
37
- require 'active_support/all'
38
- require 'thor'
39
- require 'pathname'
40
- require 'enumerator'
41
- require 'ruby-progressbar'
42
- require 'open3'
41
+ require 'cnvrg/job_cli'
42
+ Gem.find_files("cnvrg/downloader/**/*.rb").reverse.each{|r| require r}
43
+ Gem.find_files("cnvrg/helpers/**/*.rb").reverse.each{|r| require r}
44
+ Gem.find_files("cnvrg/cli/**/*.rb").each{|r| require r}
43
45
 
44
46
 
45
47
  class Thor
@@ -164,6 +166,9 @@ module Cnvrg
164
166
  desc "data", "upload and manage datasets", :hide => false
165
167
  subcommand "data", Data
166
168
 
169
+ desc "job", "manage running jobs", :hide => false
170
+ subcommand "job", JobCli
171
+
167
172
  desc "flow", "mange project flows", :hide => true
168
173
  subcommand "flow", Cnvrg::Commands::Flow
169
174
 
@@ -605,12 +610,14 @@ module Cnvrg
605
610
  desc 'new', 'Create a new cnvrg project'
606
611
  method_option :clean, :type => :boolean, :aliases => ["-c"], :default => false
607
612
  method_option :docker_image, :type => :string, :aliases => ["-d"], :default => ""
613
+ method_option :bucket, :type => :string, :aliases => ["-b", "--bucket"], :default => ""
608
614
 
609
615
  def new(project_name)
610
616
  begin
611
617
  verify_logged_in(false)
612
618
  log_start(__method__, args, options)
613
619
  clean = options["clean"]
620
+ bucket = options["bucket"]
614
621
  docker_image = options["docker_image"]
615
622
  working_dir = Dir.pwd + "/" + project_name
616
623
  docker = false
@@ -662,6 +669,7 @@ module Cnvrg
662
669
  method_option :sync, :type => :boolean, :aliases => ["-s"], :default => false
663
670
  method_option :docker_image, :type => :string, :aliases => ["-d"], :default => ""
664
671
  method_option :git, :type => :boolean, :aliases => ["-g","--git"], :default => false
672
+ method_option :bucket, :type => :string, :aliases => ["-b","--bucket"], :default => ''
665
673
  method_option :title, :type => :string, :aliases => ["-t","--title"], :default => nil
666
674
 
667
675
  def link
@@ -669,7 +677,8 @@ module Cnvrg
669
677
  verify_logged_in(false)
670
678
  log_start(__method__, args, options)
671
679
  docker_image = options["docker_image"]
672
- if !docker_image.nil? and !docker_image.empty?
680
+ bucket = options["bucket"]
681
+ if docker_image.present?
673
682
  docker = true
674
683
  else
675
684
  docker = false
@@ -687,7 +696,7 @@ module Cnvrg
687
696
  end
688
697
  working_dir = Dir.getwd
689
698
  owner = CLI.get_owner
690
- if Project.link(owner, project_name, docker,git)
699
+ if Project.link(owner, project_name, docker,git, bucket: bucket)
691
700
  path = Dir.pwd
692
701
  @project = Project.new(path)
693
702
  if sync
@@ -718,7 +727,7 @@ module Cnvrg
718
727
  desc 'data init', 'Init dataset directory'
719
728
  method_option :public, :type => :boolean, :aliases => ["-p", "--public"], :default => false
720
729
 
721
- def init_data(public)
730
+ def init_data(public, bucket: nil)
722
731
  begin
723
732
  verify_logged_in(false)
724
733
  log_start(__method__, args, options)
@@ -733,7 +742,7 @@ module Cnvrg
733
742
 
734
743
  working_dir = Dir.getwd
735
744
  owner = CLI.get_owner
736
- if Dataset.init(owner, dataset_name, options["public"])
745
+ if Dataset.init(owner, dataset_name, options["public"], bucket: bucket)
737
746
  path = Dir.pwd
738
747
  @dataset = Dataset.new(path)
739
748
 
@@ -837,7 +846,7 @@ module Cnvrg
837
846
  check = Helpers.checkmark
838
847
  if Dataset.clone(owner, dataset_name, slug, remote)
839
848
  log_message("Cloning #{dataset_name}", Thor::Shell::Color::BLUE)
840
- @files = Cnvrg::Datafiles.new(owner, slug)
849
+ @files = Cnvrg::Datafiles.new(owner, slug, dataset: Cnvrg::Dataset.new(dataset_home, dataset_url: dataset_url))
841
850
  log_message("Downloading files", Thor::Shell::Color::BLUE)
842
851
  if only_tree
843
852
  success = Dataset.clone_tree(commit: commit, dataset_home: dataset_home)
@@ -853,7 +862,6 @@ module Cnvrg
853
862
  :starting_at => 0,
854
863
  :total => files_count,
855
864
  :autofinish => true)
856
-
857
865
  while files['keys'].length > 0
858
866
  Cnvrg::Logger.log_info("download multiple files, #{downloaded_files.size} files downloaded")
859
867
  @files.download_multiple_files_s3(files, dataset_home, progressbar: progressbar, read_only: read)
@@ -1781,7 +1789,7 @@ module Cnvrg
1781
1789
 
1782
1790
  if clone_resp
1783
1791
  @project = Project.new(project_home)
1784
- @files = Cnvrg::Files.new(@project.owner, slug, project_home: project_home)
1792
+ @files = Cnvrg::Files.new(@project.owner, slug, project_home: project_home, project: @project)
1785
1793
  response = @project.clone(remote, commit_to_clone)
1786
1794
  Cnvrg::CLI.is_response_success response
1787
1795
  commit_sha1 = response["result"]["commit"]
@@ -1974,7 +1982,7 @@ module Cnvrg
1974
1982
  commit_sha1 = nil
1975
1983
  @dataset = Dataset.new(dataset_dir)
1976
1984
  @dataset.backup_idx
1977
- @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug)
1985
+ @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug, dataset: @dataset)
1978
1986
  next_commit = @dataset.get_next_commit #if there was a partial commit..
1979
1987
  chunks = (@dataset.list_all_files.length.to_f / chunk_size).ceil
1980
1988
  resp = @files.start_commit(new_branch, force, chunks: chunks, dataset: @dataset)
@@ -2001,7 +2009,7 @@ module Cnvrg
2001
2009
  log_start(__method__, args, options)
2002
2010
  dataset_dir = is_cnvrg_dir(Dir.pwd)
2003
2011
  @dataset = Dataset.new(dataset_dir)
2004
- @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug)
2012
+ @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug, dataset: @dataset)
2005
2013
  force = options["force"] || false
2006
2014
  resp = @files.end_commit(commit, force, success: success, uploaded_files: uploaded_files)
2007
2015
  if (resp.present? and resp["result"])
@@ -2069,7 +2077,7 @@ module Cnvrg
2069
2077
  log_start(__method__, args, options)
2070
2078
  dataset_dir = is_cnvrg_dir(Dir.pwd)
2071
2079
  @dataset = Dataset.new(dataset_dir)
2072
- @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug)
2080
+ @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug, dataset: @dataset)
2073
2081
  new_commit ||= @dataset.get_next_commit
2074
2082
  partial_commit = @dataset.get_partial_commit
2075
2083
  if new_commit.blank?
@@ -2374,7 +2382,7 @@ module Cnvrg
2374
2382
  log_start(__method__, args, options)
2375
2383
  dataset_dir = is_cnvrg_dir(Dir.pwd)
2376
2384
  @dataset = Dataset.new(dataset_dir)
2377
- @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug)
2385
+ @files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug, dataset: @dataset)
2378
2386
  all_files = all_files
2379
2387
  res = @dataset.compare_idx_download(all_files: all_files, desired_commit: commit)
2380
2388
  unless CLI.is_response_success(res, false)
@@ -2476,7 +2484,7 @@ module Cnvrg
2476
2484
  log_start(__method__, args, options)
2477
2485
  project_home = get_project_home
2478
2486
  @project = Project.new(project_home)
2479
- @files = Cnvrg::Files.new(@project.owner, @project.slug, project_home: project_home)
2487
+ @files = Cnvrg::Files.new(@project.owner, @project.slug, project_home: project_home, project: @project)
2480
2488
  git = options["git"]
2481
2489
  commit = options["commit"]
2482
2490
  if git or @project.is_git
@@ -2607,7 +2615,7 @@ module Cnvrg
2607
2615
  exit(0)
2608
2616
  end
2609
2617
  log_message("Jumping to commit #{commit_sha1}")
2610
- @files = Cnvrg::Files.new(@project.owner, @project.slug, project_home: project_home)
2618
+ @files = Cnvrg::Files.new(@project.owner, @project.slug, project_home: project_home, project: @project)
2611
2619
  resp = @project.jump_idx(destination: commit_sha1)
2612
2620
  if resp.blank?
2613
2621
  log_message("Cant find the given commit", Thor::Shell::Color::RED)
@@ -2651,7 +2659,7 @@ module Cnvrg
2651
2659
 
2652
2660
 
2653
2661
 
2654
- @files = Cnvrg::Files.new(@project.owner, @project.slug)
2662
+ @files = Cnvrg::Files.new(@project.owner, @project.slug, project: @project)
2655
2663
  begin
2656
2664
 
2657
2665
  file = @files.show_file_s3(path, commit)
@@ -2788,7 +2796,6 @@ module Cnvrg
2788
2796
  method_option :local_folders, :type => :string, :aliases => ["--local_folders"], :default => nil
2789
2797
 
2790
2798
  def run(*cmd)
2791
-
2792
2799
  verify_logged_in(true)
2793
2800
  log_start(__method__, args, options)
2794
2801
  datasets = options["datasets"]
@@ -4816,7 +4823,6 @@ module Cnvrg
4816
4823
  user = options[:user]
4817
4824
  is_gpu = options[:gpu]
4818
4825
  res = @image.upload_docker_image(image_path, image_name, workdir, user, description, is_gpu)
4819
-
4820
4826
  if res["status"] == 200
4821
4827
  image_slug = res["id"]
4822
4828
  owner = CLI.get_owner
@@ -5326,19 +5332,24 @@ module Cnvrg
5326
5332
  end
5327
5333
 
5328
5334
  def self.log_message(message, type = Thor::Shell::Color::BLUE, to_print: true)
5329
- say "#{type}#{message}" if to_print
5330
5335
  case type
5331
- when Thor::Shell::Color::BLUE
5336
+ when Thor::Shell::Color::BLUE, 'blue', 'progress'
5337
+ color = Thor::Shell::Color::BLUE
5332
5338
  $LOG.info message: message, type: "info"
5333
- when Thor::Shell::Color::RED
5339
+ when Thor::Shell::Color::RED, 'red', 'error'
5340
+ color = Thor::Shell::Color::RED
5334
5341
  $LOG.error message: message, type: "error"
5335
- when Thor::Shell::Color::YELLOW
5342
+ when Thor::Shell::Color::YELLOW, 'yellow', 'warning'
5343
+ color = Thor::Shell::Color::YELLOW
5336
5344
  $LOG.warn message: message, type: "warning"
5337
- when Thor::Shell::Color::GREEN
5345
+ when Thor::Shell::Color::GREEN, 'green', 'info'
5346
+ color = Thor::Shell::Color::GREEN
5338
5347
  $LOG.info message: message, type: "success"
5339
5348
  else
5349
+ color = nil
5340
5350
  $LOG.info message: message, type: "unknown"
5341
5351
  end
5352
+ say "#{color}#{message}" if to_print
5342
5353
  end
5343
5354
 
5344
5355
  def log_message(message, type=Thor::Shell::Color::GREEN, to_print = true)
@@ -5450,6 +5461,10 @@ module Cnvrg
5450
5461
  return Cnvrg::CLI.get_project_home
5451
5462
  end
5452
5463
 
5464
+ def get_job
5465
+
5466
+ end
5467
+
5453
5468
  def self.get_project_home
5454
5469
  absolute_path = Dir.pwd
5455
5470
  dirs = absolute_path.split("/")
@@ -1,5 +1,3 @@
1
- require 'cnvrg/cli'
2
- require 'thor'
3
1
  class SubCommandBase < Thor
4
2
  def self.banner(command, namespace = nil, subcommand = false)
5
3
  "#{basename} #{command.usage}"
@@ -15,10 +13,12 @@ module Cnvrg
15
13
  class_option :no_compression, :type => :boolean, :aliases => ["-nc", "--no_compression"], :default => false
16
14
  desc "data init", "init data folder"
17
15
  method_option :public, :type => :boolean, :aliases => ["-p", "--public"], :default => false
16
+ method_option :bucket, :type => :string, :aliases => ["-b", "--bucket"], :default => ""
18
17
  def init
19
18
  cli = Cnvrg::CLI.new()
20
19
  public = options["public"]
21
- cli.init_data(public)
20
+ bucket = options["bucket"]
21
+ cli.init_data(public, bucket: bucket)
22
22
  end
23
23
  desc "data upload", "upload data folder"
24
24
  method_option :verbose, :type => :boolean, :aliases => ["-v"], :default => false
@@ -187,5 +187,16 @@ module Cnvrg
187
187
  cli.download_tags_yaml()
188
188
  end
189
189
 
190
+
191
+ desc 'data testclient', 'test client'
192
+ def test
193
+ cli = Cnvrg::CLI.new
194
+ cli.verify_logged_in(true)
195
+ cli.log_start(__method__, args, options)
196
+ dataset_dir = cli.is_cnvrg_dir(Dir.pwd)
197
+ @dataset = Project.new(dataset_dir)
198
+ resp = @dataset.get_storage_client
199
+ end
200
+
190
201
  end
191
202
  end
@@ -19,6 +19,7 @@ module Cnvrg
19
19
  @owner = owner
20
20
  @dataset = dataset
21
21
  @base_resource = "users/#{owner}/datasets/#{dataset_slug}/"
22
+ @downloader = @dataset.get_storage_client
22
23
  end
23
24
 
24
25
  def check_file_sha1(filename, org_sha1, tag: 'conflict')
@@ -96,16 +97,11 @@ module Cnvrg
96
97
  progressbar.progress += tree.keys.length if progressbar.present?
97
98
  return 0
98
99
  end
99
- props = Cnvrg::Helpers.get_s3_props(results)
100
- client = props[:client]
101
- bucket = props[:bucket]
102
- upload_options = props[:upload_options]
103
- s3_bucket = Aws::S3::Resource.new(client: client).bucket(bucket)
104
100
  files = results['files']
105
101
  progressbar.progress += tree.keys.length - files.length if progressbar.present?
106
102
  Parallel.map((files.keys), {in_threads: threads}) do |k|
107
103
  o = tree[k].merge(files[k])
108
- upload_single_file(o, s3_bucket, upload_options)
104
+ upload_single_file(o)
109
105
  progressbar.progress += 1 if progressbar.present?
110
106
  end
111
107
  blob_ids = files.values.map {|f| f['bv_id']}
@@ -126,16 +122,14 @@ module Cnvrg
126
122
 
127
123
  end
128
124
 
129
- def upload_single_file(file, s3_bucket, upload_options={})
125
+ def upload_single_file(file)
130
126
  begin
131
- file = file.with_indifferent_access
132
- Cnvrg::Logger.log_info("Uploading #{file[:absolute_path]}")
133
- obj = s3_bucket.
134
- object(file[:path])
135
- obj.upload_file(file[:absolute_path], upload_options)
136
- Cnvrg::Logger.log_info("#{file[:absolute_path]} uploaded.")
127
+ file = file.as_json
128
+ Cnvrg::Logger.log_info("Uploading #{file["absolute_path"]}")
129
+ @downloader.upload(file["path"], file["absolute_path"])
130
+ Cnvrg::Logger.log_info("#{file["absolute_path"]} uploaded.")
137
131
  rescue => e
138
- Cnvrg::Logger.log_error_message("Error while upload single file #{file[:path]}")
132
+ Cnvrg::Logger.log_error_message("Error while upload single file #{file["path"]}")
139
133
  Cnvrg::Logger.log_error(e)
140
134
  end
141
135
  end
@@ -889,9 +883,8 @@ module Cnvrg
889
883
 
890
884
  def download_files_in_chunks(files, chunk_size: 1000, conflict: false, commit: 'latest', progress: nil)
891
885
  begin
892
- ttl_files = 0
893
886
  files.each_slice(chunk_size).each do |files|
894
- ttl_files += download_files_chunk(files, conflict: conflict, progress: progress)
887
+ download_files_chunk(files, conflict: conflict, progress: progress)
895
888
  end
896
889
  return Cnvrg::Result.new(true, "Download Completed")
897
890
  rescue Exception => e
@@ -942,61 +935,26 @@ module Cnvrg
942
935
 
943
936
  def download_multiple_files_s3(files, project_home, conflict: false, progressbar: nil, read_only:false)
944
937
  begin
945
- props = Cnvrg::Helpers.get_s3_props(files)
946
- client = props[:client]
947
- iv = props[:iv]
948
- key = props[:key]
949
- bucket = props[:bucket]
950
- download_succ_count = 0
951
- if read_only
952
- in_threads = 1000
953
- else
954
- in_threads = ParallelThreads
955
- end
956
938
  parallel_options = {
957
- in_threads: in_threads,
939
+ in_threads: ParallelThreads,
958
940
  isolation: true
959
941
  }
960
942
  Parallel.map(files["keys"], parallel_options) do |f|
961
-
962
- file_path = f["name"]
943
+ local_path = @dataset.working_dir + '/' + f['name']
944
+ Cnvrg::Logger.log_info("Downloading #{local_path}")
963
945
  progressbar.progress += 1 if progressbar.present?
964
- if file_path.end_with? "/"
965
- # dir
966
- if download_dir(project_home, file_path)
967
- download_succ_count += 1
968
- else
969
- return Cnvrg::Result.new(false,"Could not create directory: #{file_path}")
970
- raise Parallel::Kill
971
- end
972
- else
946
+ if local_path.end_with? "/"
947
+ @downloader.mkdir(local_path, recursive: true)
948
+ next
949
+ end
973
950
  # blob
974
951
  begin
975
- file_key = Cnvrg::Helpers.decrypt(key,iv, f["path"])
976
- resp = false
977
- file_path = "#{file_path}.conflict" if conflict
978
- dirname = File.dirname file_path
979
- download_dir(project_home, dirname) unless dirname.eql? "."
980
- Cnvrg::Logger.info("Download #{file_path}")
981
- File.open(project_home+"/"+file_path, 'w+') do |file|
982
- resp = client.get_object({bucket:bucket,
983
- key:file_key}, target: file)
984
- end
985
- Cnvrg::Logger.log_info("Download #{file_path} success")
952
+ local_path = "#{local_path}.conflict" if conflict
953
+ storage_path = f["path"]
986
954
 
987
- if resp
988
- download_succ_count +=1
989
- else
990
- return Cnvrg::Result.new(false,"Could not create file: #{file_path}")
955
+ @downloader.download(storage_path, local_path)
956
+ Cnvrg::Logger.log_info("Download #{local_path} success")
991
957
  end
992
- rescue => e
993
- return Cnvrg::Result.new(false,"Could not create file: #{file_path}", e.message, e.backtrace)
994
- raise Parallel::Kill
995
- end
996
- end
997
- end
998
- if download_succ_count == files["keys"].size
999
- return Cnvrg::Result.new(true,"Done.\nDownloaded #{download_succ_count} files")
1000
958
  end
1001
959
  rescue => e
1002
960
  return Cnvrg::Result.new(false,"Could not download some files", e.message, e.backtrace)