Introduce ISetConfigValuesTransactional for transactional config behaviour

This commit is contained in:
Philipp 2023-01-03 14:18:53 +01:00
parent 4d4b4a8858
commit 65d79d4c93
No known key found for this signature in database
GPG key ID: 24A7501396EB5432
14 changed files with 588 additions and 150 deletions

View file

@ -160,9 +160,10 @@ class Update
Logger::warning('Pre update failed', ['version' => $version]);
DI::config()->set('system', 'update', Update::FAILED);
DI::lock()->release('dbupdate');
DI::config()->set('system', 'maintenance', false, false);
DI::config()->delete('system', 'maintenance_reason', false);
DI::config()->save();
DI::config()->transactional()
->set('system', 'maintenance', false)
->delete('system', 'maintenance_reason')
->save();
return $r;
} else {
Logger::notice('Pre update executed.', ['version' => $version]);
@ -182,9 +183,10 @@ class Update
Logger::error('Update ERROR.', ['from' => $stored, 'to' => $current, 'retval' => $retval]);
DI::config()->set('system', 'update', Update::FAILED);
DI::lock()->release('dbupdate');
DI::config()->set('system', 'maintenance', false, false);
DI::config()->delete('system', 'maintenance_reason', false);
DI::config()->save();
DI::config()->transactional()
->set('system', 'maintenance', false)
->delete('system', 'maintenance_reason')
->save();
return $retval;
} else {
Logger::notice('Database structure update finished.', ['from' => $stored, 'to' => $current]);
@ -200,9 +202,10 @@ class Update
Logger::warning('Post update failed', ['version' => $version]);
DI::config()->set('system', 'update', Update::FAILED);
DI::lock()->release('dbupdate');
DI::config()->set('system', 'maintenance', false, false);
DI::config()->delete('system', 'maintenance_reason', false);
DI::config()->save();
DI::config()->transactional()
->set('system', 'maintenance', false)
->delete('system', 'maintenance_reason')
->save();
return $r;
} else {
DI::config()->set('system', 'build', $version);
@ -213,9 +216,10 @@ class Update
DI::config()->set('system', 'build', $current);
DI::config()->set('system', 'update', Update::SUCCESS);
DI::lock()->release('dbupdate');
DI::config()->set('system', 'maintenance', false, false);
DI::config()->delete('system', 'maintenance_reason', false);
DI::config()->save();
DI::config()->transactional()
->set('system', 'maintenance', false)
->delete('system', 'maintenance_reason')
->save();
Logger::notice('Update success.', ['from' => $stored, 'to' => $current]);
if ($sendMail) {