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:
Quentin McGaw
2024-03-25 19:14:20 +00:00
parent 23b0320cfb
commit ecc80a5a9e
88 changed files with 1371 additions and 2621 deletions

View File

@@ -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
}

View File

@@ -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)
}
})