arvados-cli 0.1.20140616132754 → 0.1.20140616152753
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/crunch-job +33 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2ea85d71466309df46d656ca0a395e638fd1716
|
4
|
+
data.tar.gz: 3246cf8fd176c5061e8e1df59458d787065aa845
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a843a87259742e70da986e24362eff16c2a21a6fe3348f527c0316d6c84288ab8f945831f72f7b7ec60cbf579e58729655be56312f205a334d196a20374c7346
|
7
|
+
data.tar.gz: 00d747bcd22b0632aa128d35917c60e2c9bd8d83cee5e568376f6827fc1c19b15e936267cdf59f6d090836f3ec690aa259d65316b59ac99dadadacef5dd05c5e
|
data/bin/crunch-job
CHANGED
@@ -501,13 +501,23 @@ if (!$have_slurm)
|
|
501
501
|
|
502
502
|
# If this job requires a Docker image, install that.
|
503
503
|
my $docker_bin = "/usr/bin/docker.io";
|
504
|
-
my $
|
505
|
-
if ($
|
504
|
+
my ($docker_locator, $docker_hash);
|
505
|
+
if ($docker_locator = $Job->{docker_image_locator}) {
|
506
|
+
$docker_hash = find_docker_hash($docker_locator);
|
507
|
+
if (!$docker_hash)
|
508
|
+
{
|
509
|
+
croak("No Docker image hash found from locator $docker_locator");
|
510
|
+
}
|
511
|
+
my $docker_install_script = qq{
|
512
|
+
if ! $docker_bin images -q --no-trunc | grep -qxF \Q$docker_hash\E; then
|
513
|
+
arv-get \Q$docker_locator/$docker_hash.tar\E | $docker_bin load
|
514
|
+
fi
|
515
|
+
};
|
506
516
|
my $docker_pid = fork();
|
507
517
|
if ($docker_pid == 0)
|
508
518
|
{
|
509
|
-
srun (["srun", "--nodelist=" . join('
|
510
|
-
[
|
519
|
+
srun (["srun", "--nodelist=" . join(',', @node)],
|
520
|
+
["/bin/sh", "-ec", $docker_install_script]);
|
511
521
|
exit ($?);
|
512
522
|
}
|
513
523
|
while (1)
|
@@ -516,11 +526,9 @@ if ($docker_image) {
|
|
516
526
|
freeze_if_want_freeze ($docker_pid);
|
517
527
|
select (undef, undef, undef, 0.1);
|
518
528
|
}
|
519
|
-
|
520
|
-
# Ignore that error. We'll see what happens when we try to run later.
|
521
|
-
if (($? != 0) && ($docker_image !~ /^[0-9a-fA-F]{5,64}$/))
|
529
|
+
if ($? != 0)
|
522
530
|
{
|
523
|
-
croak("Installing Docker image $
|
531
|
+
croak("Installing Docker image from $docker_locator returned exit code $?");
|
524
532
|
}
|
525
533
|
}
|
526
534
|
|
@@ -639,7 +647,7 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
639
647
|
"&& perl -";
|
640
648
|
}
|
641
649
|
$command .= "&& exec arv-mount --allow-other $ENV{TASK_KEEPMOUNT} --exec ";
|
642
|
-
if ($
|
650
|
+
if ($docker_hash)
|
643
651
|
{
|
644
652
|
$command .= "crunchstat -cgroup-root=/sys/fs/cgroup -cgroup-parent=docker -cgroup-cid=$ENV{TASK_WORK}/docker.cid -poll=10000 ";
|
645
653
|
$command .= "$docker_bin run -i -a stdin -a stdout -a stderr --cidfile=$ENV{TASK_WORK}/docker.cid ";
|
@@ -659,7 +667,7 @@ for (my $todo_ptr = 0; $todo_ptr <= $#jobstep_todo; $todo_ptr ++)
|
|
659
667
|
$command .= "-e \Q$env_key=$env_val\E ";
|
660
668
|
}
|
661
669
|
}
|
662
|
-
$command .= "\Q$
|
670
|
+
$command .= "\Q$docker_hash\E ";
|
663
671
|
} else {
|
664
672
|
$command .= "crunchstat -cgroup-root=/sys/fs/cgroup -poll=10000 "
|
665
673
|
}
|
@@ -1437,6 +1445,21 @@ sub must_lock_now
|
|
1437
1445
|
}
|
1438
1446
|
}
|
1439
1447
|
|
1448
|
+
sub find_docker_hash {
|
1449
|
+
# Given a Keep locator, search for a matching link to find the Docker hash
|
1450
|
+
# of the stored image.
|
1451
|
+
my $locator = shift;
|
1452
|
+
my $links_result = $arv->{links}->{list}->execute(
|
1453
|
+
filters => [["head_uuid", "=", $locator],
|
1454
|
+
["link_class", "=", "docker_image_hash"]],
|
1455
|
+
limit => 1);
|
1456
|
+
my $docker_hash;
|
1457
|
+
foreach my $link (@{$links_result->{items}}) {
|
1458
|
+
$docker_hash = lc($link->{name});
|
1459
|
+
}
|
1460
|
+
return $docker_hash;
|
1461
|
+
}
|
1462
|
+
|
1440
1463
|
__DATA__
|
1441
1464
|
#!/usr/bin/perl
|
1442
1465
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.20140616152753
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arvados Authors
|
@@ -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 439e1417599cad4e65d506a11b583a6ebabc7604
|
150
150
|
email: gem-dev@curoverse.com
|
151
151
|
executables:
|
152
152
|
- arv
|