From ca3f0281a337afdfff466aba4fff6841204cb1bb Mon Sep 17 00:00:00 2001 From: Rostislav Dugin Date: Fri, 2 Jan 2026 12:09:43 +0300 Subject: [PATCH] FIX (temp folders): Improve temp folders cleanup over backups and restores --- .../backups/backups/usecases/mariadb/create_backup_uc.go | 2 +- .../backups/backups/usecases/mysql/create_backup_uc.go | 2 +- .../backups/backups/usecases/postgresql/create_backup_uc.go | 2 +- .../features/restores/usecases/mariadb/restore_backup_uc.go | 2 +- .../features/restores/usecases/mysql/restore_backup_uc.go | 2 +- .../restores/usecases/postgresql/restore_backup_uc.go | 6 +++--- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/internal/features/backups/backups/usecases/mariadb/create_backup_uc.go b/backend/internal/features/backups/backups/usecases/mariadb/create_backup_uc.go index 16c74cc..4d3cf97 100644 --- a/backend/internal/features/backups/backups/usecases/mariadb/create_backup_uc.go +++ b/backend/internal/features/backups/backups/usecases/mariadb/create_backup_uc.go @@ -264,7 +264,7 @@ func (uc *CreateMariadbBackupUsecase) createTempMyCnfFile( mdbConfig *mariadbtypes.MariadbDatabase, password string, ) (string, error) { - tempDir, err := os.MkdirTemp("", "mycnf") + tempDir, err := os.MkdirTemp(config.GetEnv().TempFolder, "mycnf_"+uuid.New().String()) if err != nil { return "", fmt.Errorf("failed to create temp directory: %w", err) } diff --git a/backend/internal/features/backups/backups/usecases/mysql/create_backup_uc.go b/backend/internal/features/backups/backups/usecases/mysql/create_backup_uc.go index d912c40..293c8c2 100644 --- a/backend/internal/features/backups/backups/usecases/mysql/create_backup_uc.go +++ b/backend/internal/features/backups/backups/usecases/mysql/create_backup_uc.go @@ -279,7 +279,7 @@ func (uc *CreateMysqlBackupUsecase) createTempMyCnfFile( myConfig *mysqltypes.MysqlDatabase, password string, ) (string, error) { - tempDir, err := os.MkdirTemp("", "mycnf") + tempDir, err := os.MkdirTemp(config.GetEnv().TempFolder, "mycnf_"+uuid.New().String()) if err != nil { return "", fmt.Errorf("failed to create temp directory: %w", err) } diff --git a/backend/internal/features/backups/backups/usecases/postgresql/create_backup_uc.go b/backend/internal/features/backups/backups/usecases/postgresql/create_backup_uc.go index 9e5880b..b59e95e 100644 --- a/backend/internal/features/backups/backups/usecases/postgresql/create_backup_uc.go +++ b/backend/internal/features/backups/backups/usecases/postgresql/create_backup_uc.go @@ -771,7 +771,7 @@ func (uc *CreatePostgresqlBackupUsecase) createTempPgpassFile( escapedPassword, ) - tempDir, err := os.MkdirTemp("", "pgpass") + tempDir, err := os.MkdirTemp(config.GetEnv().TempFolder, "pgpass_"+uuid.New().String()) if err != nil { return "", fmt.Errorf("failed to create temporary directory: %w", err) } diff --git a/backend/internal/features/restores/usecases/mariadb/restore_backup_uc.go b/backend/internal/features/restores/usecases/mariadb/restore_backup_uc.go index 31feef9..b5775f9 100644 --- a/backend/internal/features/restores/usecases/mariadb/restore_backup_uc.go +++ b/backend/internal/features/restores/usecases/mariadb/restore_backup_uc.go @@ -330,7 +330,7 @@ func (uc *RestoreMariadbBackupUsecase) createTempMyCnfFile( mdbConfig *mariadbtypes.MariadbDatabase, password string, ) (string, error) { - tempDir, err := os.MkdirTemp("", "mycnf") + tempDir, err := os.MkdirTemp(config.GetEnv().TempFolder, "mycnf_"+uuid.New().String()) if err != nil { return "", fmt.Errorf("failed to create temp directory: %w", err) } diff --git a/backend/internal/features/restores/usecases/mysql/restore_backup_uc.go b/backend/internal/features/restores/usecases/mysql/restore_backup_uc.go index a720d3d..8205660 100644 --- a/backend/internal/features/restores/usecases/mysql/restore_backup_uc.go +++ b/backend/internal/features/restores/usecases/mysql/restore_backup_uc.go @@ -322,7 +322,7 @@ func (uc *RestoreMysqlBackupUsecase) createTempMyCnfFile( myConfig *mysqltypes.MysqlDatabase, password string, ) (string, error) { - tempDir, err := os.MkdirTemp("", "mycnf") + tempDir, err := os.MkdirTemp(config.GetEnv().TempFolder, "mycnf_"+uuid.New().String()) if err != nil { return "", fmt.Errorf("failed to create temp directory: %w", err) } diff --git a/backend/internal/features/restores/usecases/postgresql/restore_backup_uc.go b/backend/internal/features/restores/usecases/postgresql/restore_backup_uc.go index 6eaca00..642e6a1 100644 --- a/backend/internal/features/restores/usecases/postgresql/restore_backup_uc.go +++ b/backend/internal/features/restores/usecases/postgresql/restore_backup_uc.go @@ -287,7 +287,7 @@ func (uc *RestorePostgresqlBackupUsecase) restoreFromStorage( } defer func() { if pgpassFile != "" { - _ = os.Remove(pgpassFile) + _ = os.RemoveAll(filepath.Dir(pgpassFile)) } }() @@ -927,7 +927,7 @@ func (uc *RestorePostgresqlBackupUsecase) generateFilteredTocList( } // Write filtered TOC to temporary file - tocFile, err := os.CreateTemp("", "pg_restore_toc_*.list") + tocFile, err := os.CreateTemp(config.GetEnv().TempFolder, "pg_restore_toc_*.list") if err != nil { return "", fmt.Errorf("failed to create TOC list file: %w", err) } @@ -974,7 +974,7 @@ func (uc *RestorePostgresqlBackupUsecase) createTempPgpassFile( escapedPassword, ) - tempDir, err := os.MkdirTemp("", "pgpass") + tempDir, err := os.MkdirTemp(config.GetEnv().TempFolder, "pgpass_"+uuid.New().String()) if err != nil { return "", fmt.Errorf("failed to create temporary directory: %w", err) }