Merge branch 'MDL-62572-master' of git://github.com/damyon/moodle
[moodle.git] / backup / util / dbops / backup_controller_dbops.class.php
index 0e1d839..ce9c1ba 100644 (file)
@@ -676,4 +676,31 @@ abstract class backup_controller_dbops extends backup_dbops {
             }
         }
     }
+
+    /**
+     * Get the progress details of a backup operation.
+     * Get backup records directly from database, if the backup has successfully completed
+     * there will be no controller object to load.
+     *
+     * @param string $backupid The backup id to query.
+     * @return array $progress The backup progress details.
+     */
+    public static function get_progress($backupid) {
+        global $DB;
+
+        $progress = array();
+        $backuprecord = $DB->get_record(
+            'backup_controllers',
+            array('backupid' => $backupid),
+            'status, progress, operation',
+            MUST_EXIST);
+
+        $status = $backuprecord->status;
+        $progress = $backuprecord->progress;
+        $operation = $backuprecord->operation;
+
+        $progress = array('status' => $status, 'progress' => $progress, 'backupid' => $backupid, 'operation' => $operation);
+
+        return $progress;
+    }
 }