forked from TrueCloudLab/frostfs-node
[#552] Add systemd notifications to ir service
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
This commit is contained in:
parent
ef07c1a3c9
commit
2d4c0a0f4a
3 changed files with 37 additions and 0 deletions
|
@ -7,6 +7,7 @@ import (
|
|||
"git.frostfs.info/TrueCloudLab/frostfs-node/internal/logs"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/innerring/processors/governance"
|
||||
control "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/control/ir"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/sdnotify"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/state"
|
||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||
"github.com/spf13/viper"
|
||||
|
@ -154,6 +155,7 @@ func (s *Server) ResetEpochTimer(h uint32) error {
|
|||
|
||||
func (s *Server) setHealthStatus(hs control.HealthStatus) {
|
||||
s.healthStatus.Store(int32(hs))
|
||||
s.notifySystemd(hs)
|
||||
if s.irMetrics != nil {
|
||||
s.irMetrics.SetHealth(int32(hs))
|
||||
}
|
||||
|
@ -173,3 +175,21 @@ func initPersistentStateStorage(cfg *viper.Viper) (*state.PersistentStorage, err
|
|||
|
||||
return persistStorage, nil
|
||||
}
|
||||
|
||||
func (s *Server) notifySystemd(st control.HealthStatus) {
|
||||
if !s.sdNotify {
|
||||
return
|
||||
}
|
||||
var err error
|
||||
switch st {
|
||||
case control.HealthStatus_READY:
|
||||
err = sdnotify.FlagAndStatus(sdnotify.ReadyEnabled)
|
||||
case control.HealthStatus_SHUTTING_DOWN:
|
||||
err = sdnotify.FlagAndStatus(sdnotify.StoppingEnabled)
|
||||
default:
|
||||
err = sdnotify.Status(fmt.Sprintf("%v", st))
|
||||
}
|
||||
if err != nil {
|
||||
s.log.Error(logs.FailedToReportStatusToSystemd, zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue