MDL-68773 backup: Allow completed async backup + restore tasks to clear

This commit is contained in:
Peter Burnett
2022-01-04 10:57:58 +10:00
parent 222c8cc77c
commit 28d6333f47
4 changed files with 227 additions and 14 deletions
@@ -48,12 +48,16 @@ class asynchronous_backup_task extends adhoc_task {
$started = time();
$backupid = $this->get_custom_data()->backupid;
$backuprecordid = $DB->get_field('backup_controllers', 'id', array('backupid' => $backupid), MUST_EXIST);
$backuprecord = $DB->get_record('backup_controllers', array('backupid' => $backupid), 'id, controller', MUST_EXIST);
mtrace('Processing asynchronous backup for backup: ' . $backupid);
// Get the backup controller by backup id.
// Get the backup controller by backup id. If controller is invalid, this task can never complete.
if ($backuprecord->controller === '') {
mtrace('Bad backup controller status, invalid controller, ending backup execution.');
return;
}
$bc = \backup_controller::load_controller($backupid);
$bc->set_progress(new \core\progress\db_updater($backuprecordid, 'backup_controllers', 'progress'));
$bc->set_progress(new \core\progress\db_updater($backuprecord->id, 'backup_controllers', 'progress'));
// Do some preflight checks on the backup.
$status = $bc->get_status();
@@ -87,4 +91,3 @@ class asynchronous_backup_task extends adhoc_task {
mtrace('Backup completed in: ' . $duration . ' seconds');
}
}