mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 10:06:24 +05:00
add error handling for cron AddFunc
This commit is contained in:
committed by
Dan Christian Bogos
parent
a4b2379e89
commit
ef4324fc0e
@@ -43,11 +43,10 @@ type EventExporter interface {
|
||||
func NewEventExporter(cfg *config.EventExporterCfg, cgrCfg *config.CGRConfig, filterS *engine.FilterS,
|
||||
connMngr *engine.ConnManager) (ee EventExporter, err error) {
|
||||
timezone := utils.FirstNonEmpty(cfg.Timezone, cgrCfg.GeneralCfg().DefaultTimezone)
|
||||
loc, err := time.LoadLocation(timezone)
|
||||
em, err := utils.NewExporterMetrics(cfg.MetricsResetSchedule, timezone)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("failed to initialize exporter metrics: %v", err)
|
||||
}
|
||||
em := utils.NewExporterMetrics(cfg.MetricsResetSchedule, loc)
|
||||
|
||||
switch cfg.Type {
|
||||
case utils.MetaFileCSV:
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/engine"
|
||||
@@ -40,7 +39,10 @@ func TestNewEventExporter(t *testing.T) {
|
||||
if strings.Contains(errExpect, err.Error()) {
|
||||
t.Errorf("Expected %+v but got %+v", errExpect, err)
|
||||
}
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
eeExpect, err := NewFileCSVee(cgrCfg.EEsCfg().Exporters[0], cgrCfg, filterS, em)
|
||||
if strings.Contains(errExpect, err.Error()) {
|
||||
t.Errorf("Expected %+v but got %+v", errExpect, err)
|
||||
@@ -67,8 +69,10 @@ func TestNewEventExporterCase2(t *testing.T) {
|
||||
if strings.Contains(errExpect, err.Error()) {
|
||||
t.Errorf("Expected %+v but got %+v", errExpect, err)
|
||||
}
|
||||
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
eeExpect, err := NewFileFWVee(cgrCfg.EEsCfg().Exporters[0], cgrCfg, filterS, em)
|
||||
if strings.Contains(errExpect, err.Error()) {
|
||||
t.Errorf("Expected %+v but got %+v", errExpect, err)
|
||||
@@ -93,7 +97,10 @@ func TestNewEventExporterCase3(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
eeExpect, err := NewHTTPPostEE(cgrCfg.EEsCfg().Exporters[0], cgrCfg, filterS, em)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
@@ -115,7 +122,10 @@ func TestNewEventExporterCase4(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
eeExpect, err := NewHTTPjsonMapEE(cgrCfg.EEsCfg().Exporters[0], cgrCfg, filterS, em)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
@@ -137,7 +147,10 @@ func TestNewEventExporterCase6(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
eeExpect := NewVirtualEE(cgrCfg.EEsCfg().Exporters[0], em)
|
||||
newEE := ee.(*VirtualEE)
|
||||
newEE.em.MapStorage[utils.TimeNow] = nil
|
||||
@@ -170,9 +183,9 @@ func TestNewEventExporterCase7(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
t.Fatal(err)
|
||||
}
|
||||
eeExpect, err := NewElasticEE(cgrCfg.EEsCfg().Exporters[0], em)
|
||||
if err != nil {
|
||||
@@ -200,12 +213,12 @@ func TestNewEventExporterCase8(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// Test for invalid "dc"
|
||||
func TestNewEventExporterDcCase(t *testing.T) {
|
||||
// Test for invalid "em"
|
||||
func TestNewEventExporterEmCase(t *testing.T) {
|
||||
cgrCfg := config.NewDefaultCGRConfig()
|
||||
cgrCfg.GeneralCfg().DefaultTimezone = "invalid_timezone"
|
||||
_, err := NewEventExporter(cgrCfg.EEsCfg().Exporters[0], cgrCfg, nil, nil)
|
||||
errExpect := "unknown time zone invalid_timezone"
|
||||
errExpect := "failed to initialize exporter metrics: unknown time zone invalid_timezone"
|
||||
if err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %+v \n but got %+v", errExpect, err)
|
||||
}
|
||||
|
||||
@@ -438,7 +438,10 @@ func TestOnCacheEvicted(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestUpdateEEMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.UTC)
|
||||
em, err := utils.NewExporterMetrics("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tnow := time.Now()
|
||||
ev := engine.MapEvent{
|
||||
utils.AnswerTime: tnow,
|
||||
@@ -447,7 +450,10 @@ func TestUpdateEEMetrics(t *testing.T) {
|
||||
utils.ToR: utils.MetaVoice,
|
||||
utils.Usage: time.Second,
|
||||
}
|
||||
exp := utils.NewExporterMetrics("", time.UTC)
|
||||
exp, err := utils.NewExporterMetrics("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
exp.MapStorage[utils.FirstEventATime] = tnow
|
||||
exp.MapStorage[utils.LastEventATime] = tnow
|
||||
exp.MapStorage[utils.FirstExpOrderID] = int64(1)
|
||||
|
||||
@@ -20,7 +20,6 @@ package ees
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -28,7 +27,10 @@ import (
|
||||
)
|
||||
|
||||
func TestGetMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ee := &ElasticEE{
|
||||
em: em,
|
||||
}
|
||||
@@ -59,7 +61,10 @@ func TestInitClient(t *testing.T) {
|
||||
|
||||
func TestElasticExportEventErr(t *testing.T) {
|
||||
cgrCfg := config.NewDefaultCGRConfig()
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
eEe, err := NewElasticEE(cgrCfg.EEsCfg().Exporters[0], em)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
|
||||
@@ -677,7 +677,10 @@ func TestCsvInitFileCSV(t *testing.T) {
|
||||
if err := os.MkdirAll("/tmp/TestInitFileCSV", 0666); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fCsv := &FileCSVee{
|
||||
cgrCfg: cgrCfg,
|
||||
cfg: cgrCfg.EEsCfg().Exporters[0],
|
||||
|
||||
@@ -24,7 +24,6 @@ import (
|
||||
"io"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/engine"
|
||||
@@ -32,7 +31,10 @@ import (
|
||||
)
|
||||
|
||||
func TestFileCsvGetMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fCsv := &FileCSVee{em: em}
|
||||
|
||||
if rcv := fCsv.GetMetrics(); !reflect.DeepEqual(rcv, fCsv.em) {
|
||||
@@ -179,7 +181,10 @@ func TestFileCsvExportEvent(t *testing.T) {
|
||||
filterS := engine.NewFilterS(cfg, nil, newDM)
|
||||
byteBuff := new(bytes.Buffer)
|
||||
csvNW := csv.NewWriter(byteBuff)
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fCsv := &FileCSVee{
|
||||
cfg: cfg.EEsCfg().Exporters[0],
|
||||
cgrCfg: cfg,
|
||||
|
||||
@@ -164,7 +164,10 @@ func TestFileFwvInit(t *testing.T) {
|
||||
if err := os.MkdirAll("/tmp/TestInitFileFWV", 0666); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fFwv := &FileFWVee{
|
||||
cgrCfg: cgrCfg,
|
||||
cfg: cgrCfg.EEsCfg().Exporters[0],
|
||||
|
||||
@@ -24,7 +24,6 @@ import (
|
||||
"io"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/engine"
|
||||
@@ -32,7 +31,10 @@ import (
|
||||
)
|
||||
|
||||
func TestFileFwvGetMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fFwv := &FileFWVee{em: em}
|
||||
|
||||
if rcv := fFwv.GetMetrics(); !reflect.DeepEqual(rcv, fFwv.em) {
|
||||
@@ -171,7 +173,10 @@ func TestFileFwvExportEvent(t *testing.T) {
|
||||
filterS := engine.NewFilterS(cfg, nil, newDM)
|
||||
byteBuff := new(bytes.Buffer)
|
||||
csvNW := csv.NewWriter(byteBuff)
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fFwv := &FileFWVee{
|
||||
cfg: cfg.EEsCfg().Exporters[0],
|
||||
cgrCfg: cfg,
|
||||
@@ -204,7 +209,10 @@ func TestFileFwvExportEventWriteError(t *testing.T) {
|
||||
newDM := engine.NewDataManager(newIDb, cfg.CacheCfg(), nil)
|
||||
filterS := engine.NewFilterS(cfg, nil, newDM)
|
||||
byteBuff := new(bytes.Buffer)
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fFwv := &FileFWVee{
|
||||
cfg: cfg.EEsCfg().Exporters[0],
|
||||
cgrCfg: cfg,
|
||||
|
||||
@@ -32,7 +32,10 @@ import (
|
||||
)
|
||||
|
||||
func TestHttpJsonMapGetMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
httpEE := &HTTPjsonMapEE{
|
||||
em: em,
|
||||
}
|
||||
|
||||
@@ -33,7 +33,10 @@ import (
|
||||
)
|
||||
|
||||
func TestHttpPostGetMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
httpPost := &HTTPPostEE{
|
||||
em: em,
|
||||
}
|
||||
|
||||
@@ -43,7 +43,10 @@ func TestNewNatsEE(t *testing.T) {
|
||||
}
|
||||
nodeID := "node_id1"
|
||||
connTimeout := 2 * time.Second
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
exp := new(NatsEE)
|
||||
exp.cfg = cfg
|
||||
@@ -87,7 +90,10 @@ func TestParseOpt(t *testing.T) {
|
||||
opts := &config.EventExporterOpts{}
|
||||
nodeID := "node_id1"
|
||||
connTimeout := 2 * time.Second
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
pstr, err := NewNatsEE(cfg, nodeID, connTimeout, em)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
@@ -121,7 +127,10 @@ func TestParseOptJetStream(t *testing.T) {
|
||||
}
|
||||
nodeID := "node_id1"
|
||||
connTimeout := 2 * time.Second
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
pstr, err := NewNatsEE(cfg, nodeID, connTimeout, em)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
@@ -158,7 +167,10 @@ func TestParseOptSubject(t *testing.T) {
|
||||
}}
|
||||
nodeID := "node_id1"
|
||||
connTimeout := 2 * time.Second
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
pstr, err := NewNatsEE(cfg, nodeID, connTimeout, em)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
|
||||
@@ -31,7 +31,10 @@ import (
|
||||
|
||||
func TestNewRpcEE(t *testing.T) {
|
||||
eeSCfg := config.NewDefaultCGRConfig().EEsCfg().ExporterCfg(utils.MetaDefault)
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
|
||||
|
||||
rcv, err := NewRpcEE(eeSCfg, em, connMgr)
|
||||
@@ -101,7 +104,10 @@ func TestRPCCfg(t *testing.T) {
|
||||
|
||||
func TestRPCConnect(t *testing.T) {
|
||||
eeSCfg := config.NewDefaultCGRConfig().EEsCfg().ExporterCfg(utils.MetaDefault)
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
|
||||
rpcEe, err := NewRpcEE(eeSCfg, em, connMgr)
|
||||
if err != nil {
|
||||
@@ -114,7 +120,10 @@ func TestRPCConnect(t *testing.T) {
|
||||
|
||||
func TestRPCClose(t *testing.T) {
|
||||
eeSCfg := config.NewDefaultCGRConfig().EEsCfg().ExporterCfg(utils.MetaDefault)
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
|
||||
rpcEe, err := NewRpcEE(eeSCfg, em, connMgr)
|
||||
if err != nil {
|
||||
@@ -149,7 +158,10 @@ func TestRPCGetMetrics(t *testing.T) {
|
||||
|
||||
func TestRPCPrepareMap(t *testing.T) {
|
||||
eeSCfg := config.NewDefaultCGRConfig().EEsCfg().ExporterCfg(utils.MetaDefault)
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
connMgr := engine.NewConnManager(config.NewDefaultCGRConfig(), make(map[string]chan birpc.ClientConnector))
|
||||
rpcEe, err := NewRpcEE(eeSCfg, em, connMgr)
|
||||
if err != nil {
|
||||
|
||||
@@ -22,7 +22,6 @@ import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -33,7 +32,10 @@ import (
|
||||
)
|
||||
|
||||
func TestSqlGetMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
sqlEe := &SQLEe{
|
||||
em: em,
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ package ees
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/config"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -29,7 +28,10 @@ import (
|
||||
)
|
||||
|
||||
func TestVirtualEeGetMetrics(t *testing.T) {
|
||||
em := utils.NewExporterMetrics("", time.Local)
|
||||
em, err := utils.NewExporterMetrics("", "Local")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
vEe := &VirtualEE{
|
||||
em: em,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user