[?]
Nov 27, 2008, 9:08 PM
G6HJY2V4CSSZF6BPIMRMRAJYRKPLTCBUFTJWZWK3BSNT235CZQ6QC

Dependencies

  • [2] JFZNAYJX * Showing releases.
  • [3] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [4] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [5] LQ5QEDVV
  • [6] 2AUODJBT
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.
  • [*] US27ZTX5 * HydraFrontend -> Hydra.
  • [*] N22GPKYT * Put info about logs / build products in the DB.

Change contents

  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 205
    [2.20][2.20:66]()
    my ($c, $projectName, $releaseName) = @_;
    [2.20]
    [2.66]
    my ($c, $projectName, $releaseSetName) = @_;
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 211
    [3.728][3.728:815](),[3.815][2.141:216]()
    (my $releaseSet) = $c->model('DB::Releasesets')->find($projectName, $releaseName);
    die "Release set $releaseName doesn't exist." if !defined $releaseSet;
    [3.728]
    [3.904]
    (my $releaseSet) = $c->model('DB::Releasesets')->find($projectName, $releaseSetName);
    die "Release set $releaseSetName doesn't exist." if !defined $releaseSet;
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 216
    [3.1026][2.217:305]()
    die "Release set $releaseName doesn't have a primary job." if !defined $primaryJob;
    [3.1026]
    [2.305]
    die "Release set $releaseSetName doesn't have a primary job." if !defined $primaryJob;
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 269
    [2.1802]
    [2.1802]
    sub updateReleaseSet {
    my ($c, $releaseSet) = @_;
    my $releaseSetName = trim $c->request->params->{name};
    die "Invalid release set name: $releaseSetName" unless $releaseSetName =~ /^[[:alpha:]]\w*$/;
    $releaseSet->name($releaseSetName);
    $releaseSet->description(trim $c->request->params->{description});
    $releaseSet->update;
    }
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 282
    [2.1824][2.1824:1920]()
    my ($self, $c, $projectName, $releaseName) = @_;
    $c->stash->{template} = 'releases.tt';
    [2.1824]
    [2.1920]
    my ($self, $c, $projectName, $releaseSetName, $subcommand) = @_;
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 284
    [2.1921][2.1921:2014]()
    my ($project, $releaseSet, $primaryJob) = getReleaseSet($c, $projectName, $releaseName);
    [2.1921]
    [3.653]
    my ($project, $releaseSet, $primaryJob) = getReleaseSet($c, $projectName, $releaseSetName);
    if ($subcommand ne "") {
    return requireLogin($c) if !$c->user_exists;
    return error($c, "Only the project owner or the administrator can perform this operation.")
    unless $c->check_user_roles('admin') || $c->user->username eq $project->owner;
    if ($subcommand eq "edit") {
    $c->stash->{template} = 'edit-releaseset.tt';
    return;
    }
  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 298
    [3.654]
    [3.1233]
    elsif ($subcommand eq "submit") {
    $c->model('DB')->schema->txn_do(sub {
    updateReleaseSet($c, $releaseSet);
    });
    return $c->res->redirect($c->uri_for("/releases", $projectName, $releaseSet->name));
    }
    else { return error($c, "Unknown subcommand."); }
    }
    $c->stash->{template} = 'releases.tt';
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 324
    [2.2144][2.2144:2209]()
    my ($self, $c, $projectName, $releaseName, $releaseId) = @_;
    [2.2144]
    [2.2209]
    my ($self, $c, $projectName, $releaseSetName, $releaseId) = @_;
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 327
    [2.2252][2.2252:2345]()
    my ($project, $releaseSet, $primaryJob) = getReleaseSet($c, $projectName, $releaseName);
    [2.2252]
    [3.2876]
    my ($project, $releaseSet, $primaryJob) = getReleaseSet($c, $projectName, $releaseSetName);
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 500
    [3.736][3.736:833]()
    return $c->res->redirect($c->uri_for("/project", trim $c->request->params->{name}));
    [3.736]
    [3.833]
    return $c->res->redirect($c->uri_for("/project", $project->name));
  • file addition: edit-releaseset.tt (----------)
    [9.857]
    [% WRAPPER layout.tt title="Release Sets ‘$curProject.name:$releaseSet.name’" %]
    [% PROCESS common.tt %]
    [% USE HTML %]
    <h1>Release Set <tt>[% curProject.name %]:[% releaseSet.name %]</tt></h1>
    <form action="[% IF create %][% ELSE %][% c.uri_for('/releases' curProject.name releaseSet.name 'submit') %][% END %]" method="post">
    <table class="layoutTable">
    <tr>
    <th>Identifier:</th>
    <td><input type="text" class="string" name="name" [% HTML.attributes(value => releaseSet.name) %] /></td>
    </tr>
    <tr>
    <th>Description:</th>
    <td><input type="text" class="string" name="description" [% HTML.attributes(value => releaseSet.description) %] /></td>
    </tr>
    </table>
    <p><button type="submit"><img src="/static/images/success.gif" />[%IF create %]Create[% ELSE %]Apply changes[% END %]</button></p>
    </form>
    [% END %]
  • replacement in src/Hydra/root/releasesets.tt at line 10
    [3.10320][3.10320:10439]()
    <li><a href="[% c.uri_for('/releases' curProject.name releaseSet.name) %]"><tt>[% releaseSet.name %]</tt></a></li>
    [3.10320]
    [3.10439]
    <li>
    <a href="[% c.uri_for('/releases' curProject.name releaseSet.name) %]"><tt>[% releaseSet.name %]</tt></a>
    (<a href="[% c.uri_for('/releases' curProject.name releaseSet.name "edit") %]">edit</a>)
    </li>
  • edit in src/hydra.sql at line 331
    [3.12672]
    [3.12672]
    create trigger cascadeReleaseSetUpdate
    update of name on ReleaseSets
    for each row begin
    update ReleaseSetJobs set release = new.name where project = old.project and release = old.name;
    end;