mirror of
https://github.com/discourse/discourse.git
synced 2025-05-29 00:20:54 +08:00
FEATURE: Improve handling of backup storage errors
This commit is contained in:
@ -37,7 +37,7 @@ class Admin::BackupsController < Admin::AdminController
|
||||
}
|
||||
BackupRestore.backup!(current_user.id, opts)
|
||||
rescue BackupRestore::OperationRunningError
|
||||
render json: failed_json.merge(message: I18n.t("backup.operation_already_running"))
|
||||
render_error("backup.operation_already_running")
|
||||
else
|
||||
StaffActionLogger.new(current_user).log_backup_create
|
||||
render json: success_json
|
||||
@ -46,7 +46,7 @@ class Admin::BackupsController < Admin::AdminController
|
||||
def cancel
|
||||
BackupRestore.cancel!
|
||||
rescue BackupRestore::OperationRunningError
|
||||
render json: failed_json.merge(message: I18n.t("backup.operation_already_running"))
|
||||
render_error("backup.operation_already_running")
|
||||
else
|
||||
render json: success_json
|
||||
end
|
||||
@ -117,7 +117,7 @@ class Admin::BackupsController < Admin::AdminController
|
||||
SiteSetting.set_and_log(:disable_emails, 'yes', current_user)
|
||||
BackupRestore.restore!(current_user.id, opts)
|
||||
rescue BackupRestore::OperationRunningError
|
||||
render json: failed_json.merge(message: I18n.t("backup.operation_already_running"))
|
||||
render_error("backup.operation_already_running")
|
||||
else
|
||||
render json: success_json
|
||||
end
|
||||
@ -125,7 +125,7 @@ class Admin::BackupsController < Admin::AdminController
|
||||
def rollback
|
||||
BackupRestore.rollback!
|
||||
rescue BackupRestore::OperationRunningError
|
||||
render json: failed_json.merge(message: I18n.t("backup.operation_already_running"))
|
||||
render_error("backup.operation_already_running")
|
||||
else
|
||||
render json: success_json
|
||||
end
|
||||
@ -192,15 +192,17 @@ class Admin::BackupsController < Admin::AdminController
|
||||
params.require(:filename)
|
||||
filename = params.fetch(:filename)
|
||||
|
||||
return render_error("backup.backup_file_should_be_tar_gz") unless valid_extension?(filename)
|
||||
return render_error("backup.invalid_filename") unless valid_filename?(filename)
|
||||
return render_json_error(I18n.t("backup.backup_file_should_be_tar_gz")) unless valid_extension?(filename)
|
||||
return render_json_error(I18n.t("backup.invalid_filename")) unless valid_filename?(filename)
|
||||
|
||||
store = BackupRestore::BackupStore.create
|
||||
|
||||
begin
|
||||
upload_url = store.generate_upload_url(filename)
|
||||
rescue BackupRestore::BackupStore::BackupFileExists
|
||||
return render_error("backup.file_exists")
|
||||
return render_json_error(I18n("backup.file_exists"))
|
||||
rescue BackupRestore::BackupStore::StorageError => e
|
||||
return render_json_error(e)
|
||||
end
|
||||
|
||||
render json: success_json.merge(url: upload_url)
|
||||
|
Reference in New Issue
Block a user