mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-25 17:43:38 +01:00
Make SQLite default for new installations (#1529)
* Make SQLite default for new installations * if var is not set, return empty string this allows getStoreEngineFromDatadir to detect json store files --------- Co-authored-by: Maycon Santos <mlsmaycon@gmail.com>
This commit is contained in:
parent
51f133fdc6
commit
0fbf72434e
2
.github/workflows/golang-test-darwin.yml
vendored
2
.github/workflows/golang-test-darwin.yml
vendored
@ -36,4 +36,4 @@ jobs:
|
|||||||
run: go mod tidy
|
run: go mod tidy
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: NETBIRD_STORE_ENGINE=${{ matrix.store }} go test -exec 'sudo --preserve-env=CI' -timeout 5m -p 1 ./...
|
run: NETBIRD_STORE_ENGINE=${{ matrix.store }} go test -exec 'sudo --preserve-env=CI,NETBIRD_STORE_ENGINE' -timeout 5m -p 1 ./...
|
||||||
|
2
.github/workflows/golang-test-linux.yml
vendored
2
.github/workflows/golang-test-linux.yml
vendored
@ -42,7 +42,7 @@ jobs:
|
|||||||
run: go mod tidy
|
run: go mod tidy
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: CGO_ENABLED=1 GOARCH=${{ matrix.arch }} NETBIRD_STORE_ENGINE=${{ matrix.store }} go test -exec 'sudo --preserve-env=CI' -timeout 5m -p 1 ./...
|
run: CGO_ENABLED=1 GOARCH=${{ matrix.arch }} NETBIRD_STORE_ENGINE=${{ matrix.store }} go test -exec 'sudo --preserve-env=CI,NETBIRD_STORE_ENGINE' -timeout 5m -p 1 ./...
|
||||||
|
|
||||||
test_client_on_docker:
|
test_client_on_docker:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
|
1
.github/workflows/golang-test-windows.yml
vendored
1
.github/workflows/golang-test-windows.yml
vendored
@ -44,6 +44,7 @@ jobs:
|
|||||||
|
|
||||||
- run: PsExec64 -s -w ${{ github.workspace }} C:\hostedtoolcache\windows\go\${{ steps.go.outputs.go-version }}\x64\bin\go.exe env -w GOMODCACHE=C:\Users\runneradmin\go\pkg\mod
|
- run: PsExec64 -s -w ${{ github.workspace }} C:\hostedtoolcache\windows\go\${{ steps.go.outputs.go-version }}\x64\bin\go.exe env -w GOMODCACHE=C:\Users\runneradmin\go\pkg\mod
|
||||||
- run: PsExec64 -s -w ${{ github.workspace }} C:\hostedtoolcache\windows\go\${{ steps.go.outputs.go-version }}\x64\bin\go.exe env -w GOCACHE=C:\Users\runneradmin\AppData\Local\go-build
|
- run: PsExec64 -s -w ${{ github.workspace }} C:\hostedtoolcache\windows\go\${{ steps.go.outputs.go-version }}\x64\bin\go.exe env -w GOCACHE=C:\Users\runneradmin\AppData\Local\go-build
|
||||||
|
- run: "[Environment]::SetEnvironmentVariable('NETBIRD_STORE_ENGINE', 'jsonfile', 'Machine')"
|
||||||
|
|
||||||
- name: test
|
- name: test
|
||||||
run: PsExec64 -s -w ${{ github.workspace }} cmd.exe /c "C:\hostedtoolcache\windows\go\${{ steps.go.outputs.go-version }}\x64\bin\go.exe test -timeout 5m -p 1 ./... > test-out.txt 2>&1"
|
run: PsExec64 -s -w ${{ github.workspace }} cmd.exe /c "C:\hostedtoolcache\windows\go\${{ steps.go.outputs.go-version }}\x64\bin\go.exe test -timeout 5m -p 1 ./... > test-out.txt 2>&1"
|
||||||
|
@ -485,7 +485,11 @@ func (s *SqliteStore) SaveUserLastLogin(accountID, userID string, lastLogin time
|
|||||||
|
|
||||||
// Close is noop in Sqlite
|
// Close is noop in Sqlite
|
||||||
func (s *SqliteStore) Close() error {
|
func (s *SqliteStore) Close() error {
|
||||||
return nil
|
sql, err := s.db.DB()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return sql.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetStoreEngine returns SqliteStoreEngine
|
// GetStoreEngine returns SqliteStoreEngine
|
||||||
|
@ -3,6 +3,7 @@ package server
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -50,10 +51,10 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func getStoreEngineFromEnv() StoreEngine {
|
func getStoreEngineFromEnv() StoreEngine {
|
||||||
// NETBIRD_STORE_ENGINE supposed to be used in tests. Otherwise rely on the config file.
|
// NETBIRD_STORE_ENGINE supposed to be used in tests. Otherwise, rely on the config file.
|
||||||
kind, ok := os.LookupEnv("NETBIRD_STORE_ENGINE")
|
kind, ok := os.LookupEnv("NETBIRD_STORE_ENGINE")
|
||||||
if !ok {
|
if !ok {
|
||||||
return FileStoreEngine
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
value := StoreEngine(strings.ToLower(kind))
|
value := StoreEngine(strings.ToLower(kind))
|
||||||
@ -62,13 +63,26 @@ func getStoreEngineFromEnv() StoreEngine {
|
|||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return SqliteStoreEngine
|
||||||
|
}
|
||||||
|
|
||||||
|
func getStoreEngineFromDatadir(dataDir string) StoreEngine {
|
||||||
|
storeFile := filepath.Join(dataDir, storeFileName)
|
||||||
|
if _, err := os.Stat(storeFile); err != nil {
|
||||||
|
// json file not found then use sqlite as default
|
||||||
|
return SqliteStoreEngine
|
||||||
|
}
|
||||||
return FileStoreEngine
|
return FileStoreEngine
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewStore(kind StoreEngine, dataDir string, metrics telemetry.AppMetrics) (Store, error) {
|
func NewStore(kind StoreEngine, dataDir string, metrics telemetry.AppMetrics) (Store, error) {
|
||||||
if kind == "" {
|
if kind == "" {
|
||||||
// fallback to env. Normally this only should be used from tests
|
// if store engine is not set in the config we first try to evaluate NETBIRD_STORE_ENGINE
|
||||||
kind = getStoreEngineFromEnv()
|
kind = getStoreEngineFromEnv()
|
||||||
|
if kind == "" {
|
||||||
|
// NETBIRD_STORE_ENGINE is not set we evaluate default based on dataDir
|
||||||
|
kind = getStoreEngineFromDatadir(dataDir)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
switch kind {
|
switch kind {
|
||||||
case FileStoreEngine:
|
case FileStoreEngine:
|
||||||
@ -82,15 +96,14 @@ func NewStore(kind StoreEngine, dataDir string, metrics telemetry.AppMetrics) (S
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewStoreFromJson is only used in tests
|
||||||
func NewStoreFromJson(dataDir string, metrics telemetry.AppMetrics) (Store, error) {
|
func NewStoreFromJson(dataDir string, metrics telemetry.AppMetrics) (Store, error) {
|
||||||
fstore, err := NewFileStore(dataDir, nil)
|
fstore, err := NewFileStore(dataDir, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
kind := getStoreEngineFromEnv()
|
switch kind := getStoreEngineFromEnv(); kind {
|
||||||
|
|
||||||
switch kind {
|
|
||||||
case FileStoreEngine:
|
case FileStoreEngine:
|
||||||
return fstore, nil
|
return fstore, nil
|
||||||
case SqliteStoreEngine:
|
case SqliteStoreEngine:
|
||||||
|
Loading…
Reference in New Issue
Block a user