-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdump.go
35 lines (30 loc) · 1.04 KB
/
dump.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package actions
import (
"os"
"github.com/neo9/mongodb-backups/pkg/log"
"github.com/neo9/mongodb-backups/pkg/mongodb"
"github.com/neo9/mongodb-backups/pkg/scheduler"
"github.com/neo9/mongodb-backups/pkg/utils"
)
func ArbitraryDump(confPath string) {
backupScheduler := getScheduler(confPath)
log.Info("Creating MongoDB dump for %s", backupScheduler.Plan.Name)
mongoDBDump, err := mongodb.CreateDump(backupScheduler.Plan)
if err != nil {
log.Error("Error creating dump for %s", backupScheduler.Plan.Name)
os.Exit(1)
}
UploadDumpFile(mongoDBDump.ArchiveFile, backupScheduler)
UploadDumpFile(mongoDBDump.LogFile, backupScheduler)
mongodb.RemoveFile(mongoDBDump.ArchiveFile)
mongodb.RemoveFile(mongoDBDump.LogFile)
log.Info("Dump successful")
}
func UploadDumpFile(filename string, scheduler *scheduler.Scheduler) {
log.Info("Upload file %s. Size: %s", filename, utils.GetHumanFileSize(filename))
err := scheduler.Bucket.Upload(filename, scheduler.Plan.Name)
if err != nil {
log.Error("Could not upload file: %v", err)
os.Exit(1)
}
}