Permalink
Browse files

MDL-28488 backup - conditionaly apply defaults based on mode

Some modes of backup cannot be preloaded with general backup
settings because they may conflict with the definitions required/set
by the mode (for example, import backups are, by definition, without
users always, so we cannot apply one default in the opposite direction).

So, after the patch, current general_backup setting will be only applied
to general backups, import/hub modes won't be using any default and
automated backup defaults should be loaded here (TODO)
  • Loading branch information...
1 parent 56a1642 commit 366c19fabdd58bbc96fc657d1cd7b8267c3fbcf1 @stronk7 stronk7 committed Sep 11, 2011
@@ -339,7 +339,7 @@ protected function load_plan() {
protected function apply_defaults() {
$this->log('applying plan defaults', backup::LOG_DEBUG);
- backup_controller_dbops::apply_general_config_defaults($this);
+ backup_controller_dbops::apply_config_defaults($this);
$this->set_status(backup::STATUS_CONFIGURED);
}
}
@@ -401,12 +401,40 @@ public static function backup_get_original_course_info($courseid) {
return $DB->get_record('course', array('id' => $courseid), 'fullname, shortname, startdate');
}
+ /**
+ * Sets the default values for the settings in a backup operation
+ *
+ * Based on the mode of the backup it will delegate the process to
+ * other methods like {@link apply_general_config_defaults} ...
+ * to get proper defaults loaded
+ *
+ * @param backup_controller $controller
+ */
+ public static function apply_config_defaults(backup_controller $controller) {
+ // Based on the mode of the backup (general, automated, import, hub...)
+ // decide the action to perform to get defaults loaded
+ $mode = $controller->get_mode();
+
+ switch ($mode) {
+ case backup::MODE_GENERAL:
+ // Load the general defaults
+ self::apply_general_config_defaults($controller);
+ break;
+ case backup::MODE_AUTOMATED:
+ // TODO: Move the loading from automatic stuff to here
+ break;
+ default:
+ // Nothing to do for other modes (IMPORT/HUB...). Some day we
+ // can define defaults (admin UI...) for them if we want to
+ }
+ }
+
/**
* Sets the controller settings default values from the backup config.
*
* @param backup_controller $controller
*/
- public static function apply_general_config_defaults(backup_controller $controller) {
+ private static function apply_general_config_defaults(backup_controller $controller) {
$settings = array(
// Config name => Setting name
'backup_general_users' => 'users',

0 comments on commit 366c19f

Please sign in to comment.