Move evaluation errors from evaluations to EvaluationErrors, a new table
[?]
Feb 1, 2021, 11:35 PM
GLIPWYWLW6JNCIPMAXPKU64RHO2WDIFYZ5ZNGMYUJKX5Y7ZPSVJQCDependencies
- [2]
MLYGGEK7hydra-eval-jobs: write evaluation errorMsg to the jobseteval table - [3]
ZBCME7K4Evaluation page: render evaluation errors - [4]
CMBTR3KDjobset page: render error labels per eval - [5]
BMGYDRNKjobsetevals: refer to jobset by ID - [6]
4QCXGR4WTabify the eval page - [7]
MB5INTIQNormalize nixexpr{input,path} from builds to jobsetevals. - [8]
4WZQW2N6Fix indentation and get rid of some unnecessary whitespace in the output - [9]
RHUAFTJAShow aborted/cancelled builds separately in jobset eval pages - [10]
5N367XMTjobset view: jump back to the proper tab when displaying all failed jobsets - [11]
BQHDSG6OMerge remote-tracking branch 'origin/master' into flake - [12]
RFE6T5LG* Store jobset evaluations in the database explicitly. This includes - [13]
MWXDVTS3Copy the flake migration from the flake branch - [14]
TJK27WSBOpen the DB using Hydra::Model::DB->new - [15]
SVDYZSZCSchema: add errorMsg, errorTime to JobsetEvals - [16]
U4TD3AIQAdd support for viewing jobset evaluations - [17]
WZZOOYCHShow queued builds in jobset evaluation pages - [18]
5SHCWE7X* Prevent repeated evaluation of a jobset with the same inputs. This - [19]
3PNG7NIBRemove trailing whitespace - [20]
W74RIXTJShow inputs and input changes on the jobset eval page - [21]
PMNWRTGJAdd multiple output support - [22]
NS7SND6Rhydra-evaluator: Send statistics to statsd - [23]
AZCCANUBMissing part of aaacf9eda36f5cdcc77cec20d6f49fbb6f925105 - [24]
VH5ZABDRAdd a page to show the latest evaluations for the entire server - [25]
SW7STLQ7Cache flake-based jobset evaluations - [26]
SB2V735VKeep track of the database schema version - [27]
U5ZWDBW3Ensure that each eval is compared to the previous one from the same jobset - [28]
G2T4WAHIStore the inputs of each evaluation in the database - [29]
IGR322YPsql: Generate models from postgresql - [30]
JM3DPYOMgenerated schema with new dbix class schema loader, grrrrrr - [*]
2GK5DOU7* Downloading closures. - [*]
D5QIOJGP* Move everything up one directory. - [*]
IK53RV4V - [*]
N22GPKYT* Put info about logs / build products in the DB. - [*]
G6HJY2V4 - [*]
4S5JF5JPUse latest DBIx::Class::Schema::Loader
Change contents
- replacement in src/lib/Hydra/Helper/Nix.pm at line 214
{ order_by => "id DESC", rows => $rows, offset => $offset });{ order_by => "me.id DESC", rows => $rows, offset => $offset, prefetch => { evaluationerror => [ ] } }); - file addition: EvaluationErrors.pm[33.477]
use utf8;package Hydra::Schema::EvaluationErrors;# Created by DBIx::Class::Schema::Loader# DO NOT MODIFY THE FIRST PART OF THIS FILE=head1 NAMEHydra::Schema::EvaluationErrors=cutuse strict;use warnings;use base 'DBIx::Class::Core';=head1 COMPONENTS LOADED=over 4=item * L<Hydra::Component::ToJSON>=back=cut__PACKAGE__->load_components("+Hydra::Component::ToJSON");=head1 TABLE: C<evaluationerrors>=cut__PACKAGE__->table("evaluationerrors");=head1 ACCESSORS=head2 iddata_type: 'integer'is_auto_increment: 1is_nullable: 0sequence: 'evaluationerrors_id_seq'=head2 errormsgdata_type: 'text'is_nullable: 1=head2 errortimedata_type: 'integer'is_nullable: 1=cut__PACKAGE__->add_columns("id",{data_type => "integer",is_auto_increment => 1,is_nullable => 0,sequence => "evaluationerrors_id_seq",},"errormsg",{ data_type => "text", is_nullable => 1 },"errortime",{ data_type => "integer", is_nullable => 1 },);=head1 PRIMARY KEY=over 4=item * L</id>=back=cut__PACKAGE__->set_primary_key("id");=head1 RELATIONS=head2 jobsetevalsType: has_manyRelated object: L<Hydra::Schema::JobsetEvals>=cut__PACKAGE__->has_many("jobsetevals","Hydra::Schema::JobsetEvals",{ "foreign.evaluationerror_id" => "self.id" },undef,);# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-02-01 20:17:39# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:sZIg35KWCO8MOsQ5cfN1IA__PACKAGE__->add_column("+id" => { retrieve_on_insert => 1 });1; - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 50
=head2 errormsgdata_type: 'text'is_nullable: 1 - replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 51
=head2 errortime=head2 evaluationerror_id - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 54
is_foreign_key: 1 - replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 119
"errormsg",{ data_type => "text", is_nullable => 1 },"errortime",{ data_type => "integer", is_nullable => 1 },"evaluationerror_id",{ data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 156
=head2 evaluationerrorType: belongs_toRelated object: L<Hydra::Schema::EvaluationErrors> - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 163
=cut__PACKAGE__->belongs_to("evaluationerror","Hydra::Schema::EvaluationErrors",{ id => "evaluationerror_id" },{is_deferrable => 0,join_type => "LEFT",on_delete => "SET NULL",on_update => "NO ACTION",},); - replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 223
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-25 14:44:07# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:OVxeYH+eoZZrAsAJ2/mAAA# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-02-01 20:17:39# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SGtK0PwRkbxiMuitQvs4wQ - replacement in src/root/common.tt at line 479
[% IF eval.errormsg %][% IF eval.evaluationerror.errormsg %] - replacement in src/root/jobset-eval.tt at line 92
[% IF eval.errormsg %][% IF eval.evaluationerror.errormsg %] - replacement in src/root/jobset-eval.tt at line 111
[% IF eval.errormsg %][% IF eval.evaluationerror.errormsg %] - replacement in src/root/jobset-eval.tt at line 113
<p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.errortime || eval.timestamp) %].</p><pre class="alert alert-error">[% HTML.escape(eval.errormsg) %]</pre><p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.evaluationerror.errortime || eval.timestamp) %].</p><pre class="alert alert-error">[% HTML.escape(eval.evaluationerror.errormsg) %]</pre> - replacement in src/root/jobset-eval.tt at line 175
[% IF eval.errormsg %][% IF eval.evaluationerror.errormsg %] - replacement in src/root/jobset-eval.tt at line 177
<p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.errortime || eval.timestamp) %].</p><pre class="alert alert-error">[% HTML.escape(eval.errormsg) %]</pre><p>Errors occurred at [% INCLUDE renderDateTime timestamp=(eval.evaluationerror.errortime || eval.timestamp) %].</p><pre class="alert alert-error">[% HTML.escape(eval.evaluationerror.errormsg) %]</pre> - edit in src/script/hydra-eval-jobset at line 695
my $evaluationErrorRecord = $db->resultset('EvaluationErrors')->create({ errormsg => $evaluationErrorMsg, errortime => $evaluationErrorTime}); - edit in src/script/hydra-eval-jobset at line 724
- edit in src/script/hydra-eval-jobset at line 727
, evaluationerror => $evaluationErrorRecord - edit in src/script/hydra-eval-jobset at line 730
, errormsg => $evaluationErrorMsg, errortime => $evaluationErrorTime - edit in src/sql/hydra.sql at line 440
create table EvaluationErrors (id serial primary key not null,errorMsg text, -- error output from the evaluatorerrorTime integer -- timestamp associated with errorMsg); - replacement in src/sql/hydra.sql at line 450
errorMsg text, -- error output from the evaluatorerrorTime integer, -- timestamp associated with errorMsgevaluationerror_id integer, - replacement in src/sql/hydra.sql at line 478
foreign key (jobset_id) references Jobsets(id) on delete cascadeforeign key (jobset_id) references Jobsets(id) on delete cascade,foreign key (evaluationerror_id) references EvaluationErrors(id) on delete set null - edit in src/sql/update-dbix.pl at line 24
"evaluationerrors" => "EvaluationErrors", - file addition: upgrade-73.sql[33.3004]
create table EvaluationErrors (id serial primary key not null,errorMsg text, -- error output from the evaluatorerrorTime integer, -- timestamp associated with errorMsgjobsetEvalId integer not null,FOREIGN KEY (jobsetEvalId)REFERENCES JobsetEvals(id)ON DELETE SET NULL);ALTER TABLE JobsetEvalsADD COLUMN evaluationerror_id integer NULL,ADD FOREIGN KEY (evaluationerror_id)REFERENCES EvaluationErrors(id)ON DELETE SET NULL;INSERT INTO EvaluationErrors(errorMsg, errorTime, jobsetEvalId)SELECT errorMsg, errorTime, idFROM JobsetEvalsWHERE JobsetEvals.errorMsg != '' and JobsetEvals.errorMsg is not null;UPDATE JobsetEvalsSET evaluationerror_id = EvaluationErrors.idFROM EvaluationErrorsWHERE JobsetEvals.id = EvaluationErrors.jobsetEvalIdAND JobsetEvals.errorMsg != '' and JobsetEvals.errorMsg is not null;ALTER TABLE JobsetEvalsDROP COLUMN errorMsg,DROP COLUMN errorTime;ALTER TABLE EvaluationErrorsDROP COLUMN jobsetEvalId;