fix(emqx_mgmt_data_backup): remove an uploaded backup file if it's not valid
This commit is contained in:
parent
ea917d6b2b
commit
1d1f595e6f
|
@ -2,7 +2,7 @@
|
|||
{application, emqx_management, [
|
||||
{description, "EMQX Management API and CLI"},
|
||||
% strict semver, bump manually!
|
||||
{vsn, "5.1.0"},
|
||||
{vsn, "5.1.1"},
|
||||
{modules, []},
|
||||
{registered, [emqx_management_sup]},
|
||||
{applications, [
|
||||
|
|
|
@ -315,8 +315,10 @@ do_upload(BackupFileNameStr, BackupFileContent) ->
|
|||
catch
|
||||
error:{badmatch, {error, Reason}}:Stack ->
|
||||
?SLOG(error, #{msg => "emqx_data_upload_failed", reason => Reason, stacktrace => Stack}),
|
||||
_ = file:delete(FilePath),
|
||||
{error, Reason};
|
||||
Class:Reason:Stack ->
|
||||
_ = file:delete(FilePath),
|
||||
?SLOG(error, #{
|
||||
msg => "emqx_data_upload_failed",
|
||||
exception => Class,
|
||||
|
|
|
@ -199,7 +199,11 @@ upload_backup_test(Config, BackupName) ->
|
|||
?assertEqual(ok, upload_backup(?NODE3_PORT, Auth, UploadFile)),
|
||||
%% This file was specially forged to pass upload validation bat fail on import
|
||||
?assertEqual(ok, upload_backup(?NODE2_PORT, Auth, BadImportFile)),
|
||||
?assertEqual({error, bad_request}, upload_backup(?NODE1_PORT, Auth, BadUploadFile)).
|
||||
?assertEqual({error, bad_request}, upload_backup(?NODE1_PORT, Auth, BadUploadFile)),
|
||||
%% Invalid file must not be kept
|
||||
?assertMatch(
|
||||
{error, {_, 404, _}}, backup_file_op(get, ?NODE1_PORT, Auth, ?BAD_UPLOAD_BACKUP, [])
|
||||
).
|
||||
|
||||
import_backup_test(Config, BackupName) ->
|
||||
Auth = ?config(auth, Config),
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Do not save invalid uploaded backup files.
|
Loading…
Reference in New Issue