Skip to content

Commit

Permalink
feat(upgrade): added meta.db existence validation
Browse files Browse the repository at this point in the history
  • Loading branch information
vlastahajek committed Sep 29, 2020
1 parent 34ba3de commit bc37576
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 1 deletion.
5 changes: 5 additions & 0 deletions cmd/influxd/upgrade/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,11 @@ func runUpgradeE(*cobra.Command, []string) error {
return err
}

metaDBPath := filepath.Join(options.source.metaDir, "meta.db")
if _, err := os.Stat(metaDBPath); err != nil {
return fmt.Errorf("1.x metadb error: %w", err)
}

log.Info("Upgrade source paths", zap.String("meta", options.source.metaDir), zap.String("data", options.source.dataDir))
log.Info("Upgrade target paths", zap.String("bolt", options.target.boltPath), zap.String("engine", options.target.enginePath))

Expand Down
69 changes: 69 additions & 0 deletions cmd/influxd/upgrade/upgrade_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package upgrade

import (
"io/ioutil"
"os"
"path/filepath"
"testing"

"github.com/docker/docker/pkg/testutil/assert"
"github.com/influxdata/influxdb/v2/bolt"
)

func TestPathValidations(t *testing.T) {
tmpdir, err := ioutil.TempDir("", "")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmpdir)

v1Dir := filepath.Join(tmpdir, "v1db")
v2Dir := filepath.Join(tmpdir, "v2db")

boltPath := filepath.Join(v2Dir, bolt.DefaultFilename)
enginePath := filepath.Join(v2Dir, "engine")

err = os.MkdirAll(filepath.Join(enginePath, "db"), 0777)
if err != nil {
t.Fatal(err)
}

largs := make([]string, 0, 9)
largs = append(largs, "--username", "my-user")
largs = append(largs, "--password", "my-password")
largs = append(largs, "--org", "my-org")
largs = append(largs, "--bucket", "my-bucket")
largs = append(largs, "--retention", "7d")
largs = append(largs, "--token", "my-token")
largs = append(largs, "--v1-dir", v1Dir)
largs = append(largs, "--bolt-path", boltPath)
largs = append(largs, "--engine-path", enginePath)
largs = append(largs, "--config-file", "")

cmd := NewCommand()
cmd.SetArgs(largs)

if err := cmd.Execute(); err == nil {
t.Fatal("Must fail")
} else {
assert.Contains(t, err.Error(), "1.x metadb error")
}

err = os.MkdirAll(filepath.Join(v1Dir, "meta"), 0777)
if err != nil {
t.Fatal(err)
}
err = ioutil.WriteFile(filepath.Join(v1Dir, "meta", "meta.db"), []byte{1}, 0777)
if err != nil {
t.Fatal(err)
}

cmd = NewCommand()
cmd.SetArgs(largs)

if err := cmd.Execute(); err == nil {
t.Fatal("Must fail")
} else {
assert.Contains(t, err.Error(), "target engine path")
}
}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ require (
github.com/davecgh/go-spew v1.1.1
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8
github.com/docker/docker v1.13.1 // indirect
github.com/docker/docker v1.13.1
github.com/dustin/go-humanize v1.0.0
github.com/editorconfig-checker/editorconfig-checker v0.0.0-20190819115812-1474bdeaf2a2
github.com/elazarl/go-bindata-assetfs v1.0.0
Expand Down

0 comments on commit bc37576

Please sign in to comment.