chore(config): upgrade to gosettings v0.4.0
- drop qdm12/govalid dependency - upgrade qdm12/ss-server to v0.6.0 - do not unset sensitive config settings (makes no sense to me)
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
"github.com/qdm12/gluetun/internal/httpserver"
|
||||
"github.com/qdm12/gosettings"
|
||||
"github.com/qdm12/gosettings/reader"
|
||||
"github.com/qdm12/gotree"
|
||||
)
|
||||
|
||||
@@ -28,9 +29,9 @@ type Settings struct {
|
||||
|
||||
func (s *Settings) SetDefaults() {
|
||||
s.Enabled = gosettings.DefaultPointer(s.Enabled, false)
|
||||
s.HTTPServer.Address = gosettings.DefaultString(s.HTTPServer.Address, "localhost:6060")
|
||||
s.HTTPServer.Address = gosettings.DefaultComparable(s.HTTPServer.Address, "localhost:6060")
|
||||
const defaultReadTimeout = 5 * time.Minute // for CPU profiling
|
||||
s.HTTPServer.ReadTimeout = gosettings.DefaultNumber(s.HTTPServer.ReadTimeout, defaultReadTimeout)
|
||||
s.HTTPServer.ReadTimeout = gosettings.DefaultComparable(s.HTTPServer.ReadTimeout, defaultReadTimeout)
|
||||
s.HTTPServer.SetDefaults()
|
||||
}
|
||||
|
||||
@@ -43,13 +44,6 @@ func (s Settings) Copy() (copied Settings) {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Settings) MergeWith(other Settings) {
|
||||
s.Enabled = gosettings.MergeWithPointer(s.Enabled, other.Enabled)
|
||||
s.BlockProfileRate = gosettings.MergeWithPointer(s.BlockProfileRate, other.BlockProfileRate)
|
||||
s.MutexProfileRate = gosettings.MergeWithPointer(s.MutexProfileRate, other.MutexProfileRate)
|
||||
s.HTTPServer.MergeWith(other.HTTPServer)
|
||||
}
|
||||
|
||||
func (s *Settings) OverrideWith(other Settings) {
|
||||
s.Enabled = gosettings.OverrideWithPointer(s.Enabled, other.Enabled)
|
||||
s.BlockProfileRate = gosettings.OverrideWithPointer(s.BlockProfileRate, other.BlockProfileRate)
|
||||
@@ -97,3 +91,24 @@ func (s Settings) ToLinesNode() (node *gotree.Node) {
|
||||
func (s Settings) String() string {
|
||||
return s.ToLinesNode().String()
|
||||
}
|
||||
|
||||
func (s *Settings) Read(r *reader.Reader) (err error) {
|
||||
s.Enabled, err = r.BoolPtr("PPROF_ENABLED")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
s.BlockProfileRate, err = r.IntPtr("PPROF_BLOCK_PROFILE_RATE")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
s.MutexProfileRate, err = r.IntPtr("PPROF_MUTEX_PROFILE_RATE")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
s.HTTPServer.Address = r.String("PPROF_HTTP_SERVER_ADDRESS")
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/httpserver"
|
||||
"github.com/qdm12/govalid/address"
|
||||
"github.com/qdm12/gosettings/validate"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@@ -108,65 +108,6 @@ func Test_Settings_Copy(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func Test_Settings_MergeWith(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
testCases := map[string]struct {
|
||||
settings Settings
|
||||
other Settings
|
||||
expected Settings
|
||||
}{
|
||||
"merge empty with empty": {},
|
||||
"merge empty with filled": {
|
||||
other: Settings{
|
||||
Enabled: boolPtr(true),
|
||||
BlockProfileRate: intPtr(1),
|
||||
MutexProfileRate: intPtr(1),
|
||||
HTTPServer: httpserver.Settings{
|
||||
Address: ":8001",
|
||||
},
|
||||
},
|
||||
expected: Settings{
|
||||
Enabled: boolPtr(true),
|
||||
BlockProfileRate: intPtr(1),
|
||||
MutexProfileRate: intPtr(1),
|
||||
HTTPServer: httpserver.Settings{
|
||||
Address: ":8001",
|
||||
},
|
||||
},
|
||||
},
|
||||
"merge filled with empty": {
|
||||
settings: Settings{
|
||||
Enabled: boolPtr(true),
|
||||
BlockProfileRate: intPtr(1),
|
||||
MutexProfileRate: intPtr(1),
|
||||
HTTPServer: httpserver.Settings{
|
||||
Address: ":8001",
|
||||
},
|
||||
},
|
||||
expected: Settings{
|
||||
Enabled: boolPtr(true),
|
||||
BlockProfileRate: intPtr(1),
|
||||
MutexProfileRate: intPtr(1),
|
||||
HTTPServer: httpserver.Settings{
|
||||
Address: ":8001",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for name, testCase := range testCases {
|
||||
testCase := testCase
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
testCase.settings.MergeWith(testCase.other)
|
||||
|
||||
assert.Equal(t, testCase.expected, testCase.settings)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_Settings_OverrideWith(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
@@ -280,10 +221,12 @@ func Test_Settings_Validate(t *testing.T) {
|
||||
settings: Settings{
|
||||
BlockProfileRate: intPtr(0),
|
||||
MutexProfileRate: intPtr(0),
|
||||
HTTPServer: httpserver.Settings{},
|
||||
HTTPServer: httpserver.Settings{
|
||||
Address: ":x",
|
||||
},
|
||||
},
|
||||
errWrapped: address.ErrValueNotValid,
|
||||
errMessage: "value is not valid: missing port in address",
|
||||
errWrapped: validate.ErrPortNotAnInteger,
|
||||
errMessage: "port value is not an integer: x",
|
||||
},
|
||||
"valid settings": {
|
||||
settings: Settings{
|
||||
@@ -309,7 +252,7 @@ func Test_Settings_Validate(t *testing.T) {
|
||||
err := testCase.settings.Validate()
|
||||
|
||||
assert.ErrorIs(t, err, testCase.errWrapped)
|
||||
if err != nil {
|
||||
if testCase.errMessage != "" {
|
||||
assert.EqualError(t, err, testCase.errMessage)
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user