* Refactoring: move fetchInput out of hydra_scheduler into a separate

module, since Controller/Build.pm needs it to create a new build.
This commit is contained in:
Eelco Dolstra
2009-10-26 15:39:14 +00:00
parent 57cc6ceca6
commit e1373fa1c3
7 changed files with 302 additions and 250 deletions

View File

@ -5,6 +5,7 @@ use warnings;
use base 'Hydra::Base::Controller::NixChannel';
use Hydra::Helper::Nix;
use Hydra::Helper::CatalystUtils;
use Hydra::Helper::AddBuilds;
use File::stat;
@ -403,6 +404,26 @@ sub clone_submit : Chained('build') PathPart('clone/submit') Args(0) {
requireProjectOwner($c, $build->project);
my ($nixExprPath, $nixExprInput) = Hydra::Controller::Jobset::nixExprPathFromParams $c;
my $jobName = trim $c->request->params->{"jobname"};
error($c, "Invalid job name: $jobName") if $jobName !~ /^$jobNameRE$/;
foreach my $param (keys %{$c->request->params}) {
next unless $param =~ /^input-(\w+)-name$/;
my $baseName = $1;
my ($inputName, $inputType) =
Hydra::Controller::Jobset::checkInput($c, $baseName);
my $inputValue = Hydra::Controller::Jobset::checkInputValue(
$c, $inputType, $c->request->params->{"input-$baseName-value"});
eval {
fetchInput(
$c->model('DB'), $build->project, $build->jobset,
$inputName, $inputType, $inputValue);
};
error($c, $@) if $@;
}
$c->flash->{buildMsg} = "Build XXX added to the queue.";
$c->res->redirect($c->uri_for($c->controller('Root')->action_for('queue')));