arvados-cli 0.1.20160331222945 → 0.1.20160502182247
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 +1 -1
- data/bin/arv-run-pipeline-instance +2 -2
- data/bin/crunch-job +29 -21
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 028deb623850341357235f78b0a0778c05a41553
|
4
|
+
data.tar.gz: 27461048cae5ade3b6a080ae407fce6be4eebdda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9a4f4bbe80b59cd33a937ee00be54b1e1d0ac83ce1917e56e29af2d791722153edced8759fc57eafbab4bc831bcdb912555855c547b96fe479a430db774fd6a
|
7
|
+
data.tar.gz: 35bd843bbd394c4f4eebad20914bdba94755bb63c258b5ba0adef0568bbfbc4baa384b7199cf1faad1320ac7a66a8ad8be0e2048fd2287463c4526df589d369f
|
data/bin/arv
CHANGED
@@ -566,7 +566,7 @@ def parse_arguments(discovery_document, subcommands)
|
|
566
566
|
end
|
567
567
|
end
|
568
568
|
|
569
|
-
discovered_params.each do |k,v|
|
569
|
+
discovered_params.merge({resource => {'type' => 'object'}}).each do |k,v|
|
570
570
|
k = k.to_sym
|
571
571
|
if ['object', 'array'].index(v["type"]) and method_opts.has_key? k
|
572
572
|
if method_opts[k].andand.match /^\//
|
@@ -17,7 +17,7 @@ begin
|
|
17
17
|
require 'trollop'
|
18
18
|
require 'google/api_client'
|
19
19
|
rescue LoadError => l
|
20
|
-
puts $:
|
20
|
+
$stderr.puts $:
|
21
21
|
abort <<-EOS
|
22
22
|
#{$0}: fatal: #{l.message}
|
23
23
|
Some runtime dependencies may be missing.
|
@@ -132,7 +132,7 @@ if $options[:instance]
|
|
132
132
|
abort "#{$0}: syntax error: --instance cannot be combined with --template or --submit."
|
133
133
|
end
|
134
134
|
elsif not $options[:template]
|
135
|
-
puts "error: you must supply a --template or --instance."
|
135
|
+
$stderr.puts "error: you must supply a --template or --instance."
|
136
136
|
p.educate
|
137
137
|
abort
|
138
138
|
end
|
data/bin/crunch-job
CHANGED
@@ -416,8 +416,17 @@ if ($docker_locator = $Job->{docker_image_locator}) {
|
|
416
416
|
Log (undef, "docker image hash is $docker_hash");
|
417
417
|
$docker_stream =~ s/^\.//;
|
418
418
|
my $docker_install_script = qq{
|
419
|
-
if
|
420
|
-
|
419
|
+
if $docker_bin images -q --no-trunc --all | grep -qxF \Q$docker_hash\E; then
|
420
|
+
exit 0
|
421
|
+
fi
|
422
|
+
declare -a exit_codes=("\${PIPESTATUS[@]}")
|
423
|
+
if [ 0 != "\${exit_codes[0]}" ]; then
|
424
|
+
exit "\${exit_codes[0]}" # `docker images` failed
|
425
|
+
elif [ 1 != "\${exit_codes[1]}" ]; then
|
426
|
+
exit "\${exit_codes[1]}" # `grep` encountered an error
|
427
|
+
else
|
428
|
+
# Everything worked fine, but grep didn't find the image on this host.
|
429
|
+
arv-get \Q$docker_locator$docker_stream/$docker_hash.tar\E | $docker_bin load
|
421
430
|
fi
|
422
431
|
};
|
423
432
|
|
@@ -853,9 +862,10 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
853
862
|
.q{&& SWAP=$(awk '($1 == "SwapTotal:"){print $2}' </proc/meminfo) }
|
854
863
|
."&& MEMLIMIT=\$(( (\$MEM * 95) / ($ENV{CRUNCH_NODE_SLOTS} * 100) )) "
|
855
864
|
."&& let SWAPLIMIT=\$MEMLIMIT+\$SWAP "
|
856
|
-
.
|
857
|
-
.
|
858
|
-
.
|
865
|
+
.q{&& declare -a VOLUMES=() }
|
866
|
+
.q{&& if which crunchrunner >/dev/null ; then VOLUMES+=("--volume=$(which crunchrunner):/usr/local/bin/crunchrunner") ; fi }
|
867
|
+
.q{&& if test -f /etc/ssl/certs/ca-certificates.crt ; then VOLUMES+=("--volume=/etc/ssl/certs/ca-certificates.crt:/etc/arvados/ca-certificates.crt") ; }
|
868
|
+
.q{elif test -f /etc/pki/tls/certs/ca-bundle.crt ; then VOLUMES+=("--volume=/etc/pki/tls/certs/ca-bundle.crt:/etc/arvados/ca-certificates.crt") ; fi };
|
859
869
|
|
860
870
|
$command .= "&& exec arv-mount --read-write --mount-by-pdh=by_pdh --mount-tmp=tmp --crunchstat-interval=10 --allow-other $arv_file_cache \Q$keep_mnt\E --exec ";
|
861
871
|
$ENV{TASK_KEEPMOUNT} = "$keep_mnt/by_pdh";
|
@@ -922,7 +932,7 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
922
932
|
|
923
933
|
# Bind mount the crunchrunner binary and host TLS certificates file into
|
924
934
|
# the container.
|
925
|
-
$command .= "
|
935
|
+
$command .= '"${VOLUMES[@]}" ';
|
926
936
|
|
927
937
|
while (my ($env_key, $env_val) = each %ENV)
|
928
938
|
{
|
@@ -1152,13 +1162,6 @@ sub reapchildren
|
|
1152
1162
|
. $slot[$proc{$pid}->{slot}]->{cpu});
|
1153
1163
|
my $jobstepidx = $proc{$pid}->{jobstepidx};
|
1154
1164
|
|
1155
|
-
if (!WIFEXITED($childstatus))
|
1156
|
-
{
|
1157
|
-
# child did not exit (may be temporarily stopped)
|
1158
|
-
Log ($jobstepidx, "child $pid did not actually exit in reapchildren, ignoring for now.");
|
1159
|
-
next;
|
1160
|
-
}
|
1161
|
-
|
1162
1165
|
$children_reaped++;
|
1163
1166
|
my $elapsed = time - $proc{$pid}->{time};
|
1164
1167
|
my $Jobstep = $jobstep[$jobstepidx];
|
@@ -1466,6 +1469,9 @@ sub readfrompipes
|
|
1466
1469
|
sub preprocess_stderr
|
1467
1470
|
{
|
1468
1471
|
my $jobstepidx = shift;
|
1472
|
+
# slotindex is only defined for children running Arvados job tasks.
|
1473
|
+
# Be prepared to handle the undef case (for setup srun calls, etc.).
|
1474
|
+
my $job_slot_index = $jobstep[$jobstepidx]->{slotindex};
|
1469
1475
|
|
1470
1476
|
while ($jobstep[$jobstepidx]->{stderr} =~ /^(.*?)\n/) {
|
1471
1477
|
my $line = $1;
|
@@ -1475,19 +1481,16 @@ sub preprocess_stderr
|
|
1475
1481
|
# whoa.
|
1476
1482
|
$main::please_freeze = 1;
|
1477
1483
|
}
|
1478
|
-
elsif (!exists $jobstep[$jobstepidx]->{slotindex}) {
|
1479
|
-
# Skip the following tempfail checks if this srun proc isn't
|
1480
|
-
# attached to a particular worker slot.
|
1481
|
-
}
|
1482
1484
|
elsif ($line =~ /srun: error: (Node failure on|Aborting, .*\bio error\b)/) {
|
1483
|
-
my $job_slot_index = $jobstep[$jobstepidx]->{slotindex};
|
1484
|
-
$slot[$job_slot_index]->{node}->{fail_count}++;
|
1485
1485
|
$jobstep[$jobstepidx]->{tempfail} = 1;
|
1486
|
-
|
1486
|
+
if (defined($job_slot_index)) {
|
1487
|
+
$slot[$job_slot_index]->{node}->{fail_count}++;
|
1488
|
+
ban_node_by_slot($job_slot_index);
|
1489
|
+
}
|
1487
1490
|
}
|
1488
1491
|
elsif ($line =~ /srun: error: (Unable to create job step|.*: Communication connection failure)/) {
|
1489
1492
|
$jobstep[$jobstepidx]->{tempfail} = 1;
|
1490
|
-
ban_node_by_slot($
|
1493
|
+
ban_node_by_slot($job_slot_index) if (defined($job_slot_index));
|
1491
1494
|
}
|
1492
1495
|
elsif ($line =~ /\bKeep(Read|Write|Request)Error:/) {
|
1493
1496
|
$jobstep[$jobstepidx]->{tempfail} = 1;
|
@@ -1977,6 +1980,11 @@ sub srun_sync
|
|
1977
1980
|
delete $reader{$jobstepidx};
|
1978
1981
|
|
1979
1982
|
my $j = pop @jobstep;
|
1983
|
+
# If the srun showed signs of tempfail, ensure the caller treats that as a
|
1984
|
+
# failure case.
|
1985
|
+
if ($main::please_freeze || $j->{tempfail}) {
|
1986
|
+
$exited ||= 255;
|
1987
|
+
}
|
1980
1988
|
return ($exited, $j->{stdout_captured}, $j->{stderr_captured});
|
1981
1989
|
}
|
1982
1990
|
|
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.20160502182247
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arvados Authors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: arvados
|
@@ -178,7 +178,7 @@ dependencies:
|
|
178
178
|
- - "<"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: 1.0.0
|
181
|
-
description: Arvados command line tools, git commit
|
181
|
+
description: Arvados command line tools, git commit 4c360c5a3a9564f584dac973810059d2d45d08ef
|
182
182
|
email: gem-dev@curoverse.com
|
183
183
|
executables:
|
184
184
|
- arv
|