Remove Hydra::Helper::nix::txn_do from the Perl code

To quote the function's comment:

  Awful hack to handle timeouts in SQLite: just retry the transaction.
  DBD::SQLite *has* a 30 second retry window, but apparently it
  doesn't work.

Since SQLite is now dropped entirely, this wrapper can be removed
completely.
This commit is contained in:
Maximilian Bosch
2020-04-10 18:13:36 +02:00
parent efcbc08686
commit 721c764951
18 changed files with 34 additions and 50 deletions

View File

@ -214,7 +214,7 @@ sub scmdiff : Path('/api/scmdiff') Args(0) {
sub triggerJobset {
my ($self, $c, $jobset, $force) = @_;
print STDERR "triggering jobset ", $jobset->get_column('project') . ":" . $jobset->name, "\n";
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
$jobset->update({ triggertime => time });
$jobset->update({ forceeval => 1 }) if $force;
});

View File

@ -90,7 +90,7 @@ sub news_submit : Chained('admin') PathPart('news/submit') Args(0) {
sub news_delete : Chained('admin') PathPart('news/delete') Args(1) {
my ($self, $c, $id) = @_;
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
my $newsItem = $c->model('DB::NewsItems')->find($id)
or notFound($c, "Newsitem with id $id doesn't exist.");
$newsItem->delete;

View File

@ -526,7 +526,7 @@ sub keep : Chained('buildChain') PathPart Args(1) {
registerRoot $_->path foreach $build->buildoutputs;
}
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
$build->update({keep => $keep});
});

View File

@ -62,7 +62,7 @@ sub jobset_PUT {
}
if (defined $c->stash->{jobset}) {
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
updateJobset($c, $c->stash->{jobset});
});
@ -74,7 +74,7 @@ sub jobset_PUT {
else {
my $jobset;
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
# Note: $jobsetName is validated in updateProject, which will
# abort the transaction if the name isn't valid.
$jobset = $c->stash->{project}->jobsets->create(
@ -100,7 +100,7 @@ sub jobset_DELETE {
error($c, "can't modify jobset of declarative project", 403);
}
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
$c->stash->{jobset}->jobsetevals->delete;
$c->stash->{jobset}->builds->delete;
$c->stash->{jobset}->delete;

View File

@ -146,7 +146,7 @@ sub release : Chained('evalChain') PathPart('release') Args(0) {
my $release;
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
$release = $c->stash->{project}->releases->create(
{ name => $releaseName

View File

@ -41,7 +41,7 @@ sub project_PUT {
if (defined $c->stash->{project}) {
requireProjectOwner($c, $c->stash->{project});
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
updateProject($c, $c->stash->{project});
});
@ -55,7 +55,7 @@ sub project_PUT {
requireMayCreateProjects($c);
my $project;
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
# Note: $projectName is validated in updateProject,
# which will abort the transaction if the name isn't
# valid. Idem for the owner.
@ -77,7 +77,7 @@ sub project_DELETE {
requireProjectOwner($c, $c->stash->{project});
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
$c->stash->{project}->jobsetevals->delete;
$c->stash->{project}->builds->delete;
$c->stash->{project}->delete;
@ -198,7 +198,7 @@ sub create_release_submit : Chained('projectChain') PathPart('create-release/sub
my $releaseName = $c->request->params->{name};
my $release;
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
# Note: $releaseName is validated in updateRelease, which will
# abort the transaction if the name isn't valid.
$release = $c->stash->{project}->releases->create(

View File

@ -63,13 +63,13 @@ sub submit : Chained('release') PathPart('submit') Args(0) {
requireProjectOwner($c, $c->stash->{project});
if (($c->request->params->{action} || "") eq "delete") {
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
$c->stash->{release}->delete;
});
$c->res->redirect($c->uri_for($c->controller('Project')->action_for('project'),
[$c->stash->{project}->name]));
} else {
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
updateRelease($c, $c->stash->{release});
});
$c->res->redirect($c->uri_for($self->action_for("view"),

View File

@ -163,7 +163,7 @@ sub register :Local Args(0) {
error($c, "Your user name is already taken.")
if $c->find_user({ username => $userName });
txn_do($c->model('DB')->schema, sub {
$c->model('DB')->schema->txn_do(sub {
my $user = $c->model('DB::Users')->create(
{ username => $userName
, password => "!"
@ -261,7 +261,7 @@ sub edit_PUT {
return;
}
txn_do($c->model('DB')->schema, sub {
$c->model('Db')->schema->txn_do(sub {
updatePreferences($c, $user);
});