forked from TrueCloudLab/frostfs-node
[#1770] node: Reread config files on SIGHUP
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
6fc3268ebf
commit
ab3ef7110e
2 changed files with 22 additions and 1 deletions
|
@ -154,6 +154,11 @@ func (a *applicationConfiguration) readConfig(c *config.Config) error {
|
||||||
if a._read {
|
if a._read {
|
||||||
// clear if it is rereading
|
// clear if it is rereading
|
||||||
*a = applicationConfiguration{}
|
*a = applicationConfiguration{}
|
||||||
|
|
||||||
|
err := c.Reload()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// update the status
|
// update the status
|
||||||
a._read = true
|
a._read = true
|
||||||
|
|
|
@ -17,6 +17,8 @@ import (
|
||||||
type Config struct {
|
type Config struct {
|
||||||
v *viper.Viper
|
v *viper.Viper
|
||||||
|
|
||||||
|
opts opts
|
||||||
|
|
||||||
defaultPath []string
|
defaultPath []string
|
||||||
path []string
|
path []string
|
||||||
}
|
}
|
||||||
|
@ -54,5 +56,19 @@ func New(_ Prm, opts ...Option) *Config {
|
||||||
|
|
||||||
return &Config{
|
return &Config{
|
||||||
v: v,
|
v: v,
|
||||||
|
opts: *o,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reload reads configuration path if any was provided
|
||||||
|
// to the New. Returns any
|
||||||
|
func (x *Config) Reload() error {
|
||||||
|
if x.opts.path != "" {
|
||||||
|
err := x.v.ReadInConfig()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("rereading configuration file: %w", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue