Merge pull request #66 from intercube/feature/support-cluster-db-sync… · intercube/cli@22f9c21 · GitHub
Skip to content

Commit 22f9c21

Browse files
authored
Merge pull request #66 from intercube/feature/support-cluster-db-sync-target
[FEATURE] Support separate database SSH targets during sync
2 parents 0c7c24f + 60a622d commit 22f9c21

5 files changed

Lines changed: 355 additions & 13 deletions

File tree

README.md

Lines changed: 26 additions & 2 deletions

cmd/sync-config_test.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package cmd
2+
3+
import (
4+
"strings"
5+
"testing"
6+
7+
"github.com/spf13/viper"
8+
)
9+
10+
func TestLoadSyncSettingsDecodesDatabaseTargetSSH(t *testing.T) {
11+
viper.Reset()
12+
t.Cleanup(viper.Reset)
13+
14+
viper.SetConfigType("yaml")
15+
err := viper.ReadConfig(strings.NewReader(`
16+
sync:
17+
database:
18+
target_ssh:
19+
host: production-sql.example.com
20+
user: deploy
21+
port: 2200
22+
`))
23+
if err != nil {
24+
t.Fatalf("unable to read config: %v", err)
25+
}
26+
27+
settings, err := loadSyncSettings()
28+
if err != nil {
29+
t.Fatalf("unable to load sync settings: %v", err)
30+
}
31+
32+
if settings.Database.TargetSSH.Host != "production-sql.example.com" {
33+
t.Fatalf("unexpected database SSH host: %q", settings.Database.TargetSSH.Host)
34+
}
35+
if settings.Database.TargetSSH.User != "deploy" {
36+
t.Fatalf("unexpected database SSH user: %q", settings.Database.TargetSSH.User)
37+
}
38+
if settings.Database.TargetSSH.Port != 2200 {
39+
t.Fatalf("unexpected database SSH port: %d", settings.Database.TargetSSH.Port)
40+
}
41+
if settings.Files.Items == nil {
42+
t.Fatalf("expected file sync items to default to an empty slice")
43+
}
44+
}

cmd/sync-database.go

Lines changed: 120 additions & 10 deletions

0 commit comments

Comments
 (0)