From 33b44a6ea5c0352208773c3d92590c2e094de6bb Mon Sep 17 00:00:00 2001 From: netbenix Date: Mon, 22 Nov 2021 21:29:19 +0100 Subject: [PATCH] Started implementing SQL Logs. Only MariaDB yet. Interface usage comes soon. --- Compression.go | 12 +++++++++++- StorageTypes/AzureFileStorage.go | 7 +++++++ main.go | 12 +++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Compression.go b/Compression.go index 17fdd5a..957d66d 100644 --- a/Compression.go +++ b/Compression.go @@ -6,10 +6,13 @@ import ( "compress/flate" "compress/gzip" "fmt" + "github.com/google/uuid" "io" "os" "path/filepath" "scabiosa/Logging" + "scabiosa/SQL" + "time" ) func CreateBakFile(filename string, folderPath string, destinationPath string) string { @@ -29,6 +32,10 @@ func CreateBakFile(filename string, folderPath string, destinationPath string) s logger.Fatal(err) } + //TODO Remove Hardcoded SQL Instance + SQL.NewLogEntry(SQL.GetMariaDBInstance(), uuid.New(), SQL.LogInfo, filepath.Base(folderPath), SQL.SQLStage_Compress, SQL.REMOTE_NONE, "File successfully written.", time.Now()) + + return fileName } @@ -40,7 +47,8 @@ func compress(folderPath string, buf io.Writer){ tw := tar.NewWriter(zr) fmt.Printf("[%s] Start compression...\n", filepath.Base(folderPath)) - + //TODO Remove Hardcoded SQL Instance + SQL.NewLogEntry(SQL.GetMariaDBInstance(), uuid.New(), SQL.LogInfo, filepath.Base(folderPath), SQL.SQLStage_Compress, SQL.REMOTE_NONE, "Start compression", time.Now()) filepath.Walk(folderPath, func(file string, fi os.FileInfo, err error) error { header, err := tar.FileInfoHeader(fi, file) if err != nil { @@ -78,4 +86,6 @@ func compress(folderPath string, buf io.Writer){ fmt.Printf("[%s] Compression Done.\n", filepath.Base(folderPath)) + //TODO Remove Hardcoded SQL Instance + SQL.NewLogEntry(SQL.GetMariaDBInstance(), uuid.New(), SQL.LogInfo, filepath.Base(folderPath), SQL.SQLStage_Compress, SQL.REMOTE_NONE, "Compression complete.", time.Now()) } \ No newline at end of file diff --git a/StorageTypes/AzureFileStorage.go b/StorageTypes/AzureFileStorage.go index c4a9387..bfcb84f 100644 --- a/StorageTypes/AzureFileStorage.go +++ b/StorageTypes/AzureFileStorage.go @@ -5,11 +5,14 @@ import ( "encoding/json" "fmt" "github.com/Azure/azure-storage-file-go/azfile" + "github.com/google/uuid" "net/url" "os" "path/filepath" "scabiosa/Logging" + "scabiosa/SQL" "strings" + "time" ) type AzureFileStorage struct{ @@ -46,6 +49,8 @@ func (azure AzureFileStorage) upload(fileName string){ ctx := context.Background() fmt.Printf("[%s] Starting upload to Azure File Share...\n", strings.Trim(filepath.Base(fileName), ".bak")) + //TODO Remove Hardcoded SQL Instance + SQL.NewLogEntry(SQL.GetMariaDBInstance(), uuid.New(), SQL.LogInfo, filepath.Base(fileName), SQL.SQLStage_Upload, SQL.REMOTE_AZURE_FILE, "Starting upload.", time.Now()) err = azfile.UploadFileToAzureFile(ctx, file, fileURL, azfile.UploadToAzureFileOptions{ @@ -58,6 +63,8 @@ func (azure AzureFileStorage) upload(fileName string){ }}) fmt.Printf("[%s] Upload finished.\n", strings.Trim(filepath.Base(fileName), ".bak")) + //TODO Remove Hardcoded SQL Instance + SQL.NewLogEntry(SQL.GetMariaDBInstance(), uuid.New(), SQL.LogInfo, filepath.Base(fileName), SQL.SQLStage_Upload, SQL.REMOTE_AZURE_FILE, "Finished upload.", time.Now()) } func readConfig() []byte { diff --git a/main.go b/main.go index c8c4a9a..3a82cbc 100644 --- a/main.go +++ b/main.go @@ -1,25 +1,31 @@ package main import ( + "github.com/google/uuid" "os" "scabiosa/Logging" + "scabiosa/SQL" "scabiosa/StorageTypes" + "scabiosa/Tools" "time" ) func main(){ - config := GetConfig() + config := Tools.GetConfig() + + SQL.CreateDefaultTables(SQL.GetMariaDBInstance()) for _, backupItem := range config.FolderToBackup{ storage := StorageTypes.CheckStorageType(backupItem.StorageType) destPath := checkTmpPath(config, backupItem.CreateLocalBackup) bakFile := CreateBakFile(backupItem.BackupName + getTimeSuffix(), backupItem.FolderPath, destPath) - StorageTypes.UploadFile(storage, destPath + string(os.PathSeparator) + bakFile) if !backupItem.CreateLocalBackup { _ = os.Remove(destPath + string(os.PathSeparator) + bakFile) + //TODO Remove Hardcoded SQL Instance + SQL.NewLogEntry(SQL.GetMariaDBInstance(), uuid.New(), SQL.LogInfo, backupItem.BackupName, SQL.SQLStage_DeleteTmp, SQL.REMOTE_NONE, "Deleted tmp file" ,time.Now()) } } @@ -33,7 +39,7 @@ func getTimeSuffix() string{ return "_" + currTime.Format("02-01-2006_15-04") } -func checkTmpPath(config Config, createLocalBackup bool) string{ +func checkTmpPath(config Tools.Config, createLocalBackup bool) string{ logger := Logging.DetailedLogger("mainThread", "checkTmpPath") if !createLocalBackup{ if _, err := os.Stat("tmp"); os.IsNotExist(err) {