mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-27 00:59:07 +02:00
[management,misc] Fix configuration migration checks
The initial migration let an empty legacy Datadir override Management defaults and pulled Viper into WASM builds through the common util package. Normalize the Management data directory, isolate template expansion from the loader dependency, and split source binding to satisfy the quality gate.
This commit is contained in:
@@ -3,11 +3,19 @@ package cmd
|
||||
import (
|
||||
nbconfig "github.com/netbirdio/netbird/management/internals/server/config"
|
||||
configloader "github.com/netbirdio/netbird/util/config"
|
||||
"github.com/netbirdio/netbird/util/envtemplate"
|
||||
)
|
||||
|
||||
func loadManagementConfig(configPath string) (*nbconfig.Config, error) {
|
||||
return configloader.Load(configPath, &nbconfig.Config{Datadir: defaultMgmtDataDir}, configloader.Options{
|
||||
cfg, err := configloader.Load(configPath, &nbconfig.Config{Datadir: defaultMgmtDataDir}, configloader.Options{
|
||||
TagName: "json",
|
||||
Transform: configloader.ExpandEnvTemplate,
|
||||
Transform: envtemplate.Expand,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if cfg.Datadir == "" {
|
||||
cfg.Datadir = defaultMgmtDataDir
|
||||
}
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
@@ -10,6 +10,15 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestLoadManagementConfigUsesDefaultDataDirForEmptyValue(t *testing.T) {
|
||||
configPath := filepath.Join(t.TempDir(), "management.json")
|
||||
require.NoError(t, os.WriteFile(configPath, []byte(`{"Datadir":""}`), 0o600))
|
||||
|
||||
cfg, err := loadManagementConfig(configPath)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, defaultMgmtDataDir, cfg.Datadir, "Empty legacy values should use the default data directory")
|
||||
}
|
||||
|
||||
func TestLoadManagementConfigSources(t *testing.T) {
|
||||
t.Setenv("MANAGEMENT_DATA_DIR", "/template-data")
|
||||
t.Setenv("MANAGEMENT_ENCRYPTION_KEY", "template-key")
|
||||
|
||||
Reference in New Issue
Block a user