cnvrg 1.6.14 → 1.6.15

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 464db61203d8184ba21a0b17054b08eac5c55f63cfead2484f4ef0b00d902f94
4
- data.tar.gz: f56302c84bc02289d876699dd8ac4df31dba148f15beabd92533d8fca824bfdc
3
+ metadata.gz: da2bf544fbb1248b902085a73ea2bb9ab008afd8b635b7be82dd3f6c6678ec72
4
+ data.tar.gz: 29829d584b729b86bc0637647063924927182c6a99d08f3757649516cd6dbefb
5
5
  SHA512:
6
- metadata.gz: 4373ec0d34b3049a5a0da66dfaa71df71569770c5c6581cc49306f4041420d1c5e043502a89f139eb43d75b2585170a82990f6d13ab5e8acf8614284d904fd69
7
- data.tar.gz: 4228f9fd6547d7d649771b10a13c72f2d1aa24ca6903b8ae828c1837cd3fa92080b41c0f927de34789d62ef89427998eb699787662bff4b38f94cb675b8b5104
6
+ metadata.gz: 12901887e4d8e2a39107ec863f0b520c70dde335fbbab3626fa5fdc8f14830a3fd00b26445fea305ddc2fa943bd4f66d38eb234f10c6f107c414be6723c70f58
7
+ data.tar.gz: 9ea2f33d969fd555401a87556f765532e1fcaa9e385da8fa309a9a269b7dce2d506409013574e0f0b198c71a1d9e329063f85d32afac1f8daa69ec1aa4930143
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_runtime_dependency 'open4', '~> 1.3', '>= 1.3.4'
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
- spec.add_runtime_dependency 'aws-sdk', '~> 2'
34
+ spec.add_runtime_dependency 'aws-sdk', '~> 2.11.417'
35
35
  spec.add_runtime_dependency 'signet', '~> 0.11.0'
36
36
  spec.add_runtime_dependency 'google-cloud-env', '~> 1.2.1'
37
37
  spec.add_runtime_dependency 'google-cloud-core', '~> 1.3.2'
@@ -845,7 +845,6 @@ module Cnvrg
845
845
  begin
846
846
  verify_logged_in(false)
847
847
  log_start(__method__, args, options)
848
- return if check_pod_restart[1] ## It means that all datasets downloaded successfully
849
848
  commit = options["commit"] || commit
850
849
  only_tree = options["only_tree"] || only_tree
851
850
  read = options["read"] || read || false
@@ -1781,7 +1780,6 @@ module Cnvrg
1781
1780
  begin
1782
1781
  verify_logged_in(false)
1783
1782
  log_start(__method__, args, options)
1784
- return if check_pod_restart[0] ## It means that project downloaded successfully
1785
1783
  url_parts = project_url.split("/")
1786
1784
  project_index = Cnvrg::Helpers.look_for_in_path(project_url, "projects")
1787
1785
  slug = url_parts[project_index + 1]
@@ -2155,6 +2153,7 @@ module Cnvrg
2155
2153
  new_branch: new_branch,
2156
2154
  progressbar: progressbar,
2157
2155
  partial_commit: partial_commit)
2156
+
2158
2157
  files_uploaded += upload_resp
2159
2158
  temp_tree.each do |k, v|
2160
2159
  new_tree[k] = (v.present?) ? {sha1: v.try(:fetch, :sha1, nil), commit_time: nil} : nil
@@ -2293,7 +2292,9 @@ module Cnvrg
2293
2292
  :total => (to_upload.size + deleted.size),
2294
2293
  :autofinish => true)
2295
2294
  @files.upload_multiple_files(to_upload, commit_sha1, progress: progressbar)
2295
+
2296
2296
  @files.delete_files_from_server(deleted, commit_sha1)
2297
+
2297
2298
  progressbar.finish
2298
2299
  res = @files.end_commit(commit_sha1, force: force, message: commit_msg)
2299
2300
  unless Cnvrg::CLI.is_response_success(res, false)
@@ -116,6 +116,7 @@ module Cnvrg
116
116
 
117
117
  def upload_multiple_files(commit_sha1, tree, threads: ParallelThreads, force: false, new_branch: false, progressbar: nil, prefix: '', partial_commit: nil)
118
118
  begin
119
+ cli=CLI.new
119
120
  Cnvrg::Logger.log_info("Sending Upload Files request")
120
121
  upload_resp = Cnvrg::API.request(@base_resource + "upload_files", 'POST_JSON', {commit_sha1: commit_sha1, tree: tree, force: force, is_branch: new_branch, partial_commit: partial_commit})
121
122
  unless Cnvrg::CLI.is_response_success(upload_resp, false)
@@ -132,16 +133,24 @@ module Cnvrg
132
133
  progressbar.progress += tree.keys.length - files.length if progressbar.present?
133
134
  Parallel.map((files.keys), {in_threads: threads}) do |k|
134
135
  o = tree[k].merge(files[k])
135
- upload_single_file(o)
136
+ success = upload_single_file(o)
137
+ if not success
138
+ files.except!(k)
139
+ tree.except!(k)
140
+ cli.log_message("Error while uploading file: #{o[:absolute_path]}", Thor::Shell::Color::RED)
141
+ Cnvrg::Logger.log_error_message("Error while upload single file #{o["path"]}")
142
+ end
136
143
  progressbar.progress += 1 if progressbar.present?
137
144
  end
138
145
  blob_ids = files.values.map {|f| f['bv_id']}
139
- dirs = tree.keys.select {|k| tree[k].nil?} || []
140
- Cnvrg::Logger.info("Sending Upload files save")
141
- upload_resp = Cnvrg::API.request(@base_resource + "upload_files_save", "POST", {commit: commit_sha1, blob_ids: blob_ids, dirs: dirs})
142
- unless Cnvrg::CLI.is_response_success(upload_resp, false)
143
- Cnvrg::Logger.log_method(bind: binding)
144
- raise Exception.new("Got an error message from server, #{upload_resp.try(:fetch, "message")}")
146
+ if blob_ids.present?
147
+ dirs = tree.keys.select {|k| tree[k].nil?} || []
148
+ Cnvrg::Logger.info("Sending Upload files save")
149
+ upload_resp = Cnvrg::API.request(@base_resource + "upload_files_save", "POST", {commit: commit_sha1, blob_ids: blob_ids, dirs: dirs})
150
+ unless Cnvrg::CLI.is_response_success(upload_resp, false)
151
+ Cnvrg::Logger.log_method(bind: binding)
152
+ raise Exception.new("Got an error message from server, #{upload_resp.try(:fetch, "message")}")
153
+ end
145
154
  end
146
155
  Cnvrg::Logger.log_info("Upload Success")
147
156
  return files.keys.length
@@ -155,13 +164,17 @@ module Cnvrg
155
164
 
156
165
  def upload_single_file(file)
157
166
  begin
158
- file = file.as_json
159
- Cnvrg::Logger.log_info("Uploading #{file["absolute_path"]}")
160
- @downloader.upload(file["path"], file["absolute_path"])
161
- Cnvrg::Logger.log_info("#{file["absolute_path"]} uploaded.")
167
+ cli = CLI.new
168
+ file = file.as_json
169
+ Cnvrg::Logger.log_info("Uploading #{file["absolute_path"]}")
170
+ success = @downloader.upload(file["path"], file["absolute_path"])
171
+ return false if not success
172
+ Cnvrg::Logger.log_info("#{file["absolute_path"]} uploaded.")
162
173
  rescue => e
174
+ cli.log_message(e.message, Thor::Shell::Color::RED)
163
175
  Cnvrg::Logger.log_error_message("Error while upload single file #{file["path"]}")
164
176
  Cnvrg::Logger.log_error(e)
177
+ return false
165
178
  end
166
179
  end
167
180
 
@@ -20,7 +20,26 @@ module Cnvrg
20
20
  end
21
21
 
22
22
  def upload(storage_path, local_path)
23
- client.create_block_blob(@container, storage_path, File.open(local_path, "rb"))
23
+ begin
24
+ try_upload_file(storage_path, local_path)
25
+ rescue => e
26
+ raise e
27
+ end
28
+ end
29
+
30
+ def try_upload_file(storage_path, local_path)
31
+ c = 20
32
+ error = nil
33
+ while c > 0
34
+ begin
35
+ client.create_block_blob(@container, storage_path, File.open(local_path, "rb"))
36
+ break
37
+ rescue => e
38
+ c -= 1
39
+ error = e
40
+ end
41
+ end
42
+ raise error if error.present?
24
43
  end
25
44
 
26
45
  def fetch_files(prefix: nil, marker: nil, limit: 10000)
@@ -11,7 +11,7 @@ module Cnvrg
11
11
  @tempfile = nil
12
12
  @bucket_name = Cnvrg::Helpers.decrypt(@key, @iv, bucket_name)
13
13
  init_gcp_credentials
14
- @storage = Google::Cloud::Storage.new(project_id: @project_id, credentials: @credentials)
14
+ @storage = Google::Cloud::Storage.new(project_id: @project_id, credentials: @credentials, retries: 20, timeout: 10)
15
15
  @bucket = @storage.bucket(@bucket_name)
16
16
  @bucket.name
17
17
  rescue => e
@@ -38,7 +38,11 @@ module Cnvrg
38
38
  end
39
39
 
40
40
  def upload(storage_path, local_path)
41
- @bucket.create_file(local_path, storage_path)
41
+ begin
42
+ @bucket.create_file(local_path, storage_path)
43
+ rescue => e
44
+ raise e
45
+ end
42
46
  end
43
47
  end
44
48
  end
@@ -54,6 +54,8 @@ module Cnvrg
54
54
  # local path is fullpath for the file /home/ubuntu/user.../hazilim.py
55
55
  o = aws_bucket.object(storage_path)
56
56
  o.upload_file(local_path, @upload_options)
57
+ rescue => e
58
+ raise e
57
59
  end
58
60
 
59
61
  def fetch_files(prefix: nil, marker: nil, limit: 1000)
@@ -85,6 +85,7 @@ module Cnvrg
85
85
  Cnvrg::Logger.log_info("Upload files to older server..")
86
86
  return self.upload_files_old(files_list, commit_sha1, progress: progress)
87
87
  end
88
+
88
89
  files_list = files_list.map{|x| [x,self.parse_file(x)]}.to_h
89
90
  resp = Cnvrg::API.request(@base_resource + "upload_files", 'POST', {files: files_list, commit: commit_sha1})
90
91
  unless Cnvrg::CLI.is_response_success(resp, false)
@@ -99,6 +100,7 @@ module Cnvrg
99
100
  begin
100
101
  Cnvrg::Helpers.try_until_success{self.upload_single_file(files[file].merge(files_list[file]))}
101
102
  rescue => e
103
+
102
104
  Cnvrg::CLI.log_message("Failed to upload #{file}: #{e.message}", 'red')
103
105
  Cnvrg::Logger.log_error(e)
104
106
  Cnvrg::Logger.log_method(bind: binding)
@@ -329,10 +329,13 @@ module Cnvrg
329
329
  def get_storage_client
330
330
  response = Cnvrg::API.request("users/#{@owner}/projects/#{@slug}/client", 'GET')
331
331
  if Cnvrg::CLI.is_response_success(response, false)
332
+
332
333
  client_params = response['client']
333
334
  else
335
+
334
336
  client_params = get_storage_client_fallback
335
337
  end
338
+
336
339
  Cnvrg::Downloader::Client.factory(client_params)
337
340
  end
338
341
 
@@ -1,3 +1,3 @@
1
1
  module Cnvrg
2
- VERSION = '1.6.14'
2
+ VERSION = '1.6.15'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cnvrg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.14
4
+ version: 1.6.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yochay Ettun
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-01-21 00:00:00.000000000 Z
13
+ date: 2020-01-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -210,14 +210,14 @@ dependencies:
210
210
  requirements:
211
211
  - - "~>"
212
212
  - !ruby/object:Gem::Version
213
- version: '2'
213
+ version: 2.11.417
214
214
  type: :runtime
215
215
  prerelease: false
216
216
  version_requirements: !ruby/object:Gem::Requirement
217
217
  requirements:
218
218
  - - "~>"
219
219
  - !ruby/object:Gem::Version
220
- version: '2'
220
+ version: 2.11.417
221
221
  - !ruby/object:Gem::Dependency
222
222
  name: signet
223
223
  requirement: !ruby/object:Gem::Requirement
@@ -477,7 +477,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
477
477
  - !ruby/object:Gem::Version
478
478
  version: '0'
479
479
  requirements: []
480
- rubygems_version: 3.0.3
480
+ rubygems_version: 3.0.4
481
481
  signing_key:
482
482
  specification_version: 4
483
483
  summary: A CLI tool for interacting with cnvrg.io.