hydra-api: flesh out Jobset schema

[?]
Apr 27, 2021, 10:51 PM
OOI5OFJXO6KOJTR3LM6BAORFKYV4C4GIXTKVVIQ3GBUVSB43DLOQC

Dependencies

  • [2] QJYMTECF Add nixexprpath/nixexprinput to GET of jobset (API).
  • [3] ZM3G3JVF Revert "Sort inputs table" (#448)
  • [4] LX326CB7 Add hydra OpenAPI description (#750)
  • [5] GIBB5PLI Couple of upstream/bootstrap items missed in rebase
  • [6] QUMWPGCU Add flake configuration to the web interface
  • [7] TQVKZQUG Use the REST API in the web interface for editing jobsets
  • [8] LPPZS34Y Merge remote-tracking branch 'origin/master' into flake
  • [9] CTGZFKAI hydra-api: implement DELETE /project/{id}
  • [10] OX6NYJDV Split viewing and editing a jobset
  • [11] OK4P3AMK Remove the ability to add multiple jobset input alternatives
  • [12] AMI4DGBK Don't trigger evaluation of disabled jobsets
  • [13] UQA4FMUA Allow a jobset to be created from an evaluation
  • [14] K3HODXGH Check all inputs for blame but only email selected inputs
  • [15] LUYDIGYM Make input value wider
  • [16] 7RRDNLP3 Add homepage to Projects schema
  • [17] VZX6HJ3I Fix jobset input handling in the API
  • [18] RQI3GRC6 Enable setting checkresponsible in the edit jobset form
  • [19] VJFLX7B6 Fix rendering of jobset inputs
  • [20] NP7IOJ4Q Flesh out the API a bit
  • [21] TMQJPABT Sort inputs table
  • [22] QMW24O5S Add support for Guile & Guix.
  • [23] YI3BZG5N Cleanup Jobset serialization
  • [24] SWXX2O4A Update boostrap to latest 4.3.1
  • [25] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [26] HPXFXHFS Remove SHA-1 hash from BuildProducts
  • [27] 2E23VP5J Add endpoint to generate a shields.io badge
  • [*] 3HZY24CX * Make jobsets viewable under
  • [*] X27GNHDV * Basic job info in the database.

Change contents

  • replacement in hydra-api.yaml at line 309
    [4.7830][4.7830:9068]()
    type: object
    properties:
    'description':
    description: a description of the jobset
    type: string
    checkinterval:
    description: interval (in seconds) in which to check for evaluation
    type: integer
    enabled:
    description: when true the jobset gets scheduled for evaluation
    type: boolean
    visible:
    description: when true the jobset is visible in the web frontend
    type: boolean
    keepnr:
    description: number or evaluations to keep
    type: integer
    nixexprinput:
    description: the name of the jobset input which contains the nixexprpath
    type: string
    nixexprpath:
    nullable: true
    description: the path to the file to evaluate
    type: string
    inputs:
    description: inputs for this jobset
    type: object
    additionalProperties:
    $ref: '#/components/schemas/JobsetInput'
    [4.7830]
    [4.9068]
    $ref: '#/components/schemas/Jobset'
  • replacement in hydra-api.yaml at line 565
    [4.15087][4.15087:15110]()
    fetcherrormsg:
    [4.15087]
    [4.15110]
    name:
    description: the name of the jobset
    type: string
    project:
    description: the project this jobset belongs to
    type: string
    description:
  • replacement in hydra-api.yaml at line 573
    [4.15135][4.15135:15240]()
    description: contains the error message when there was a problem fetching sources for a jobset
    [4.15135]
    [4.15240]
    description: a description of the jobset
  • edit in hydra-api.yaml at line 576
    [4.15285]
    [4.15285]
    nullable: true
  • edit in hydra-api.yaml at line 579
    [4.15391]
    [4.15391]
    nixexprpath:
    nullable: true
    description: the path to the file to evaluate
    type: string
  • edit in hydra-api.yaml at line 584
    [4.15409]
    [4.15409]
    nullable: true
  • edit in hydra-api.yaml at line 587
    [4.15513]
    [4.15513]
    errortime:
    nullable: true
    description: timestamp associated with errormsg
    type: integer
    lastcheckedtime:
    nullable: true
    description: the last time the evaluator looked at this jobset
    type: integer
    triggertime:
    nullable: true
    description: set to the time we were triggered by a push event
    type: integer
    enabled:
    description: 0 is disabled, 1 is enabled, 2 is one-shot, and 3 is one-at-a-time
    type: integer
    enableemail:
    description: when true the jobset sends emails when previously-successful builds fail
    type: boolean
    hidden:
    description: when false the jobset is visible in the web frontend
    type: boolean
  • replacement in hydra-api.yaml at line 611
    [4.15681][4.15681:15702]()
    nixexprpath:
    [4.15681]
    [4.15702]
    keepnr:
    description: number or evaluations to keep
    type: integer
    checkinterval:
    description: interval (in seconds) in which to check for evaluation
    type: integer
    schedulingshares:
    description: how many shares to be allocated to the jobset
    type: integer
    fetcherrormsg:
    nullable: true
    description: contains the error message when there was a problem fetching sources for a jobset
    type: string
    startime:
    nullable: true
    description: set to the time the latest evaluation started (if one is currently running)
    type: integer
    type:
    description: the type of the jobset
    type: string
    flake:
  • replacement in hydra-api.yaml at line 633
    [4.15727][4.15727:15783]()
    description: the path to the file to evaluate
    [4.15727]
    [4.15783]
    description: the flake uri to evaluate
  • edit in hydra-api.yaml at line 635
    [4.15806][4.15806:15928]()
    enabled:
    description: when set to true the jobset gets scheduled for evaluation
    type: boolean
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 234
    [6.227][6.227:285]()
    $flake = trim($c->stash->{params}->{"flakeref"});
    [6.227]
    [6.285]
    $flake = trim($c->stash->{params}->{"flake"});
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 273
    [6.500][6.500:635]()
    foreach my $name (keys %{$c->stash->{params}->{inputs}}) {
    my $inputData = $c->stash->{params}->{inputs}->{$name};
    [6.500]
    [6.635]
    foreach my $name (keys %{$c->stash->{params}->{jobsetinputs}}) {
    my $inputData = $c->stash->{params}->{jobsetinputs}->{$name};
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 415
    [6.154]
    [6.154]
    "errortime",
    "lastcheckedtime",
    "triggertime",
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 419
    [6.173]
    [6.173]
    "keepnr",
    "checkinterval",
    "schedulingshares",
    "starttime"
    ],
    string_columns => [
    "name",
    "project",
    "description",
    "nixexprinput",
    "nixexprpath",
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 431
    [6.193][6.193:218]()
    "fetcherrormsg",
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 432
    [2.25][2.25:71]()
    "nixexprpath",
    "nixexprinput"
    [2.25]
    [6.242]
    "fetcherrormsg",
    "type",
    "flake"
    ],
    boolean_columns => [
    "enableemail",
    "hidden"
  • replacement in src/root/edit-jobset.tt at line 49
    [6.1864][6.1864:1891](),[6.1891][3.0:107]()
    <tbody class="inputs">
    [% inputs = createFromEval ? eval.jobsetevalinputs : jobset.jobsetinputs; FOREACH input IN inputs %]
    [6.1864]
    [6.175]
    <tbody class="jobsetinputs">
    [% jobsetinputs = createFromEval ? eval.jobsetevalinputs : jobset.jobsetinputs; FOREACH input IN jobsetinputs %]
  • replacement in src/root/edit-jobset.tt at line 114
    [6.721808][6.721808:721894]()
    <label class="col-form-label col-sm-3" for="editjobsetflakeref">Flake URI</label>
    [6.721808]
    [6.721894]
    <label class="col-form-label col-sm-3" for="editjobsetflake">Flake URI</label>
  • replacement in src/root/edit-jobset.tt at line 116
    [6.721921][5.918:1051]()
    <input type="text" class="form-control" id="editjobsetflakeref" name="flakeref" [% HTML.attributes(value => jobset.flake) %]/>
    [6.721921]
    [6.3632]
    <input type="text" class="form-control" id="editjobsetflake" name="flake" [% HTML.attributes(value => jobset.flake) %]/>
  • replacement in src/root/edit-jobset.tt at line 223
    [6.409][6.409:463]()
    var data = { 'inputs': {} };
    var inputs = {};
    [6.409]
    [6.1152]
    var data = { 'jobsetinputs': {} };
    var jobsetinputs = {};
  • replacement in src/root/edit-jobset.tt at line 236
    [6.824][6.1253:1288](),[6.1288][6.861:896](),[6.861][6.861:896]()
    if (!(baseName in inputs))
    inputs[baseName] = {};
    [6.824]
    [6.906]
    if (!(baseName in jobsetinputs))
    jobsetinputs[baseName] = {};
  • replacement in src/root/edit-jobset.tt at line 240
    [6.1319][6.939:995](),[6.939][6.939:995]()
    data.inputs[elem.value] = inputs[baseName];
    [6.1319]
    [6.1320]
    data.jobsetinputs[elem.value] = jobsetinputs[baseName];
  • replacement in src/root/edit-jobset.tt at line 242
    [6.1333][6.1012:1062](),[6.1012][6.1012:1062]()
    inputs[baseName][param] = elem.value;
    [6.1333]
    [6.1072]
    jobsetinputs[baseName][param] = elem.value;