mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 04:52:36 +02:00
MDL-74548 backup: Deprecate core_backup\copy\copy
This commit is contained in:
parent
bc9c536335
commit
07e5f432a0
@ -1,6 +1,11 @@
|
||||
This files describes API changes in /backup/*,
|
||||
information provided here is intended especially for developers.
|
||||
|
||||
=== 4.1 ===
|
||||
|
||||
* The class core_backup\copy\copy in backup/util/ui/classes/copy.php has been deprecated, please use copy_helper
|
||||
from backup/util/helper/copy_helper.class.php instead.
|
||||
|
||||
=== 4.0 ===
|
||||
|
||||
* Backup UI labels now accept empty/whitespace-only contents.
|
||||
|
@ -24,6 +24,7 @@
|
||||
* @copyright 2020 onward The Moodle Users Association <https://moodleassociation.org/>
|
||||
* @author Matt Porritt <mattp@catalyst-au.net>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @deprecated since Moodle 4.1. Use copy_helper instead
|
||||
*/
|
||||
|
||||
namespace core_backup\copy;
|
||||
@ -44,8 +45,11 @@ require_once($CFG->dirroot . '/backup/util/includes/restore_includes.php');
|
||||
* @copyright 2020 onward The Moodle Users Association <https://moodleassociation.org/>
|
||||
* @author Matt Porritt <mattp@catalyst-au.net>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @deprecated since Moodle 4.1 MDL-74548 - please use copy_helper instead
|
||||
* @todo MDL-75022 This class will be deleted in Moodle 4.5
|
||||
* @see copy_helper
|
||||
*/
|
||||
class copy {
|
||||
class copy {
|
||||
|
||||
/**
|
||||
* The fields required for copy operations.
|
||||
@ -84,6 +88,7 @@ class copy {
|
||||
* @param \stdClass $formdata Data from the validated course copy form.
|
||||
*/
|
||||
public function __construct(\stdClass $formdata) {
|
||||
debugging('Class \course_backup\copy\copy is deprecated. Please use the copy_helper class instead.');
|
||||
$this->copydata = $this->get_copy_data($formdata);
|
||||
$this->roles = $this->get_enrollment_roles($formdata);
|
||||
}
|
||||
@ -133,6 +138,10 @@ class copy {
|
||||
* Sets up relevant controllers and adhoc task.
|
||||
*
|
||||
* @return array $copyids THe backup and restore controller ids.
|
||||
* @deprecated since Moodle 4.1 MDL-74548 - please use copy_helper instead.
|
||||
* @todo MDL-75023 This method will be deleted in Moodle 4.5
|
||||
* @see copy_helper::process_formdata()
|
||||
* @see copy_helper::create_copy()
|
||||
*/
|
||||
public function create_copy(): array {
|
||||
debugging('The method \core_backup\copy\copy::create_copy() is deprecated.
|
||||
@ -148,99 +157,14 @@ class copy {
|
||||
* @param int $userid User id to get the course copies for.
|
||||
* @param int $courseid The optional source course id to get copies for.
|
||||
* @return array $copies Details of the inprogress copies.
|
||||
* @deprecated since Moodle 4.1 MDL-74548 - please use copy_helper::get_copies() instead.
|
||||
* @todo MDL-75024 This method will be deleted in Moodle 4.5
|
||||
* @see copy_helper::get_copies()
|
||||
*/
|
||||
static public function get_copies(int $userid, int $courseid=0): array {
|
||||
global $DB;
|
||||
$copies = array();
|
||||
$params = array($userid, \backup::EXECUTION_DELAYED, \backup::MODE_COPY);
|
||||
$sql = 'SELECT bc.backupid, bc.itemid, bc.operation, bc.status, bc.timecreated
|
||||
FROM {backup_controllers} bc
|
||||
INNER JOIN {course} c ON bc.itemid = c.id
|
||||
WHERE bc.userid = ?
|
||||
AND bc.execution = ?
|
||||
AND bc.purpose = ?
|
||||
ORDER BY bc.timecreated DESC';
|
||||
public static function get_copies(int $userid, int $courseid=0): array {
|
||||
debugging('The method \core_backup\copy\copy::get_copies() is deprecated.
|
||||
Please use copy_helper::get_copies() instead.', DEBUG_DEVELOPER);
|
||||
|
||||
$copyrecords = $DB->get_records_sql($sql, $params);
|
||||
|
||||
foreach ($copyrecords as $copyrecord) {
|
||||
$copy = new \stdClass();
|
||||
$copy->itemid = $copyrecord->itemid;
|
||||
$copy->time = $copyrecord->timecreated;
|
||||
$copy->operation = $copyrecord->operation;
|
||||
$copy->status = $copyrecord->status;
|
||||
$copy->backupid = null;
|
||||
$copy->restoreid = null;
|
||||
|
||||
if ($copyrecord->operation == \backup::OPERATION_RESTORE) {
|
||||
$copy->restoreid = $copyrecord->backupid;
|
||||
// If record is complete or complete with errors, it means the backup also completed.
|
||||
// It also means there are no controllers. In this case just skip and move on.
|
||||
if ($copyrecord->status == \backup::STATUS_FINISHED_OK
|
||||
|| $copyrecord->status == \backup::STATUS_FINISHED_ERR) {
|
||||
continue;
|
||||
} else if ($copyrecord->status > \backup::STATUS_REQUIRE_CONV) {
|
||||
// If record is a restore and it's in progress (>200), it means the backup is finished.
|
||||
// In this case return the restore.
|
||||
$rc = \restore_controller::load_controller($copyrecord->backupid);
|
||||
$course = get_course($rc->get_copy()->courseid);
|
||||
|
||||
$copy->source = $course->shortname;
|
||||
$copy->sourceid = $course->id;
|
||||
$copy->destination = $rc->get_copy()->shortname;
|
||||
$copy->backupid = $rc->get_copy()->copyids['backupid'];
|
||||
$rc->destroy();
|
||||
|
||||
} else if ($copyrecord->status == \backup::STATUS_REQUIRE_CONV) {
|
||||
// If record is a restore and it is waiting (=200), load the controller
|
||||
// and check the status of the backup.
|
||||
// If the backup has finished successfully we have and edge case. Process as per in progress restore.
|
||||
// If the backup has any other code it will be handled by backup processing.
|
||||
$rc = \restore_controller::load_controller($copyrecord->backupid);
|
||||
$bcid = $rc->get_copy()->copyids['backupid'];
|
||||
if (empty($copyrecords[$bcid])) {
|
||||
continue;
|
||||
}
|
||||
$backuprecord = $copyrecords[$bcid];
|
||||
$backupstatus = $backuprecord->status;
|
||||
if ($backupstatus == \backup::STATUS_FINISHED_OK) {
|
||||
$course = get_course($rc->get_copy()->courseid);
|
||||
|
||||
$copy->source = $course->shortname;
|
||||
$copy->sourceid = $course->id;
|
||||
$copy->destination = $rc->get_copy()->shortname;
|
||||
$copy->backupid = $rc->get_copy()->copyids['backupid'];
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} else { // Record is a backup.
|
||||
$copy->backupid = $copyrecord->backupid;
|
||||
if ($copyrecord->status == \backup::STATUS_FINISHED_OK
|
||||
|| $copyrecord->status == \backup::STATUS_FINISHED_ERR) {
|
||||
// If successfully finished then skip it. Restore procesing will look after it.
|
||||
// If it has errored then we can't go any further.
|
||||
continue;
|
||||
} else {
|
||||
// If is in progress then process it.
|
||||
$bc = \backup_controller::load_controller($copyrecord->backupid);
|
||||
$course = get_course($bc->get_courseid());
|
||||
|
||||
$copy->source = $course->shortname;
|
||||
$copy->sourceid = $course->id;
|
||||
$copy->destination = $bc->get_copy()->shortname;
|
||||
$copy->restoreid = $bc->get_copy()->copyids['restoreid'];
|
||||
}
|
||||
}
|
||||
|
||||
$copies[] = $copy;
|
||||
}
|
||||
|
||||
// Extra processing to filter records for a given course.
|
||||
if ($courseid != 0 ) {
|
||||
$copies = self::filter_copies_course($copies, $courseid);
|
||||
}
|
||||
|
||||
return $copies;
|
||||
return \copy_helper::get_copies($userid, $coursied);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user