Add one-shot jobsets

[?]
Oct 11, 2013, 10:01 AM
C3AG65SWAGDSML5MBD4ZPRCHI2LNNDN6IQZOI3HLYRJRPAW3QPAAC

Dependencies

  • [2] 4QCXGR4W Tabify the eval page
  • [3] 2G63HKCH Fix some wellformedness issues
  • [4] GEADFVZ5 hydra-queue-runner: Improved scheduling
  • [5] CQQSJLON On aggregate job pages, show a matrix showing all the constituent builds
  • [6] R6B5CAFF Let Builds.timestamp refer to the time the build was added
  • [7] MOX7XJ2E Merge the BuildSchedulingInfo table into the Builds table
  • [8] J74UTA3I Handle the case where a jobset has never been evaluated
  • [9] 2YXO5ZGQ Hydra/28: Rename "scheduler" to "evaluator"
  • [10] AFTXA575 * $HYDRA_DATA environment variable.
  • [11] CQTN62OH Die tabs die
  • [12] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [13] 4D4U5IPY * Allow jobsets to be disabled.
  • [14] QLOLZHRX Allow a per-jobset check interval
  • [15] JFZNAYJX * Showing releases.
  • [16] K22TMPH5 Make the info tables less compressed
  • [17] AMI4DGBK Don't trigger evaluation of disabled jobsets
  • [18] TQVKZQUG Use the REST API in the web interface for editing jobsets
  • [19] OX6NYJDV Split viewing and editing a jobset
  • [20] 3BTJRSU3 GitInput.pm: Don't do a chdir to the Git clone
  • [21] 2QISRMJK Job page: show queued as well as running builds
  • [22] XJRJ4J7M Add user registration
  • [23] 6HWHYPSW Add an action menu to evaluations
  • [24] 6Q2JPSWG Fix lazy tab loading
  • [25] 3PNG7NIB Remove trailing whitespace
  • [26] 2P7VNAAC Move common Javascript code into a separate file
  • [27] LZVO64YG Merge in the first bits of the API work
  • [28] PCKLFRT5 Support push notification of repository changes
  • [29] PVIRRARJ Turn hiding/unhiding a jobset into a checkbox
  • [30] UOINKJ2J Add an action to cancel all builds in a jobset eval
  • [31] KN3VYE5P * Cleaned up the foreign key constraints.
  • [32] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate
  • [33] FYO6NECE hydra
  • [*] DEMSSSB2 * Controller for jobs which inherits all actions in ListBuilds. So
  • [*] 3HZY24CX * Make jobsets viewable under
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.
  • [*] 2GK5DOU7 * Downloading closures.
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] RFE6T5LG * Store jobset evaluations in the database explicitly. This includes
  • [*] S6OISBQ3 * Mark the "current" builds in a jobset, i.e. those corresponding to

Change contents

  • replacement in src/lib/Hydra/Controller/Job.pm at line 34
    [5.66][5.1958:1992](),[5.1917][5.1958:1992](),[5.1958][5.1958:1992](),[5.1992][5.919:969](),[5.969][5.1813:1860](),[5.2049][5.1813:1860](),[5.1813][5.1813:1860](),[5.1860][5.1918:1967]()
    { join => ['project']
    , order_by => ["priority DESC", "id"]
    , '+select' => ['project.enabled']
    , '+as' => ['enabled']
    }
    [5.66]
    [5.2102]
    { order_by => ["priority DESC", "id"] }
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 200
    [5.1][5.1:59]()
    my $enabled = defined $c->stash->{params}->{enabled};
    [5.1]
    [5.2074]
    my $enabled = int($c->stash->{params}->{enabled});
    die if $enabled < 0 || $enabled > 2;
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 208
    [5.2272][5.60:98]()
    , enabled => $enabled ? 1 : 0
    [5.2272]
    [5.11835]
    , enabled => $enabled
  • replacement in src/lib/Hydra/Controller/Root.pm at line 77
    [5.22067][5.22067:22247]()
    {finished => 0}, { join => ['project'], order_by => ["priority DESC", "id"], columns => [@buildListColumns], '+select' => ['project.enabled'], '+as' => ['enabled'] })]
    [5.22067]
    [5.22247]
    {finished => 0}, { order_by => ["priority DESC", "id"], columns => [@buildListColumns] })]
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 543
    [4.1158][4.1158:1213]()
    { 'project.enabled' => 1, 'me.enabled' => 1 },
    [4.1158]
    [4.1213]
    { 'project.enabled' => 1, 'me.enabled' => { '!=' => 0 } },
  • edit in src/root/edit-jobset.tt at line 52
    [5.2522]
    [5.2522]
    <label class="control-label">State</label>
  • replacement in src/root/edit-jobset.tt at line 54
    [5.2551][5.2551:2584](),[5.2584][3.1150:1257](),[3.1257][5.2698:2715](),[5.2698][5.2698:2715]()
    <label class="checkbox">
    <input type="checkbox" name="enabled" [% IF jobset.enabled; 'checked="checked"'; END %]/>Enabled
    </label>
    [5.2551]
    [5.2715]
    <div class="btn-group" data-toggle="buttons-radio">
    <input type="hidden" name="enabled" value="[% jobset.enabled %]" />
    <button type="button" class="btn" value="1">Enabled</button>
    <button type="button" class="btn" value="2">One-shot</button>
    <button type="button" class="btn" value="0">Disabled</button>
    </div>
  • edit in src/root/edit-jobset.tt at line 61
    [5.2728]
    [5.68]
    </div>
    <div class="control-group">
  • edit in src/root/jobset.tt at line 119
    [5.408]
    [5.8906]
    <tr>
    <th>State:</th>
    <td>[% IF jobset.enabled == 0; "Disabled"; ELSIF jobset.enabled == 1; "Enabled"; ELSIF jobset.enabled == 2; "One-shot"; END %]</td>
    </tr>
  • edit in src/root/jobset.tt at line 133
    [5.9209][5.9209:9311]()
    </tr>
    <tr>
    <th>Enabled:</th>
    <td>[% jobset.enabled ? "Yes" : "No" %]</td>
  • replacement in src/root/static/js/common.js at line 72
    [2.3921][5.2144:2151](),[5.2144][5.2144:2151]()
    })
    [2.3921]
    [5.2151]
    });
    /* Automatically set Bootstrap radio buttons from hidden form controls. */
    $('div[data-toggle="buttons-radio"] input[type="hidden"]').map(function(){
    $('button[value="' + $(this).val() + '"]', $(this).parent()).addClass('active');
    });
    /* Automatically update hidden form controls from Bootstrap radio buttons. */
    $('div[data-toggle="buttons-radio"] .btn').click(function(){
    $('input', $(this).parent()).val($(this).val());
    });
  • edit in src/script/hydra-evaluator at line 249
    [40.6544]
    [41.5850]
    # If this is a one-shot jobset, disable it now.
    $jobset->update({ enabled => 0 }) if $jobset->enabled == 2;
  • replacement in src/script/hydra-evaluator at line 311
    [5.3137][5.3137:3190]()
    { 'project.enabled' => 1, 'me.enabled' => 1,
    [5.3137]
    [5.1112]
    { 'project.enabled' => 1, 'me.enabled' => { '!=' => 0 },
  • replacement in src/sql/hydra.sql at line 58
    [5.472][5.5433:5479](),[5.3384][5.5433:5479](),[5.5433][5.5433:5479]()
    enabled integer not null default 1,
    [5.3384]
    [5.5089]
    enabled integer not null default 1, -- 0 = disabled, 1 = enabled, 2 = one-shot