Hydra/32: Add option to force evaluation of a certain jobset via web interface (for admins only)

[?]
May 18, 2010, 11:37 AM
SGNXIOI4SO56F4YCGVMGZZO3AYXGPDL4FL75RDXAK5Y22IYWPPAQC

Dependencies

  • [2] QT4FO2HP refactored admin controller, using chains, to avoid using requireadmin on each endpoint
  • [3] 3XTHEUMP * Implemented the clone feature.
  • [4] ZWCTAZGL added newsitems, added some admin options to clear various caches.
  • [5] 5SHCWE7X * Prevent repeated evaluation of a jobset with the same inputs. This
  • [6] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate
  • [*] 7YBYT2LQ
  • [*] PC6UOHH7 add some stats to jobsets in project view
  • [*] ZI535LI6 * hydra: 'new' UI for project/jobset/job/build

Change contents

  • replacement in src/lib/Hydra/Controller/Admin.pm at line 8
    [3.154][3.154:155]()
    [3.154]
    [2.0]
    use Hydra::Helper::AddBuilds;
  • edit in src/lib/Hydra/Controller/Admin.pm at line 87
    [3.2170]
    [3.2170]
    }
    sub force_eval : Chained('admin') Path('eval') Args(2) {
    my ($self, $c, $projectName, $jobsetName) = @_;
    my $project = $c->model('DB::Projects')->find($projectName)
    or notFound($c, "Project $projectName doesn't exist.");
    $c->stash->{project} = $project;
    $c->stash->{jobset_} = $project->jobsets->search({name => $jobsetName});
    $c->stash->{jobset} = $c->stash->{jobset_}->single
    or notFound($c, "Jobset $jobsetName doesn't exist.");
    (my $res, my $stdout, my $stderr) = captureStdoutStderr(60, ("hydra_evaluator.pl", $projectName, $jobsetName));
    $c->res->redirect("/project/$projectName");
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 11
    [3.2785][3.0:63]()
    our @EXPORT = qw(fetchInput evalJobs checkBuild inputsToArgs);
    [3.2785]
    [3.2815]
    our @EXPORT = qw(fetchInput evalJobs checkBuild inputsToArgs captureStdoutStderr);
  • edit in src/root/project.tt at line 38
    [9.249]
    [10.26299]
    [% IF c.check_user_roles('admin') %]<th>Options</th>[% END%]
  • edit in src/root/project.tt at line 80
    [9.1343]
    [10.26754]
    [% IF c.check_user_roles('admin') %]
    <td>[ [% INCLUDE maybeLink uri = c.uri_for(c.controller('Admin').action_for('force_eval'), project.name, j.name) content = "Evaluate" confirmmsg = ("Are you sure you want to force evaluation of jobset " _ project.name _ ":" _ j.name _ "?") %] ]</td>
    [% END%]