grafana/pkg/server/service.go

46 lines
953 B
Go
Raw Normal View History

package server
import (
"context"
"github.com/grafana/dskit/services"
"github.com/grafana/grafana/pkg/api"
"github.com/grafana/grafana/pkg/setting"
)
type coreService struct {
*services.BasicService
cfg *setting.Cfg
opts Options
apiOpts api.ServerOptions
server *Server
}
func NewService(cfg *setting.Cfg, opts Options, apiOpts api.ServerOptions) (*coreService, error) {
s := &coreService{
opts: opts,
apiOpts: apiOpts,
cfg: cfg,
}
s.BasicService = services.NewBasicService(s.start, s.running, s.stop)
return s, nil
}
func (s *coreService) start(_ context.Context) error {
serv, err := Initialize(s.cfg, s.opts, s.apiOpts)
if err != nil {
return err
}
s.server = serv
return s.server.Init()
}
func (s *coreService) running(_ context.Context) error {
return s.server.Run()
}
func (s *coreService) stop(failureReason error) error {
return s.server.Shutdown(context.Background(), failureReason.Error())
}