forked from TrueCloudLab/frostfs-node
[#168] node: Refactor node config
Resolve containedctx linter for cfg Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
8426d25f4b
commit
a7c79c773a
20 changed files with 93 additions and 83 deletions
|
@ -56,15 +56,17 @@ func main() {
|
|||
|
||||
c := initCfg(appCfg)
|
||||
|
||||
initApp(c)
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
initApp(ctx, c)
|
||||
|
||||
c.setHealthStatus(control.HealthStatus_STARTING)
|
||||
|
||||
bootUp(c)
|
||||
bootUp(ctx, c)
|
||||
|
||||
c.setHealthStatus(control.HealthStatus_READY)
|
||||
|
||||
wait(c)
|
||||
wait(c, cancel)
|
||||
}
|
||||
|
||||
func initAndLog(c *cfg, name string, initializer func(*cfg)) {
|
||||
|
@ -73,12 +75,10 @@ func initAndLog(c *cfg, name string, initializer func(*cfg)) {
|
|||
c.log.Info(fmt.Sprintf("%s service has been successfully initialized", name))
|
||||
}
|
||||
|
||||
func initApp(c *cfg) {
|
||||
c.ctx, c.ctxCancel = context.WithCancel(context.Background())
|
||||
|
||||
func initApp(ctx context.Context, c *cfg) {
|
||||
c.wg.Add(1)
|
||||
go func() {
|
||||
c.signalWatcher()
|
||||
c.signalWatcher(ctx)
|
||||
c.wg.Done()
|
||||
}()
|
||||
|
||||
|
@ -91,7 +91,7 @@ func initApp(c *cfg) {
|
|||
|
||||
initAndLog(c, "storage engine", func(c *cfg) {
|
||||
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Open())
|
||||
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Init())
|
||||
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Init(ctx))
|
||||
})
|
||||
|
||||
initAndLog(c, "gRPC", initGRPC)
|
||||
|
@ -105,12 +105,12 @@ func initApp(c *cfg) {
|
|||
initAndLog(c, "tree", initTreeService)
|
||||
initAndLog(c, "control", initControlService)
|
||||
|
||||
initAndLog(c, "morph notifications", listenMorphNotifications)
|
||||
initAndLog(c, "morph notifications", func(c *cfg) { listenMorphNotifications(ctx, c) })
|
||||
}
|
||||
|
||||
func runAndLog(c *cfg, name string, logSuccess bool, starter func(*cfg)) {
|
||||
func runAndLog(ctx context.Context, c *cfg, name string, logSuccess bool, starter func(context.Context, *cfg)) {
|
||||
c.log.Info(fmt.Sprintf("starting %s service...", name))
|
||||
starter(c)
|
||||
starter(ctx, c)
|
||||
|
||||
if logSuccess {
|
||||
c.log.Info(fmt.Sprintf("%s service started successfully", name))
|
||||
|
@ -130,20 +130,22 @@ func stopAndLog(c *cfg, name string, stopper func() error) {
|
|||
c.log.Debug(fmt.Sprintf("%s service has been stopped", name))
|
||||
}
|
||||
|
||||
func bootUp(c *cfg) {
|
||||
runAndLog(c, "NATS", true, connectNats)
|
||||
runAndLog(c, "gRPC", false, serveGRPC)
|
||||
runAndLog(c, "notary", true, makeAndWaitNotaryDeposit)
|
||||
func bootUp(ctx context.Context, c *cfg) {
|
||||
runAndLog(ctx, c, "NATS", true, connectNats)
|
||||
runAndLog(ctx, c, "gRPC", false, func(_ context.Context, c *cfg) { serveGRPC(c) })
|
||||
runAndLog(ctx, c, "notary", true, makeAndWaitNotaryDeposit)
|
||||
|
||||
bootstrapNode(c)
|
||||
startWorkers(c)
|
||||
startWorkers(ctx, c)
|
||||
}
|
||||
|
||||
func wait(c *cfg) {
|
||||
func wait(c *cfg, cancel func()) {
|
||||
c.log.Info("application started",
|
||||
zap.String("version", misc.Version))
|
||||
|
||||
<-c.ctx.Done() // graceful shutdown
|
||||
<-c.done // graceful shutdown
|
||||
|
||||
cancel()
|
||||
|
||||
c.log.Debug("waiting for all processes to stop")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue