Use triggers for all notifications on Builds table changes
[?]
Jul 8, 2015, 10:05 AM
H4KMCXGUC5MA7AZUN33GQQWCP66UP7T6IYGJB6HY5AUSKVS32YZACDependencies
- [2]
RYFOZU2ZDon't wake up the queue runner for cached evals - [3]
RVHBV3B3Notify the queue runner when a build is deleted - [4]
2IQRXLWESupport cancelling builds - [5]
4FGKYUTNAllow cancelling builds marked as busy - [6]
PHX2HIVG* Store info about the build inputs in the build record. - [7]
ATJ54SPXUse PostgreSQL notifications for queue events - [8]
CLJQCY2X* Store info about all the build actions and allow them to be - [9]
DDMYFZ5XFix the jobset unchanged check - [10]
VHV6GI4LAdd a jobset eval action to restart all aborted/cancelled builds - [11]
UOINKJ2JAdd an action to cancel all builds in a jobset eval - [12]
DDGBLKENUpdate isCurrent properly - [13]
RYTQLATYKeep track of failed paths in the Hydra database - [*]
2GK5DOU7* Downloading closures. - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- edit in src/lib/Hydra/Helper/Nix.pm at line 436
$db->storage->dbh->do("notify builds_cancelled"); - edit in src/lib/Hydra/Helper/Nix.pm at line 472
$db->storage->dbh->do("notify builds_restarted"); - edit in src/script/hydra-evaluator at line 237
$db->storage->dbh->do("notify builds_added"); - edit in src/sql/hydra.sql at line 206
create function notifyBuildsAdded() returns trigger as 'begin notify builds_added; return null; end;' language plpgsql;create trigger BuildsAdded after insert on Builds execute procedure notifyBuildsAdded(); - replacement in src/sql/hydra.sql at line 210
create function notifyBuildDeleted() returns trigger as $$beginexecute 'notify builds_deleted';return null;end;$$ language plpgsql;create function notifyBuildsDeleted() returns trigger as 'begin notify builds_deleted; return null; end;' language plpgsql;create trigger BuildsDeleted after delete on Builds execute procedure notifyBuildsDeleted();create function notifyBuildRestarted() returns trigger as 'begin notify builds_restarted; return null; end;' language plpgsql;create trigger BuildRestarted after update on Builds for each rowwhen (old.finished = 1 and new.finished = 0) execute procedure notifyBuildRestarted(); - replacement in src/sql/hydra.sql at line 217
create trigger BuildDeleted after delete on Buildsfor each rowexecute procedure notifyBuildDeleted();create function notifyBuildCancelled() returns trigger as 'begin notify builds_cancelled; return null; end;' language plpgsql;create trigger BuildCancelled after update on Builds for each rowwhen (old.finished = 0 and new.finished = 1 and new.buildStatus = 4) execute procedure notifyBuildCancelled(); - replacement in src/sql/upgrade-35.sql at line 1
create function notifyBuildDeleted() returns trigger as $$beginexecute 'notify builds_deleted';return null;end;$$ language plpgsql;create function notifyBuildsAdded() returns trigger as 'begin notify builds_added; return null; end;' language plpgsql;create trigger BuildsAdded after insert on Builds execute procedure notifyBuildsAdded();create function notifyBuildsDeleted() returns trigger as 'begin notify builds_deleted; return null; end;' language plpgsql;create trigger BuildsDeleted after delete on Builds execute procedure notifyBuildsDeleted();create function notifyBuildRestarted() returns trigger as 'begin notify builds_restarted; return null; end;' language plpgsql;create trigger BuildRestarted after update on Builds for each rowwhen (old.finished = 1 and new.finished = 0) execute procedure notifyBuildRestarted(); - replacement in src/sql/upgrade-35.sql at line 11
create trigger BuildDeleted after delete on Buildsfor each rowexecute procedure notifyBuildDeleted();[3.555]create function notifyBuildCancelled() returns trigger as 'begin notify builds_cancelled; return null; end;' language plpgsql;create trigger BuildCancelled after update on Builds for each rowwhen (old.finished = 0 and new.finished = 1 and new.buildStatus = 4) execute procedure notifyBuildCancelled();