diff --git a/cmd/frostfs-node/config.go b/cmd/frostfs-node/config.go index bb6580a40..c0019d36a 100644 --- a/cmd/frostfs-node/config.go +++ b/cmd/frostfs-node/config.go @@ -1278,7 +1278,6 @@ func (c *cfg) reloadConfig(ctx context.Context) { // all the components are expected to support // Logger's dynamic reconfiguration approach - var components []dCmp // Logger @@ -1288,6 +1287,36 @@ func (c *cfg) reloadConfig(ctx context.Context) { return } + components := c.getComponents(ctx, logPrm) + + // Storage Engine + + var rcfg engine.ReConfiguration + for _, optsWithID := range c.shardOpts(ctx) { + rcfg.AddShard(optsWithID.configID, append(optsWithID.shOpts, shard.WithTombstoneSource(c.createTombstoneSource()))) + } + + err = c.cfgObject.cfgLocalStorage.localStorage.Reload(ctx, rcfg) + if err != nil { + c.log.Error(logs.FrostFSNodeStorageEngineConfigurationUpdate, zap.Error(err)) + return + } + + for _, component := range components { + err = component.reloadFunc() + if err != nil { + c.log.Error(logs.FrostFSNodeUpdatedConfigurationApplying, + zap.String("component", component.name), + zap.Error(err)) + } + } + + c.log.Info(logs.FrostFSNodeConfigurationHasBeenReloadedSuccessfully) +} + +func (c *cfg) getComponents(ctx context.Context, logPrm *logger.Prm) []dCmp { + var components []dCmp + components = append(components, dCmp{"logger", logPrm.Reload}) components = append(components, dCmp{"runtime", func() error { setRuntimeParameters(c) @@ -1321,29 +1350,7 @@ func (c *cfg) reloadConfig(ctx context.Context) { components = append(components, dCmp{cmp.name, func() error { return cmp.reload(ctx) }}) } - // Storage Engine - - var rcfg engine.ReConfiguration - for _, optsWithID := range c.shardOpts(ctx) { - rcfg.AddShard(optsWithID.configID, append(optsWithID.shOpts, shard.WithTombstoneSource(c.createTombstoneSource()))) - } - - err = c.cfgObject.cfgLocalStorage.localStorage.Reload(ctx, rcfg) - if err != nil { - c.log.Error(logs.FrostFSNodeStorageEngineConfigurationUpdate, zap.Error(err)) - return - } - - for _, component := range components { - err = component.reloadFunc() - if err != nil { - c.log.Error(logs.FrostFSNodeUpdatedConfigurationApplying, - zap.String("component", component.name), - zap.Error(err)) - } - } - - c.log.Info(logs.FrostFSNodeConfigurationHasBeenReloadedSuccessfully) + return components } func (c *cfg) reloadPools() error {