cnvrg 1.5.3 → 1.5.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cnvrg/cli.rb +81 -7
- data/lib/cnvrg/data.rb +7 -2
- data/lib/cnvrg/datafiles.rb +2 -2
- data/lib/cnvrg/project.rb +13 -0
- data/lib/cnvrg/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfc351ff0936f6dd53e58da8ced925f7000c68d2e5ffa3c687d15fc090faafc1
|
4
|
+
data.tar.gz: 2e32e0decc29ef4b41a08c82c74fdf8b197c8844d1d49f98efcb81284977b967
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71928a5eba809f59237be1ff75e58df1ac8b41203705278cf110b96acade3ab04c5073135a1e0eae3c58621d896d13f47fc2be9099a715be0d3e1f1c4a6e7d5f
|
7
|
+
data.tar.gz: 563db133a90bccdca1ca4eec07cf8dc7356a551647ebfd19a9936752ea65097386b8c20f429f690c75525d83a72130b14aa1c5e023961617672e1d4c1fb05ad2
|
data/lib/cnvrg/cli.rb
CHANGED
@@ -1948,19 +1948,22 @@ module Cnvrg
|
|
1948
1948
|
method_option :all_files, :type => :boolean, :aliases => ["--all"], :desc => "download specified commit", :default => true
|
1949
1949
|
method_option :parallel, :type => :numeric, :aliases => ["-p", "--parallel"], :desc => "uparallel upload at the same time", :default => 15
|
1950
1950
|
method_option :init, :type => :boolean, :aliases => ["--initial"], :desc => "initial sync", :default => false
|
1951
|
+
method_option :message, :type => :string, :aliases => ["--message"], :desc => "create commit with message", :default => nil
|
1951
1952
|
|
1952
|
-
|
1953
|
+
|
1954
|
+
def sync_data_new(new_branch, force, verbose, commit, all_files, tags ,parallel, chunk_size, init, message)
|
1953
1955
|
verify_logged_in(true)
|
1954
1956
|
log_start(__method__, args, options)
|
1955
1957
|
log_message('Syncing dataset', Thor::Shell::Color::BLUE, !options["verbose"])
|
1958
|
+
|
1956
1959
|
if !force and !init
|
1957
1960
|
# w(verbose=false, new_branch=false,sync=false, commit=nil,all_files=true)
|
1958
1961
|
invoke :download_data_new,[verbose, new_branch, true, commit, all_files], :new_branch=>new_branch, :direct=>false, :force =>force
|
1959
1962
|
end
|
1960
1963
|
|
1961
1964
|
# w(new_branch, verbose,sync,force, tags, chunk_size)
|
1962
|
-
invoke :upload_data_new,[new_branch,
|
1963
|
-
:direct=>false, :force =>force, :sync =>true, :tags =>tags, :parallel => parallel
|
1965
|
+
invoke :upload_data_new,[new_branch, verbose, true, force, tags, chunk_size, message:message], :new_branch=>new_branch,
|
1966
|
+
:direct=>false, :force =>force, :sync =>true, :tags =>tags, :parallel => parallel, :message => message
|
1964
1967
|
|
1965
1968
|
end
|
1966
1969
|
desc 'upload_data_new', 'upload_data_new', :hide => true
|
@@ -1970,14 +1973,16 @@ module Cnvrg
|
|
1970
1973
|
method_option :sync, :type => :boolean, :aliases => ["-s","--sync"], :default => false
|
1971
1974
|
method_option :tags, :type => :boolean, :aliases => ["--tags"], :desc => "upload file tags", :default => false
|
1972
1975
|
method_option :parallel, :type => :numeric, :aliases => ["-p", "--parallel"], :desc => "uparallel upload at the same time", :default => 15
|
1973
|
-
|
1976
|
+
method_option :message, :type => :string, :aliases => ["--message"], :desc => "create commit with message", :default => nil
|
1977
|
+
|
1978
|
+
def upload_data_new(new_branch, verbose, sync, force, tags, chunk_size, message:nil)
|
1974
1979
|
begin
|
1975
|
-
commit = invoke :start_commit_data,[], :new_branch=> new_branch, :direct=>false, :force =>force, :chunk_size => chunk_size
|
1980
|
+
commit = invoke :start_commit_data,[], :new_branch=> new_branch, :direct=>false, :force =>force, :chunk_size => chunk_size, :message => message
|
1976
1981
|
upload_res = invoke :upload_data_files,[commit],:new_branch=>new_branch, :verbose =>verbose, :force =>force, :sync =>sync, :chunk_size => chunk_size
|
1977
1982
|
if upload_res < 0
|
1978
1983
|
return
|
1979
1984
|
end
|
1980
|
-
invoke :end_commit_data,[commit, success: true, uploaded_files: upload_res]
|
1985
|
+
invoke :end_commit_data,[commit, success: true, uploaded_files: upload_res], :new_branch=>new_branch, :force =>force
|
1981
1986
|
if tags
|
1982
1987
|
log_message('Uploading Tags', Thor::Shell::Color::BLUE)
|
1983
1988
|
dataset_dir = is_cnvrg_dir(Dir.pwd)
|
@@ -2017,6 +2022,7 @@ module Cnvrg
|
|
2017
2022
|
method_option :direct, :type => :boolean, :aliases => ["-d", "--direct"], :desc => "was called directed", :default => true
|
2018
2023
|
method_option :force, :type => :boolean, :aliases => ["-f", "--force"], :default => false
|
2019
2024
|
method_option :chunk_size, :type => :numeric, :aliases => ["-ch"], :default => 0
|
2025
|
+
method_option :message, :type => :string, :aliases => ["--message"], :desc => "create commit with message", :default => nil
|
2020
2026
|
|
2021
2027
|
def start_commit_data()
|
2022
2028
|
verify_logged_in(true)
|
@@ -2026,13 +2032,14 @@ module Cnvrg
|
|
2026
2032
|
new_branch = options["new_branch"] || false
|
2027
2033
|
force = options["force"] || false
|
2028
2034
|
chunk_size = options["chunk_size"] || false
|
2035
|
+
message = options["message"]
|
2029
2036
|
commit_sha1 = nil
|
2030
2037
|
@dataset = Dataset.new(dataset_dir)
|
2031
2038
|
@dataset.backup_idx
|
2032
2039
|
@files = Cnvrg::Datafiles.new(@dataset.owner, @dataset.slug, dataset: @dataset)
|
2033
2040
|
next_commit = @dataset.get_next_commit #if there was a partial commit..
|
2034
2041
|
chunks = (@dataset.list_all_files.length.to_f / chunk_size).ceil
|
2035
|
-
resp = @files.start_commit(new_branch, force, chunks: chunks, dataset: @dataset)
|
2042
|
+
resp = @files.start_commit(new_branch, force, chunks: chunks, dataset: @dataset, message: message)
|
2036
2043
|
if !resp['result']['can_commit']
|
2037
2044
|
log_message("Cant upload files because a new version of this dataset exists, please download it or upload with --force", Thor::Shell::Color::RED)
|
2038
2045
|
exit(1)
|
@@ -2516,6 +2523,73 @@ module Cnvrg
|
|
2516
2523
|
end
|
2517
2524
|
end
|
2518
2525
|
|
2526
|
+
desc 'commit before termination', 'Commit job code before termination'
|
2527
|
+
def commit_before_termination()
|
2528
|
+
job_type = ENV['CNVRG_JOB_TYPE']
|
2529
|
+
job_id = ENV['CNVRG_JOB_ID']
|
2530
|
+
return unless job_type.present? and job_id.present?
|
2531
|
+
invoke :sync, [false], :job_slug => job_id, :job_type => job_type, :new_branch => true, :in_exp=> true
|
2532
|
+
rescue => e
|
2533
|
+
log_error(e)
|
2534
|
+
end
|
2535
|
+
|
2536
|
+
desc 'update_job_commit', 'Update job with its last commit'
|
2537
|
+
def update_job_commit()
|
2538
|
+
job_type = ENV['CNVRG_JOB_TYPE']
|
2539
|
+
job_id = ENV['CNVRG_JOB_ID']
|
2540
|
+
return unless job_type.present? and job_id.present?
|
2541
|
+
verify_logged_in(true)
|
2542
|
+
log_start(__method__, args, options)
|
2543
|
+
project_home = get_project_home
|
2544
|
+
@project = Project.new(project_home)
|
2545
|
+
current_commit = @project.get_idx[:commit] rescue nil
|
2546
|
+
commit = @project.get_job_last_commit(job_type, job_id)
|
2547
|
+
if commit.present? and commit != current_commit
|
2548
|
+
invoke :download, [false, "", true ], :commit => commit
|
2549
|
+
end
|
2550
|
+
rescue
|
2551
|
+
end
|
2552
|
+
|
2553
|
+
desc 'update running jupyter token to server', 'update running jupyter token to server', :hide =>true
|
2554
|
+
def update_jupyter_token()
|
2555
|
+
begin
|
2556
|
+
job_type = ENV['CNVRG_JOB_TYPE']
|
2557
|
+
job_id = ENV['CNVRG_JOB_ID']
|
2558
|
+
return unless job_type.present? and job_id.present?
|
2559
|
+
verify_logged_in(true)
|
2560
|
+
log_start(__method__, args, options)
|
2561
|
+
count = 0
|
2562
|
+
token = nil
|
2563
|
+
while count < 20
|
2564
|
+
res = `jupyter notebook list`
|
2565
|
+
match = res.match(/token=(\w+)/)
|
2566
|
+
if match.present?
|
2567
|
+
token = match[1]
|
2568
|
+
break
|
2569
|
+
end
|
2570
|
+
sleep(0.5)
|
2571
|
+
end
|
2572
|
+
if token.blank?
|
2573
|
+
log_message("Failed to find jupyter token", Thor::Shell::Color::RED)
|
2574
|
+
return
|
2575
|
+
end
|
2576
|
+
log_message("Found token #{token}", Thor::Shell::Color::BLUE)
|
2577
|
+
project_home = get_project_home
|
2578
|
+
@project = Project.new(project_home)
|
2579
|
+
puts(token)
|
2580
|
+
resp = @project.update_job_jupyter_token(job_type, job_id, token)
|
2581
|
+
if resp["status"] == 200
|
2582
|
+
log_message("Updated jupter token successfully", Thor::Shell::Color::BLUE)
|
2583
|
+
else
|
2584
|
+
log_message("Failed to update jupyter token ", Thor::Shell::Color::RED)
|
2585
|
+
end
|
2586
|
+
rescue => e
|
2587
|
+
log_error(e)
|
2588
|
+
log_message("Error while trying to get jupyter token ", Thor::Shell::Color::RED)
|
2589
|
+
return
|
2590
|
+
end
|
2591
|
+
end
|
2592
|
+
|
2519
2593
|
|
2520
2594
|
desc 'download', 'Download updated files'
|
2521
2595
|
method_option :new_branch, :type => :boolean, :aliases => ["-nb"], :desc => "create new branch of commits"
|
data/lib/cnvrg/data.rb
CHANGED
@@ -29,6 +29,8 @@ module Cnvrg
|
|
29
29
|
method_option :sync, :type => :boolean, :aliases => ["-s","--sync"], :default => false
|
30
30
|
method_option :tags, :type => :boolean, :aliases => ["--tags"], :desc => "upload file tags", :default => false
|
31
31
|
method_option :chunk_size, :type => :numeric, :aliases => ["--chunk"], :desc => "upload file tags", :default => 1000
|
32
|
+
method_option :message, :type => :string, :aliases => ["--message"], :desc => "create commit with message", :default => nil
|
33
|
+
|
32
34
|
def upload
|
33
35
|
cli = Cnvrg::CLI.new()
|
34
36
|
verbose = options["verbose"]
|
@@ -37,7 +39,8 @@ module Cnvrg
|
|
37
39
|
new_branch = options["new_branch"]
|
38
40
|
chunk_size = options["chunk_size"]
|
39
41
|
tags = options["tags"]
|
40
|
-
|
42
|
+
message = options["message"]
|
43
|
+
cli.upload_data_new(new_branch, verbose, sync, force, tags, chunk_size, message:message)
|
41
44
|
end
|
42
45
|
desc 'data sync', 'Synchronise local dataset directory with remote server'
|
43
46
|
method_option :new_branch, :type => :boolean, :aliases => ["-nb"], :desc => "create new branch of commits"
|
@@ -49,6 +52,7 @@ module Cnvrg
|
|
49
52
|
method_option :parallel, :type => :numeric, :aliases => ["-p", "--parallel"], :desc => "uparallel upload at the same time", :default => 15
|
50
53
|
method_option :chunk_size, :type => :numeric, :aliases => ["--chunk_size"], :desc => "chunk size to communicate with the server", :default => 1000
|
51
54
|
method_option :init, :type => :boolean, :aliases => ["--initial"], :desc => "initial upload of dataset", :default => false
|
55
|
+
method_option :message, :type => :string, :aliases => ["--message"], :desc => "create commit with message", :default => nil
|
52
56
|
|
53
57
|
def sync_data_new()
|
54
58
|
cli = Cnvrg::CLI.new()
|
@@ -61,7 +65,8 @@ module Cnvrg
|
|
61
65
|
parallel=options["parallel"]
|
62
66
|
chunk_size = options["chunk_size"]
|
63
67
|
init = options["init"]
|
64
|
-
|
68
|
+
message = options["message"]
|
69
|
+
cli.sync_data_new(new_branch, force, verbose, commit, all_files, tags, parallel, chunk_size, init, message)
|
65
70
|
end
|
66
71
|
desc 'data download', 'Download files from remote server'
|
67
72
|
method_option :new_branch, :type => :boolean, :aliases => ["-nb"], :desc => "create new branch of commits", :default => false
|
data/lib/cnvrg/datafiles.rb
CHANGED
@@ -854,7 +854,7 @@ module Cnvrg
|
|
854
854
|
Cnvrg::CLI.is_response_success(response, true)
|
855
855
|
return response
|
856
856
|
end
|
857
|
-
def start_commit(new_branch,force=false,delete_commit=nil, chunks: 0, dataset: @dataset)
|
857
|
+
def start_commit(new_branch,force=false,delete_commit=nil, chunks: 0, dataset: @dataset, message:nil)
|
858
858
|
begin
|
859
859
|
#if we are pushing with force or to branch we dont need to send current/next commit cause we want to
|
860
860
|
# create a new commit.
|
@@ -862,7 +862,7 @@ module Cnvrg
|
|
862
862
|
commit = idx[:commit]
|
863
863
|
next_commit = idx[:next_commit]
|
864
864
|
response = Cnvrg::API.request("#{base_resource}/commit/start", 'POST', {dataset_slug: @dataset_slug, new_branch: new_branch,force:force,
|
865
|
-
username: @owner,current_commit: commit, next_commit: next_commit, total_chunks: chunks})
|
865
|
+
username: @owner,current_commit: commit, next_commit: next_commit, total_chunks: chunks, message: message})
|
866
866
|
Cnvrg::CLI.is_response_success(response, true)
|
867
867
|
return response
|
868
868
|
rescue => e
|
data/lib/cnvrg/project.rb
CHANGED
@@ -471,6 +471,13 @@ module Cnvrg
|
|
471
471
|
return response
|
472
472
|
end
|
473
473
|
|
474
|
+
def get_job_last_commit(job_type, job_id)
|
475
|
+
base_url = "users/#{self.owner}/projects/#{self.slug}/jobs/#{job_type.underscore}/#{job_id}"
|
476
|
+
resp = Cnvrg::API.request("#{base_url}/last_commit", "GET")
|
477
|
+
commit = resp["commit"]
|
478
|
+
return commit
|
479
|
+
end
|
480
|
+
|
474
481
|
def compare_idx(new_branch, force:false, deploy: false, in_exp:false, specific_files: [], download: false)
|
475
482
|
is_download = download
|
476
483
|
if is_download
|
@@ -638,6 +645,12 @@ module Cnvrg
|
|
638
645
|
@machines || []
|
639
646
|
end
|
640
647
|
|
648
|
+
|
649
|
+
def update_job_jupyter_token(job_type, job_id, token)
|
650
|
+
base_url = "users/#{self.owner}/projects/#{self.slug}/jobs/#{job_type.underscore}/#{job_id}"
|
651
|
+
Cnvrg::API.request("#{base_url}/update_jupyter_token", "POST", {token: token})
|
652
|
+
end
|
653
|
+
|
641
654
|
def check_machine(machine)
|
642
655
|
Cnvrg::Logger.log_info("Check if #{machine} machine exists")
|
643
656
|
machines = get_machines
|
data/lib/cnvrg/version.rb
CHANGED
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.5.
|
4
|
+
version: 1.5.6
|
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: 2019-08-
|
13
|
+
date: 2019-08-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -432,7 +432,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
432
432
|
- !ruby/object:Gem::Version
|
433
433
|
version: '0'
|
434
434
|
requirements: []
|
435
|
-
|
435
|
+
rubyforge_project:
|
436
|
+
rubygems_version: 2.7.9
|
436
437
|
signing_key:
|
437
438
|
specification_version: 4
|
438
439
|
summary: A CLI tool for interacting with cnvrg.io.
|