cnvrg 0.0.148 → 0.0.149

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.
@@ -78,15 +78,15 @@ module Cnvrg
78
78
 
79
79
  end
80
80
 
81
- def exec_remote(command, commit_to_run, instance_type, image_slug,scheduling_query,local_timestamp, grid,path_to_cmd)
82
-
81
+ def exec_remote(command, commit_to_run, instance_type, image_slug,scheduling_query,local_timestamp, grid,path_to_cmd,data, data_commit)
83
82
  response = Cnvrg::API.request("users/#{@owner}/projects/#{@project_slug}/experiment/remote", 'POST', {command: command, image_slug: image_slug,
84
83
  commit_sha1: commit_to_run,
85
84
  instance_type: instance_type,
86
85
  scheduling_query:scheduling_query,
87
86
  local_timestamp:local_timestamp,
88
87
  grid: grid,
89
- path_to_cmd:path_to_cmd})
88
+ path_to_cmd:path_to_cmd,dataset_slug:data,
89
+ dataset_commit: data_commit})
90
90
  return response
91
91
  end
92
92
 
@@ -206,7 +206,7 @@ module Cnvrg
206
206
 
207
207
  end
208
208
 
209
- def upload_large_files_s3(upload_resp, file_path)
209
+ def upload_large_files_s3(upload_resp, file_path)
210
210
  begin
211
211
  sts_path = upload_resp["result"]["path_sts"]
212
212
  s4cmd_path = upload_resp["result"]["path_s4cmd"]
@@ -225,6 +225,14 @@ module Cnvrg
225
225
  URLcrypt::key = [body].pack('H*')
226
226
 
227
227
  python_version=`python --version > /dev/null 2>&1` ; is_python=$?.success?
228
+ if is_python
229
+
230
+ s4cmd=`pip freeze |grep s4cmd > /dev/null 2>&1` ; s4cmd_suc=$?.success?
231
+ if !s4cmd_suc
232
+ `pip install s4cmd > /dev/null 2>&1`
233
+ end
234
+
235
+ end
228
236
  if !is_python
229
237
  s3 = Aws::S3::Resource.new(
230
238
  :access_key_id => URLcrypt.decrypt(upload_resp["result"]["sts_a"]),
@@ -245,7 +253,6 @@ module Cnvrg
245
253
  response = http.request s4cmd_request
246
254
  s4cmd_body = response.read_body
247
255
  end
248
-
249
256
  s4cmd_new_body = s4cmd_body.gsub(" self.client = self.boto3.client('s3',
250
257
  aws_access_key_id=aws_access_key_id,
251
258
  aws_secret_access_key=aws_secret_access_key)"," self.client = self.boto3.client('s3',
@@ -253,6 +260,7 @@ module Cnvrg
253
260
  aws_secret_access_key='#{URLcrypt.decrypt(upload_resp["result"]["sts_s"])}',
254
261
  aws_session_token='#{URLcrypt.decrypt(upload_resp["result"]["sts_st"])}')")
255
262
 
263
+
256
264
  tmp = Tempfile.new('s4cmd.py')
257
265
  tmp << s4cmd_new_body
258
266
  tmp.flush
@@ -261,8 +269,7 @@ module Cnvrg
261
269
  is_success = false
262
270
  count = 0
263
271
  while !is_success and count <3
264
-
265
- resp = `python #{tmp.path} --max-singlepart-upload-size=#{MULTIPART_SPLIT} put -f #{file_path} s3://#{URLcrypt.decrypt(upload_resp["result"]["bucket"])}/#{upload_resp["result"]["path"]+"/"+File.basename(file_path)} > /dev/null 2>&1`
272
+ resp = `python #{tmp.path} --num-threads=128 --max-singlepart-upload-size=#{MULTIPART_SPLIT} put -f #{file_path} s3://#{URLcrypt.decrypt(upload_resp["result"]["bucket"])}/#{upload_resp["result"]["path"]+"/"+File.basename(file_path)} > /dev/null 2>&1`
266
273
  is_success =$?.success?
267
274
  count +=1
268
275
 
@@ -277,7 +284,6 @@ module Cnvrg
277
284
  if File.exist? tmp
278
285
  FileUtils.rm_rf [tmp]
279
286
  end
280
- puts e
281
287
  return false
282
288
 
283
289
  end
@@ -30,12 +30,14 @@ module Cnvrg
30
30
  end
31
31
 
32
32
  def update_ignore_list(new_ignore)
33
- if new_ignore.empty?
33
+ if new_ignore.nil? or new_ignore.empty?
34
34
  return true
35
35
  end
36
+ list = new_ignore.split(",")
36
37
  begin
37
38
  File.open(self.local_path+"/.cnvrgignore", "a+") do |f|
38
- new_ignore.each do |i|
39
+ f.puts("\n")
40
+ list.each do |i|
39
41
  f.puts("#{i}\n")
40
42
  end
41
43
  end
@@ -49,13 +51,18 @@ module Cnvrg
49
51
  ignore_list = []
50
52
  File.open(self.local_path+"/.cnvrgignore", "r").each_line do |line|
51
53
  line = line.strip
52
- if line.start_with? "#"
54
+ if line.start_with? "#" or ignore_list.include? line or line.empty?
53
55
  next
54
56
  end
55
- if line.end_with? "/"
56
- ignore_list << line.chop
57
- sub_dirs = Dir.glob("#{line}/**/*").each { |x| x.gsub!("//", "/") }
58
- ignore_list << sub_dirs.flatten
57
+ if line.end_with? "/" or File.directory?(line)
58
+ if line.end_with? "/"
59
+ ignore_list << line.chop
60
+ else
61
+ ignore_list << line
62
+ end
63
+ all_sub = Dir.glob("#{line}/**/*", File::FNM_DOTMATCH).flatten
64
+
65
+ ignore_list << all_sub.flatten
59
66
  else
60
67
  ignore_list << line
61
68
  end
@@ -72,7 +79,6 @@ module Cnvrg
72
79
  else
73
80
 
74
81
  list_dirs = [project_name,
75
- project_name + "/data",
76
82
  project_name + "/models",
77
83
  project_name + "/notebooks",
78
84
  project_name + "/src",
@@ -242,15 +248,18 @@ module Cnvrg
242
248
  list_ignore = self.get_ignore_list()
243
249
  list.each do |e|
244
250
  label = e.gsub(self.local_path + "/", "")
251
+
245
252
  if File.directory? e
246
253
  if list_ignore.include? label
247
254
  next
248
255
  end
256
+
249
257
  tree_idx[label+"/"] = nil
250
258
  else
251
259
  if list_ignore.include? label
252
260
  next
253
261
  end
262
+
254
263
  sha1 = Digest::SHA1.file(e).hexdigest
255
264
  if old_idx.nil? or old_idx.to_h[:tree].nil?
256
265
  tree_idx[label] = {sha1: sha1, commit_time: nil}
@@ -1,4 +1,4 @@
1
1
  module Cnvrg
2
- VERSION = '0.0.148'
2
+ VERSION = '0.0.149'
3
3
  end
4
4
 
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: 0.0.148
4
+ version: 0.0.149
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yochay Ettun
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-01 00:00:00.000000000 Z
12
+ date: 2017-05-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler