diff --git a/db/boltdb.go b/db/boltdb.go index 575f588329..c33dd66a59 100644 --- a/db/boltdb.go +++ b/db/boltdb.go @@ -26,10 +26,15 @@ var ( const ( NameIdent = "peername" - FileName = "data.db" + fileName = "data.db" ) -func NewBoltDB(dbPathname string) (*BoltDB, error) { +func Pathname(dbPrefix string) string { + return dbPrefix + fileName +} + +func NewBoltDB(dbPrefix string) (*BoltDB, error) { + dbPathname := Pathname(dbPrefix) db, err := bolt.Open(dbPathname, 0660, nil) if err != nil { return nil, fmt.Errorf("[boltDB] Unable to open %s: %s", dbPathname, err) @@ -38,8 +43,9 @@ func NewBoltDB(dbPathname string) (*BoltDB, error) { return &BoltDB{db: db}, err } -func NewBoltDBReadOnly(dbPathname string) (*BoltDB, error) { +func NewBoltDBReadOnly(dbPrefix string) (*BoltDB, error) { options := bolt.Options{Timeout: time.Millisecond * 50, ReadOnly: true} + dbPathname := Pathname(dbPrefix) db, err := bolt.Open(dbPathname, 0660, &options) if err != nil { return nil, fmt.Errorf("[boltDB] Unable to open %s: %s", dbPathname, err) diff --git a/net/uuid.go b/net/uuid.go index a8552d970d..1f15b4252d 100644 --- a/net/uuid.go +++ b/net/uuid.go @@ -36,8 +36,8 @@ func getSystemUUID(hostRoot string) ([]byte, error) { return append(machineid, uuid...), nil } -func getPersistedPeerName(pathName string) (mesh.PeerName, error) { - d, err := db.NewBoltDBReadOnly(pathName) +func getPersistedPeerName(dbPrefix string) (mesh.PeerName, error) { + d, err := db.NewBoltDBReadOnly(dbPrefix) if err != nil { return mesh.UnknownPeerName, err } @@ -56,9 +56,8 @@ func getPersistedPeerName(pathName string) (mesh.PeerName, error) { func GetSystemPeerName(dbPrefix, hostRoot string) (string, error) { // Check if we have a persisted name that matches the old-style ID for this host if oldUUID, err := getOldStyleSystemUUID(); err == nil { - pathName := dbPrefix + db.FileName - if _, err := os.Stat(pathName); err == nil { - persistedPeerName, err := getPersistedPeerName(pathName) + if _, err := os.Stat(db.Pathname(dbPrefix)); err == nil { + persistedPeerName, err := getPersistedPeerName(dbPrefix) if err != nil && !os.IsNotExist(err) { return "", err } diff --git a/prog/weaver/main.go b/prog/weaver/main.go index a5871ec745..8b077da396 100644 --- a/prog/weaver/main.go +++ b/prog/weaver/main.go @@ -260,7 +260,7 @@ func main() { Log.Fatalf("--awsvpc mode is not compatible with the --password option") } - db, err := db.NewBoltDB(dbPrefix + db.FileName) + db, err := db.NewBoltDB(dbPrefix) checkFatal(err) defer db.Close()