mirror of
https://github.com/openziti/zrok.git
synced 2025-06-25 20:22:45 +02:00
prevent sparklines handler crashing when no configured metrics subsystem (#905)
This commit is contained in:
parent
9c7cb65213
commit
6361a3ced3
@ -70,7 +70,7 @@ func Run(inCfg *config.Config) error {
|
||||
api.MetadataConfigurationHandler = newConfigurationHandler(cfg)
|
||||
api.MetadataClientVersionCheckHandler = metadata.ClientVersionCheckHandlerFunc(clientVersionCheckHandler)
|
||||
api.MetadataGetAccountDetailHandler = newAccountDetailHandler()
|
||||
api.MetadataGetSparklinesHandler = newSparklinesHandler()
|
||||
api.MetadataGetSparklinesHandler = newSparklinesHandler(cfg)
|
||||
if cfg.Metrics != nil && cfg.Metrics.Influx != nil {
|
||||
api.MetadataGetAccountMetricsHandler = newGetAccountMetricsHandler(cfg.Metrics.Influx)
|
||||
api.MetadataGetEnvironmentMetricsHandler = newGetEnvironmentMetricsHandler(cfg.Metrics.Influx)
|
||||
|
@ -2,6 +2,7 @@ package controller
|
||||
|
||||
import (
|
||||
"github.com/go-openapi/runtime/middleware"
|
||||
"github.com/openziti/zrok/controller/config"
|
||||
"github.com/openziti/zrok/controller/store"
|
||||
"github.com/openziti/zrok/rest_model_zrok"
|
||||
"github.com/openziti/zrok/rest_server_zrok/operations/metadata"
|
||||
@ -10,13 +11,17 @@ import (
|
||||
)
|
||||
|
||||
type sparklinesHandler struct {
|
||||
cfg *config.Config
|
||||
}
|
||||
|
||||
func newSparklinesHandler() *sparklinesHandler {
|
||||
return &sparklinesHandler{}
|
||||
func newSparklinesHandler(cfg *config.Config) *sparklinesHandler {
|
||||
return &sparklinesHandler{cfg: cfg}
|
||||
}
|
||||
|
||||
func (h *sparklinesHandler) Handle(params metadata.GetSparklinesParams, principal *rest_model_zrok.Principal) middleware.Responder {
|
||||
out := &metadata.GetSparklinesOKBody{}
|
||||
|
||||
if h.cfg.Metrics != nil && h.cfg.Metrics.Influx != nil {
|
||||
trx, err := str.Begin()
|
||||
if err != nil {
|
||||
logrus.Errorf("error beginning transaction: %v", err)
|
||||
@ -24,8 +29,6 @@ func (h *sparklinesHandler) Handle(params metadata.GetSparklinesParams, principa
|
||||
}
|
||||
defer func() { _ = trx.Rollback() }()
|
||||
|
||||
out := &metadata.GetSparklinesOKBody{}
|
||||
|
||||
if len(params.Body.Environments) > 0 {
|
||||
if envs, err := str.FindEnvironmentsForAccount(int(principal.ID), trx); err == nil {
|
||||
var selectedEnvs []*store.Environment
|
||||
@ -102,6 +105,7 @@ func (h *sparklinesHandler) Handle(params metadata.GetSparklinesParams, principa
|
||||
return metadata.NewGetSparklinesInternalServerError()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return metadata.NewGetSparklinesOK().WithPayload(out)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user