diff --git a/src/lib/Hydra/Controller/Root.pm b/src/lib/Hydra/Controller/Root.pm index 3ce3609b..247a6caf 100644 --- a/src/lib/Hydra/Controller/Root.pm +++ b/src/lib/Hydra/Controller/Root.pm @@ -538,7 +538,7 @@ sub runcommandlog :Local :Args(1) { die if defined $tail && $tail !~ /^[0-9]+$/; my $runlog = $c->model('DB')->resultset('RunCommandLogs')->find({ uuid => $uuid }); - my $logFile = constructRunCommandLogPath($runlog); + my $logFile = constructRunCommandLogPath($runlog) or notFound($c, "RunCommandLog not found."); if (-f $logFile) { serveLogFile($c, $logFile, $tail); return; diff --git a/src/lib/Hydra/Helper/Nix.pm b/src/lib/Hydra/Helper/Nix.pm index 6aa754f7..9c804011 100644 --- a/src/lib/Hydra/Helper/Nix.pm +++ b/src/lib/Hydra/Helper/Nix.pm @@ -592,12 +592,17 @@ sub isLocalStore { sub constructRunCommandLogPath { my ($runlog) = @_; + my $path = undef; - my $uuid = $runlog->uuid; - my $hydra_path = Hydra::Model::DB::getHydraPath; - my $bucket = substr($uuid, 0, 2); + eval { + my $uuid = $runlog->uuid; + my $hydra_path = Hydra::Model::DB::getHydraPath; + my $bucket = substr($uuid, 0, 2); - return "$hydra_path/runcommand-logs/$bucket/$uuid"; + $path = "$hydra_path/runcommand-logs/$bucket/$uuid"; + }; + + return $path; } 1; diff --git a/src/lib/Hydra/Plugin/RunCommand.pm b/src/lib/Hydra/Plugin/RunCommand.pm index 75e6c2c9..3d35e5a8 100644 --- a/src/lib/Hydra/Plugin/RunCommand.pm +++ b/src/lib/Hydra/Plugin/RunCommand.pm @@ -163,7 +163,7 @@ sub buildFinished { $runlog->started(); - my $logPath = Hydra::Helper::Nix::constructRunCommandLogPath($runlog); + my $logPath = Hydra::Helper::Nix::constructRunCommandLogPath($runlog) or die "RunCommandLog not found."; my $dir = dirname($logPath); my $oldUmask = umask();