arvados-cli 0.1.20140624171100 → 0.1.20140627084759
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 +54 -31
- data/bin/arv-run-pipeline-instance +2 -1
- data/bin/crunch-job +23 -8
- 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: 06c70fbbfc1414385a57c4cebf5ad43f37d07cd1
|
4
|
+
data.tar.gz: 0f4d5a56998d20a5aad7226f378a65222491ae47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0118d9b84ca1dacb0a3efed6ae994381afb79da89c7de816f0efc1d1f7bbf8ccc6c480236d3682324770dd4e264cb52fddd8b2a8a346beab1b35c011960a1875
|
7
|
+
data.tar.gz: 8ddd5031983ead996e4b7c2d77f4ebb3d46ca010c157ddd9612dae22420707ad5b8d7e8024e85531fe550b1bf48e8f501a1d435d54c975b176494db6ef6c491f
|
data/bin/arv
CHANGED
@@ -143,9 +143,14 @@ def check_subcommands client, arvados, subcommand, global_opts, remaining_opts
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
|
146
|
+
def arv_edit_save_tmp tmp
|
147
|
+
FileUtils::cp tmp.path, tmp.path + ".saved"
|
148
|
+
puts "Saved contents to " + tmp.path + ".saved"
|
149
|
+
end
|
150
|
+
|
146
151
|
def arv_edit client, arvados, global_opts, remaining_opts
|
147
|
-
|
148
|
-
if
|
152
|
+
uuid = remaining_opts.shift
|
153
|
+
if uuid.nil? or uuid == "-h" or uuid == "--help"
|
149
154
|
puts head_banner
|
150
155
|
puts "Usage: arv edit [uuid] [fields...]\n\n"
|
151
156
|
puts "Fetch the specified Arvados object, select the specified fields, \n"
|
@@ -162,9 +167,9 @@ def arv_edit client, arvados, global_opts, remaining_opts
|
|
162
167
|
|
163
168
|
# determine controller
|
164
169
|
|
165
|
-
m = /([a-z0-9]{5})-([a-z0-9]{5})-([a-z0-9]{15})/.match
|
170
|
+
m = /([a-z0-9]{5})-([a-z0-9]{5})-([a-z0-9]{15})/.match uuid
|
166
171
|
if !m
|
167
|
-
if /^[a-f0-9]{32}/.match
|
172
|
+
if /^[a-f0-9]{32}/.match uuid
|
168
173
|
abort "Arvados collections are not editable."
|
169
174
|
else
|
170
175
|
abort "#{n} does not appear to be an Arvados uuid"
|
@@ -187,7 +192,7 @@ def arv_edit client, arvados, global_opts, remaining_opts
|
|
187
192
|
api_method = 'arvados.' + rsc + '.get'
|
188
193
|
|
189
194
|
result = client.execute(:api_method => eval(api_method),
|
190
|
-
:parameters => {"uuid" =>
|
195
|
+
:parameters => {"uuid" => uuid},
|
191
196
|
:authenticated => false,
|
192
197
|
:headers => {
|
193
198
|
authorization: 'OAuth2 '+ENV['ARVADOS_API_TOKEN']
|
@@ -213,7 +218,7 @@ def arv_edit client, arvados, global_opts, remaining_opts
|
|
213
218
|
|
214
219
|
require 'tempfile'
|
215
220
|
|
216
|
-
tmp = Tempfile.new([
|
221
|
+
tmp = Tempfile.new([uuid, "." + global_opts[:format]])
|
217
222
|
tmp.write(content)
|
218
223
|
tmp.close
|
219
224
|
|
@@ -251,9 +256,13 @@ def arv_edit client, arvados, global_opts, remaining_opts
|
|
251
256
|
n += 1
|
252
257
|
end
|
253
258
|
puts "\nTry again (y/n)? "
|
254
|
-
yn =
|
259
|
+
yn = "X"
|
260
|
+
while not ["y", "Y", "n", "N"].include?(yn)
|
261
|
+
yn = $stdin.read 1
|
262
|
+
end
|
255
263
|
if yn == 'n' or yn == 'N'
|
256
|
-
|
264
|
+
arv_edit_save_tmp tmp
|
265
|
+
abort
|
257
266
|
end
|
258
267
|
end
|
259
268
|
else
|
@@ -262,31 +271,45 @@ def arv_edit client, arvados, global_opts, remaining_opts
|
|
262
271
|
end
|
263
272
|
end
|
264
273
|
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
dumped = Oj.dump(newobj)
|
270
|
-
result = client.execute(:api_method => eval(api_method),
|
271
|
-
:parameters => {"uuid" => n, rsc.singularize => dumped},
|
272
|
-
:authenticated => false,
|
273
|
-
:headers => {
|
274
|
-
authorization: 'OAuth2 '+ENV['ARVADOS_API_TOKEN']
|
275
|
-
})
|
276
|
-
|
277
|
-
begin
|
278
|
-
results = JSON.parse result.body
|
279
|
-
rescue JSON::ParserError => e
|
280
|
-
abort "Failed to parse server response:\n" + e.to_s
|
281
|
-
end
|
274
|
+
begin
|
275
|
+
if newobj != results
|
276
|
+
api_method = 'arvados.' + rsc + '.update'
|
277
|
+
dumped = Oj.dump(newobj)
|
282
278
|
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
279
|
+
begin
|
280
|
+
result = client.execute(:api_method => eval(api_method),
|
281
|
+
:parameters => {"uuid" => uuid},
|
282
|
+
:body => { rsc.singularize => dumped },
|
283
|
+
:authenticated => false,
|
284
|
+
:headers => {
|
285
|
+
authorization: 'OAuth2 '+ENV['ARVADOS_API_TOKEN']
|
286
|
+
})
|
287
|
+
rescue Exception => e
|
288
|
+
puts "Error communicating with server, error was #{e}"
|
289
|
+
puts "Update body was:"
|
290
|
+
puts dumped
|
291
|
+
arv_edit_save_tmp tmp
|
292
|
+
abort
|
293
|
+
end
|
294
|
+
|
295
|
+
begin
|
296
|
+
results = JSON.parse result.body
|
297
|
+
rescue JSON::ParserError => e
|
298
|
+
abort "Failed to parse server response:\n" + e.to_s
|
299
|
+
end
|
300
|
+
|
301
|
+
if result.response.status != 200
|
302
|
+
puts "Update failed. Server responded #{result.response.status}: #{results['errors']} "
|
303
|
+
puts "Update body was:"
|
304
|
+
puts dumped
|
305
|
+
arv_edit_save_tmp tmp
|
306
|
+
abort
|
307
|
+
end
|
308
|
+
else
|
309
|
+
puts "Object is unchanged, did not update."
|
287
310
|
end
|
288
|
-
|
289
|
-
|
311
|
+
ensure
|
312
|
+
tmp.close(true)
|
290
313
|
end
|
291
314
|
|
292
315
|
exit 0
|
@@ -469,6 +469,7 @@ class WhRunPipelineInstance
|
|
469
469
|
:repository => c[:repository],
|
470
470
|
:nondeterministic => c[:nondeterministic],
|
471
471
|
:output_is_persistent => c[:output_is_persistent] || false,
|
472
|
+
:runtime_constraints => c[:runtime_constraints],
|
472
473
|
:owner_uuid => owner_uuid,
|
473
474
|
# TODO: Delete the following three attributes when
|
474
475
|
# supporting pre-20140418 API servers is no longer
|
@@ -591,7 +592,7 @@ class WhRunPipelineInstance
|
|
591
592
|
ended += 1
|
592
593
|
if c[:job][:success] == true
|
593
594
|
succeeded += 1
|
594
|
-
elsif c[:job][:success] == false
|
595
|
+
elsif c[:job][:success] == false or c[:job][:cancelled_at]
|
595
596
|
failed += 1
|
596
597
|
end
|
597
598
|
end
|
data/bin/crunch-job
CHANGED
@@ -639,6 +639,7 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
639
639
|
my $command =
|
640
640
|
"if [ -e $ENV{TASK_WORK} ]; then rm -rf $ENV{TASK_WORK}; fi; "
|
641
641
|
."mkdir -p $ENV{JOB_WORK} $ENV{CRUNCH_TMP} $ENV{TASK_WORK} $ENV{TASK_KEEPMOUNT} "
|
642
|
+
."&& chmod og+wrx $ENV{TASK_WORK}"
|
642
643
|
."&& cd $ENV{CRUNCH_TMP} ";
|
643
644
|
if ($build_script)
|
644
645
|
{
|
@@ -657,22 +658,36 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
657
658
|
$command .=
|
658
659
|
q{$(ip -o address show scope global |
|
659
660
|
gawk 'match($4, /^([0-9\.:]+)\//, x){print "--dns", x[1]}') };
|
660
|
-
|
661
|
-
{
|
662
|
-
|
663
|
-
}
|
661
|
+
$command .= "-v \Q$ENV{TASK_WORK}:/tmp/crunch-job:rw\E ";
|
662
|
+
$command .= "-v \Q$ENV{CRUNCH_SRC}:/tmp/crunch-src:ro\E ";
|
663
|
+
$command .= "-v \Q$ENV{TASK_KEEPMOUNT}:/mnt:ro\E ";
|
664
664
|
while (my ($env_key, $env_val) = each %ENV)
|
665
665
|
{
|
666
666
|
if ($env_key =~ /^(ARVADOS|JOB|TASK)_/) {
|
667
|
-
$
|
667
|
+
if ($env_key eq "TASK_WORK") {
|
668
|
+
$command .= "-e \QTASK_WORK=/tmp/crunch-job\E ";
|
669
|
+
}
|
670
|
+
elsif ($env_key eq "TASK_KEEPMOUNT") {
|
671
|
+
$command .= "-e \QTASK_KEEPMOUNT=/mnt\E ";
|
672
|
+
}
|
673
|
+
elsif ($env_key eq "CRUNCH_SRC") {
|
674
|
+
$command .= "-e \QCRUNCH_SRC=/tmp/crunch-src\E ";
|
675
|
+
}
|
676
|
+
else {
|
677
|
+
$command .= "-e \Q$env_key=$env_val\E ";
|
678
|
+
}
|
668
679
|
}
|
669
680
|
}
|
670
681
|
$command .= "\Q$docker_hash\E ";
|
682
|
+
$command .= "stdbuf -o0 -e0 ";
|
683
|
+
$command .= "/tmp/crunch-src/crunch_scripts/" . $Job->{"script"};
|
671
684
|
} else {
|
672
|
-
|
685
|
+
# Non-docker run
|
686
|
+
$command .= "crunchstat -cgroup-root=/sys/fs/cgroup -poll=10000 ";
|
687
|
+
$command .= "stdbuf -o0 -e0 ";
|
688
|
+
$command .= "$ENV{CRUNCH_SRC}/crunch_scripts/" . $Job->{"script"};
|
673
689
|
}
|
674
|
-
|
675
|
-
$command .= "$ENV{CRUNCH_SRC}/crunch_scripts/" . $Job->{"script"};
|
690
|
+
|
676
691
|
my @execargs = ('bash', '-c', $command);
|
677
692
|
srun (\@srunargs, \@execargs, undef, $build_script_to_send);
|
678
693
|
exit (111);
|
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.20140627084759
|
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-06-
|
11
|
+
date: 2014-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: arvados
|
@@ -146,7 +146,7 @@ dependencies:
|
|
146
146
|
- - "~>"
|
147
147
|
- !ruby/object:Gem::Version
|
148
148
|
version: '0.8'
|
149
|
-
description: This is the Arvados SDK CLI gem, git revision
|
149
|
+
description: This is the Arvados SDK CLI gem, git revision 377b4f345a5ba45bb96497a6be2b571604a695a1
|
150
150
|
email: gem-dev@curoverse.com
|
151
151
|
executables:
|
152
152
|
- arv
|