From 6f298ed65e57dd3f581ceada03cf0e9a06c7dd0c Mon Sep 17 00:00:00 2001 From: Ondrej Sika Date: Sat, 28 Jan 2023 19:31:18 +0100 Subject: [PATCH] feat(backup/source/dummy): Add DummySource (for devel/testing purposes) --- backup/source/dummy/dummy.go | 24 ++++++++++++++++++++++++ backup/source/source.go | 16 ++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 backup/source/dummy/dummy.go diff --git a/backup/source/dummy/dummy.go b/backup/source/dummy/dummy.go new file mode 100644 index 0000000..e852217 --- /dev/null +++ b/backup/source/dummy/dummy.go @@ -0,0 +1,24 @@ +package dummy + +import ( + "bytes" + "fmt" + + "github.com/sikalabs/tergum/backup_output" +) + +type DummySource struct { + Content string `yaml:"Content"` +} + +func (s DummySource) Validate() error { + if s.Content == "" { + return fmt.Errorf("DummySource need to have a Content") + } + return nil +} + +func (s DummySource) Backup() (backup_output.BackupOutput, error) { + out := bytes.NewReader([]byte(s.Content)) + return backup_output.BackupOutput{Data: out}, nil +} diff --git a/backup/source/source.go b/backup/source/source.go index bf0eb0c..c2d8f1c 100644 --- a/backup/source/source.go +++ b/backup/source/source.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/sikalabs/tergum/backup/source/dir" + "github.com/sikalabs/tergum/backup/source/dummy" "github.com/sikalabs/tergum/backup/source/ftp" "github.com/sikalabs/tergum/backup/source/kubernetes" "github.com/sikalabs/tergum/backup/source/kubernetes_tls_secret" @@ -33,6 +34,7 @@ type Source struct { FTP *ftp.FTPSource `yaml:"FTP"` Redis *redis.RedisSource `yaml:"Redis"` Vault *vault.VaultSource `yaml:"Vault"` + Dummy *dummy.DummySource `yaml:"Dummy"` } func (s Source) Validate() error { @@ -101,6 +103,11 @@ func (s Source) Validate() error { return p.Validate() } + if s.Dummy != nil { + p := *s.Dummy + return p.Validate() + } + return fmt.Errorf("source/validate: no source detected") } @@ -170,6 +177,11 @@ func (s Source) Backup() (backup_output.BackupOutput, error) { return p.Backup() } + if s.Dummy != nil { + p := *s.Dummy + return p.Backup() + } + return backup_output.BackupOutput{}, fmt.Errorf("source/backup: no source detected") } @@ -226,5 +238,9 @@ func (s Source) Name() string { return "Vault" } + if s.Dummy != nil { + return "Dummy" + } + return "" }