arvados-cli 0.1.20140216161445 → 0.1.20140310170846
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 +4 -4
- data/bin/arv +2 -2
- data/bin/arv-run-pipeline-instance +62 -12
- data/bin/crunch-job +30 -8
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51f045c6a8d86776032cb36809d9aa92b257470f
|
4
|
+
data.tar.gz: b3a2d880cf093efa2fd4a26de5bd14fbf9096cf8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afdb95ce244b20f0331919486a3eb661d9d9bcc7f9c9ac9e14153fb690b01fe79256cddb2da96681b735c1b2a226c34a4d6bf4eb93f8144676c442f2fd69e23b
|
7
|
+
data.tar.gz: b38765ee32bda7e530bdfa3a8506086d55acacdb6461f15b8d2307d2e18642a0ea2e974f919c461cdd459ca02b36dac6316aa14bb8854284148ccb7746de8219
|
data/bin/arv
CHANGED
@@ -36,10 +36,10 @@ case ARGV[0]
|
|
36
36
|
when 'keep'
|
37
37
|
ARGV.shift
|
38
38
|
@sub = ARGV.shift
|
39
|
-
if ['get', 'put'].index @sub then
|
39
|
+
if ['get', 'put', 'ls', 'normalize'].index @sub then
|
40
40
|
# Native Arvados
|
41
41
|
exec `which arv-#{@sub}`.strip, *ARGV
|
42
|
-
elsif ['
|
42
|
+
elsif ['less', 'check'].index @sub then
|
43
43
|
# wh* shims
|
44
44
|
exec `which wh#{@sub}`.strip, *ARGV
|
45
45
|
else
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
# == Synopsis
|
4
4
|
#
|
5
|
-
#
|
6
|
-
#
|
5
|
+
# arv-run-pipeline-instance --template pipeline-template-uuid [options] [--] [parameters]
|
6
|
+
# arv-run-pipeline-instance --instance pipeline-instance-uuid [options]
|
7
7
|
#
|
8
8
|
# Satisfy a pipeline template by finding or submitting a mapreduce job
|
9
9
|
# for each pipeline component.
|
@@ -21,7 +21,7 @@
|
|
21
21
|
# to finish. Just find out whether jobs are finished,
|
22
22
|
# queued, or running for each component
|
23
23
|
#
|
24
|
-
# [--
|
24
|
+
# [--submit] Do not try to satisfy any components. Just
|
25
25
|
# create an instance, print its UUID to
|
26
26
|
# stdout, and exit.
|
27
27
|
#
|
@@ -80,13 +80,15 @@ $arvados_api_token = ENV['ARVADOS_API_TOKEN'] or
|
|
80
80
|
|
81
81
|
begin
|
82
82
|
require 'rubygems'
|
83
|
-
require 'google/api_client'
|
84
83
|
require 'json'
|
85
84
|
require 'pp'
|
86
85
|
require 'trollop'
|
87
|
-
|
86
|
+
require 'google/api_client'
|
87
|
+
rescue LoadError => l
|
88
|
+
puts $:
|
88
89
|
abort <<-EOS
|
89
|
-
#{$0}: fatal:
|
90
|
+
#{$0}: fatal: #{l.message}
|
91
|
+
Some runtime dependencies may be missing.
|
90
92
|
Try: gem install pp google-api-client json trollop
|
91
93
|
EOS
|
92
94
|
end
|
@@ -173,10 +175,14 @@ p = Trollop::Parser.new do
|
|
173
175
|
"UUID of pipeline instance.",
|
174
176
|
:short => :none,
|
175
177
|
:type => :string)
|
176
|
-
opt(:
|
178
|
+
opt(:submit,
|
177
179
|
"Do not try to satisfy any components. Just create a pipeline instance and output its UUID.",
|
178
180
|
:short => :none,
|
179
181
|
:type => :boolean)
|
182
|
+
opt(:run_here,
|
183
|
+
"Manage the pipeline in process.",
|
184
|
+
:short => :none,
|
185
|
+
:type => :boolean)
|
180
186
|
stop_on [:'--']
|
181
187
|
end
|
182
188
|
$options = Trollop::with_standard_exception_handling p do
|
@@ -185,13 +191,33 @@ end
|
|
185
191
|
$debuglevel = $options[:debug_level] || ($options[:debug] && 1) || 0
|
186
192
|
|
187
193
|
if $options[:instance]
|
188
|
-
if $options[:template] or $options[:
|
189
|
-
abort "#{$0}: syntax error: --instance cannot be combined with --template or --
|
194
|
+
if $options[:template] or $options[:submit]
|
195
|
+
abort "#{$0}: syntax error: --instance cannot be combined with --template or --submit."
|
190
196
|
end
|
191
197
|
elsif not $options[:template]
|
192
198
|
abort "#{$0}: syntax error: you must supply a --template or --instance."
|
193
199
|
end
|
194
200
|
|
201
|
+
if $options[:run_here] == $options[:submit]
|
202
|
+
abort "#{$0}: syntax error: you must supply either --run-here or --submit."
|
203
|
+
end
|
204
|
+
|
205
|
+
# Suppress SSL certificate checks if ARVADOS_API_HOST_INSECURE
|
206
|
+
|
207
|
+
module Kernel
|
208
|
+
def suppress_warnings
|
209
|
+
original_verbosity = $VERBOSE
|
210
|
+
$VERBOSE = nil
|
211
|
+
result = yield
|
212
|
+
$VERBOSE = original_verbosity
|
213
|
+
return result
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
if ENV['ARVADOS_API_HOST_INSECURE']
|
218
|
+
suppress_warnings { OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE }
|
219
|
+
end
|
220
|
+
|
195
221
|
# Set up the API client.
|
196
222
|
|
197
223
|
$client ||= Google::APIClient.
|
@@ -498,7 +524,7 @@ class WhRunPipelineInstance
|
|
498
524
|
end
|
499
525
|
elsif c[:job][:running] ||
|
500
526
|
(!c[:job][:started_at] && !c[:job][:cancelled_at])
|
501
|
-
moretodo ||=
|
527
|
+
moretodo ||= true
|
502
528
|
elsif c[:job][:cancelled_at]
|
503
529
|
debuglog "component #{cname} job #{c[:job][:uuid]} cancelled."
|
504
530
|
end
|
@@ -507,6 +533,11 @@ class WhRunPipelineInstance
|
|
507
533
|
@instance[:components] = @components
|
508
534
|
@instance[:active] = moretodo
|
509
535
|
report_status
|
536
|
+
|
537
|
+
if @options[:no_wait]
|
538
|
+
moretodo = false
|
539
|
+
end
|
540
|
+
|
510
541
|
if moretodo
|
511
542
|
begin
|
512
543
|
sleep 10
|
@@ -516,7 +547,26 @@ class WhRunPipelineInstance
|
|
516
547
|
end
|
517
548
|
end
|
518
549
|
end
|
519
|
-
|
550
|
+
|
551
|
+
ended = 0
|
552
|
+
succeeded = 0
|
553
|
+
failed = 0
|
554
|
+
@components.each do |cname, c|
|
555
|
+
if c[:job]
|
556
|
+
if c[:job][:finished_at]
|
557
|
+
ended += 1
|
558
|
+
if c[:job][:success] == true
|
559
|
+
succeeded += 1
|
560
|
+
end
|
561
|
+
end
|
562
|
+
end
|
563
|
+
end
|
564
|
+
|
565
|
+
if ended == @components.length
|
566
|
+
@instance[:active] = false
|
567
|
+
@instance[:success] = (succeeded == @components.length)
|
568
|
+
end
|
569
|
+
|
520
570
|
@instance.save
|
521
571
|
end
|
522
572
|
|
@@ -579,7 +629,7 @@ begin
|
|
579
629
|
end
|
580
630
|
runner.apply_parameters(p.leftovers)
|
581
631
|
runner.setup_instance
|
582
|
-
if $options[:
|
632
|
+
if $options[:submit]
|
583
633
|
runner.instance.save
|
584
634
|
puts runner.instance[:uuid]
|
585
635
|
else
|
data/bin/crunch-job
CHANGED
@@ -84,6 +84,7 @@ unless (defined $ENV{"CRUNCH_TMP"}) {
|
|
84
84
|
}
|
85
85
|
}
|
86
86
|
$ENV{"JOB_WORK"} = $ENV{"CRUNCH_TMP"} . "/work";
|
87
|
+
$ENV{"CRUNCH_INSTALL"} = "$ENV{CRUNCH_TMP}/opt";
|
87
88
|
$ENV{"CRUNCH_WORK"} = $ENV{"JOB_WORK"}; # deprecated
|
88
89
|
mkdir ($ENV{"JOB_WORK"});
|
89
90
|
|
@@ -331,6 +332,15 @@ my $skip_install = ($local_job && $Job->{script_version} =~ m{^/});
|
|
331
332
|
if ($skip_install)
|
332
333
|
{
|
333
334
|
$ENV{"CRUNCH_SRC"} = $Job->{script_version};
|
335
|
+
for my $src_path ("$ENV{CRUNCH_SRC}/arvados/sdk/python") {
|
336
|
+
if (-d $src_path) {
|
337
|
+
system("virtualenv", "$ENV{CRUNCH_TMP}/opt") == 0
|
338
|
+
or croak ("virtualenv $ENV{CRUNCH_TMP}/opt failed: exit ".($?>>8));
|
339
|
+
system ("cd $src_path && ./build.sh && \$CRUNCH_TMP/opt/bin/python setup.py install")
|
340
|
+
== 0
|
341
|
+
or croak ("setup.py in $src_path failed: exit ".($?>>8));
|
342
|
+
}
|
343
|
+
}
|
334
344
|
}
|
335
345
|
else
|
336
346
|
{
|
@@ -367,7 +377,6 @@ else
|
|
367
377
|
|
368
378
|
$ENV{"CRUNCH_SRC_COMMIT"} = $Job->{script_version};
|
369
379
|
$ENV{"CRUNCH_SRC"} = "$ENV{CRUNCH_TMP}/src";
|
370
|
-
$ENV{"CRUNCH_INSTALL"} = "$ENV{CRUNCH_TMP}/opt";
|
371
380
|
|
372
381
|
my $commit;
|
373
382
|
my $git_archive;
|
@@ -546,8 +555,10 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
546
555
|
$ENV{"TASK_SLOT_NODE"} = $slot[$childslot]->{node}->{name};
|
547
556
|
$ENV{"TASK_SLOT_NUMBER"} = $slot[$childslot]->{cpu};
|
548
557
|
$ENV{"TASK_WORK"} = $ENV{"JOB_WORK"}."/".$slot[$childslot]->{cpu};
|
558
|
+
$ENV{"TASK_KEEPMOUNT"} = $ENV{"TASK_WORK"}."/keep";
|
549
559
|
$ENV{"TASK_TMPDIR"} = $ENV{"TASK_WORK"}; # deprecated
|
550
560
|
$ENV{"CRUNCH_NODE_SLOTS"} = $slot[$childslot]->{node}->{ncpus};
|
561
|
+
$ENV{"PATH"} = $ENV{"CRUNCH_INSTALL"} . "/bin:" . $ENV{"PATH"};
|
551
562
|
|
552
563
|
$ENV{"GZIP"} = "-n";
|
553
564
|
|
@@ -561,7 +572,7 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
561
572
|
my $build_script_to_send = "";
|
562
573
|
my $command =
|
563
574
|
"if [ -e $ENV{TASK_WORK} ]; then rm -rf $ENV{TASK_WORK}; fi; "
|
564
|
-
."mkdir -p $ENV{JOB_WORK} $ENV{CRUNCH_TMP} $ENV{TASK_WORK} "
|
575
|
+
."mkdir -p $ENV{JOB_WORK} $ENV{CRUNCH_TMP} $ENV{TASK_WORK} $ENV{TASK_KEEPMOUNT} "
|
565
576
|
."&& cd $ENV{CRUNCH_TMP} ";
|
566
577
|
if ($build_script)
|
567
578
|
{
|
@@ -571,10 +582,10 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
571
582
|
}
|
572
583
|
$ENV{"PYTHONPATH"} =~ s{^}{:} if $ENV{"PYTHONPATH"};
|
573
584
|
$ENV{"PYTHONPATH"} =~ s{^}{$ENV{CRUNCH_SRC}/sdk/python}; # xxx hack
|
574
|
-
$ENV{"PYTHONPATH"} =~ s{^}{$ENV{CRUNCH_SRC}/arvados/sdk/python}; # xxx hack
|
585
|
+
$ENV{"PYTHONPATH"} =~ s{^}{$ENV{CRUNCH_SRC}/arvados/sdk/python:}; # xxx hack
|
575
586
|
$ENV{"PYTHONPATH"} =~ s{$}{:/usr/local/arvados/src/sdk/python}; # xxx hack
|
576
587
|
$command .=
|
577
|
-
"&& exec $ENV{CRUNCH_SRC}/crunch_scripts/" . $Job->{"script"};
|
588
|
+
"&& exec arv-mount $ENV{TASK_KEEPMOUNT} --exec $ENV{CRUNCH_SRC}/crunch_scripts/" . $Job->{"script"};
|
578
589
|
my @execargs = ('bash', '-c', $command);
|
579
590
|
srun (\@srunargs, \@execargs, undef, $build_script_to_send);
|
580
591
|
exit (111);
|
@@ -1361,16 +1372,27 @@ open STDOUT, ">", "$destdir.log";
|
|
1361
1372
|
open STDERR, ">&STDOUT";
|
1362
1373
|
|
1363
1374
|
mkdir $destdir;
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1375
|
+
my @git_archive_data = <DATA>;
|
1376
|
+
if (@git_archive_data) {
|
1377
|
+
open TARX, "|-", "tar", "-C", $destdir, "-xf", "-";
|
1378
|
+
print TARX @git_archive_data;
|
1379
|
+
if(!close(TARX)) {
|
1380
|
+
die "'tar -C $destdir -xf -' exited $?: $!";
|
1381
|
+
}
|
1368
1382
|
}
|
1369
1383
|
|
1370
1384
|
my $pwd;
|
1371
1385
|
chomp ($pwd = `pwd`);
|
1372
1386
|
my $install_dir = $ENV{"CRUNCH_INSTALL"} || "$pwd/opt";
|
1373
1387
|
mkdir $install_dir;
|
1388
|
+
|
1389
|
+
for my $src_path ("$destdir/arvados/sdk/python") {
|
1390
|
+
if (-d $src_path) {
|
1391
|
+
shell_or_die ("virtualenv", $install_dir);
|
1392
|
+
shell_or_die ("cd $src_path && ./build.sh && $install_dir/bin/python setup.py install");
|
1393
|
+
}
|
1394
|
+
}
|
1395
|
+
|
1374
1396
|
if (-e "$destdir/crunch_scripts/install") {
|
1375
1397
|
shell_or_die ("$destdir/crunch_scripts/install", $install_dir);
|
1376
1398
|
} elsif (!-e "./install.sh" && -e "./tests/autotests.sh") {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arvados-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20140310170846
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arvados Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-api-client
|
@@ -132,7 +132,7 @@ dependencies:
|
|
132
132
|
- - ~>
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
version: '0.8'
|
135
|
-
description: This is the Arvados SDK CLI gem, git revision
|
135
|
+
description: This is the Arvados SDK CLI gem, git revision c912d9d8d9e2a055a53967c5b01242c321dfbeb6
|
136
136
|
email: gem-dev@curoverse.com
|
137
137
|
executables:
|
138
138
|
- arv
|
@@ -143,8 +143,8 @@ extensions: []
|
|
143
143
|
extra_rdoc_files: []
|
144
144
|
files:
|
145
145
|
- bin/arv
|
146
|
-
- bin/arv-crunch-job
|
147
146
|
- bin/arv-run-pipeline-instance
|
147
|
+
- bin/arv-crunch-job
|
148
148
|
- bin/arv-tag
|
149
149
|
- bin/crunch-job
|
150
150
|
homepage: http://arvados.org
|
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
167
|
version: '0'
|
168
168
|
requirements: []
|
169
169
|
rubyforge_project:
|
170
|
-
rubygems_version: 2.
|
170
|
+
rubygems_version: 2.0.14
|
171
171
|
signing_key:
|
172
172
|
specification_version: 4
|
173
173
|
summary: Arvados SDK CLI
|