Author: rob
Date: Fri Dec 3 08:40:34 2010
New Revision: 24960
URL: https://svn.nixos.org/websvn/nix/?rev=24960&sc=1
Log:
hydra: factored out build restart and
Modified:
hydra/trunk/src/lib/Hydra/Controller/Build.pm
hydra/trunk/src/lib/Hydra/Helper/AddBuilds.pm
Modified: hydra/trunk/src/lib/Hydra/Controller/Build.pm
==============================================================================
--- hydra/trunk/src/lib/Hydra/Controller/Build.pm Thu Dec 2 22:23:15
2010 (r24959)
+++ hydra/trunk/src/lib/Hydra/Controller/Build.pm Fri Dec 3 08:40:34
2010 (r24960)
@@ -357,26 +357,12 @@
my $build = $c->stash->{build};
requireProjectOwner($c, $build->project);
+
+ my $drvpath = $build->drvpath ;
+ error($c, "This build cannot be restarted.")
+ unless $build->finished && -f $drvpath ;
- txn_do($c->model('DB')->schema, sub {
- my $drvpath = $build->drvpath ;
- error($c, "This build cannot be restarted.")
- unless $build->finished && -f $drvpath ;
-
- my $cmd = "`nix-store -qR $drvpath`";
- my $r = `nix-store --clear-failed-paths $cmd`;
-
- $build->update({finished => 0, timestamp => time});
-
- $build->resultInfo->delete;
-
- $c->model('DB::BuildSchedulingInfo')->create(
- { id => $build->id
- , priority => 0 # don't know the original priority anymore...
- , busy => 0
- , locker => ""
- });
- });
+ restartBuild($build);
$c->flash->{buildMsg} = "Build has been restarted.";
Modified: hydra/trunk/src/lib/Hydra/Helper/AddBuilds.pm
==============================================================================
--- hydra/trunk/src/lib/Hydra/Helper/AddBuilds.pm Thu Dec 2 22:23:15
2010 (r24959)
+++ hydra/trunk/src/lib/Hydra/Helper/AddBuilds.pm Fri Dec 3 08:40:34
2010 (r24960)
@@ -12,7 +12,7 @@
use File::Path;
our @ISA = qw(Exporter);
-our @EXPORT = qw(fetchInput evalJobs checkBuild inputsToArgs
captureStdoutStderr getReleaseName getBuildLog addBuildProducts);
+our @EXPORT = qw(fetchInput evalJobs checkBuild inputsToArgs
captureStdoutStderr getReleaseName getBuildLog addBuildProducts restartBuild);
sub scmPath {
return getHydraPath . "/scm" ;
@@ -764,3 +764,30 @@
return $build;
};
+
+
+sub restartBuild {
+ my ($db, $build) = @_;
+
+ txn_do($db, sub {
+ my $drvpath = $build->drvpath ;
+ my $outpath = $build->outpath ;
+
+ my $paths = "";
+ foreach my $bs ($build->buildsteps) {
+ $paths = $paths . " " . $bs->outpath;
+ }
+
+ my $r = `nix-store --clear-failed-paths $paths $outpath`;
+ $build->update({finished => 0, timestamp => time});
+
+ $build->resultInfo->delete;
+
+ $db->resultset('BuildSchedulingInfo')->create(
+ { id => $build->id
+ , priority => 0 # don't know the original priority anymore...
+ , busy => 0
+ , locker => ""
+ });
+ });
+}
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits