diff --git a/agents/diam_it_test.go b/agents/diam_it_test.go
index f108ad660..ad1b8c3d4 100644
--- a/agents/diam_it_test.go
+++ b/agents/diam_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/agents/dnsagent_it_test.go b/agents/dnsagent_it_test.go
index ca894da16..33c9f1d61 100644
--- a/agents/dnsagent_it_test.go
+++ b/agents/dnsagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/agents/httpagent_it_test.go b/agents/httpagent_it_test.go
index ae6519622..2c957e58f 100644
--- a/agents/httpagent_it_test.go
+++ b/agents/httpagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/agents/radagent_it_test.go b/agents/radagent_it_test.go
index 03af5ed25..2dec7c329 100644
--- a/agents/radagent_it_test.go
+++ b/agents/radagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/agents/sipagent_it_test.go b/agents/sipagent_it_test.go
index 2cab1f83a..8efd2871a 100644
--- a/agents/sipagent_it_test.go
+++ b/agents/sipagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/analyzers/analyzers_it_test.go b/analyzers/analyzers_it_test.go
index 3ed296d74..66037bacc 100644
--- a/analyzers/analyzers_it_test.go
+++ b/analyzers/analyzers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/cmd/cgr-console/cgr-console_it_test.go b/cmd/cgr-console/cgr-console_it_test.go
index 315310ace..922671c1c 100644
--- a/cmd/cgr-console/cgr-console_it_test.go
+++ b/cmd/cgr-console/cgr-console_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/cmd/cgr-loader/cgr-loader_it_test.go b/cmd/cgr-loader/cgr-loader_it_test.go
index 4e8464760..1dc5f161b 100644
--- a/cmd/cgr-loader/cgr-loader_it_test.go
+++ b/cmd/cgr-loader/cgr-loader_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/cmd/cgr-loader/cgr-loader_remove_it_test.go b/cmd/cgr-loader/cgr-loader_remove_it_test.go
index 571810b57..98ba98248 100644
--- a/cmd/cgr-loader/cgr-loader_remove_it_test.go
+++ b/cmd/cgr-loader/cgr-loader_remove_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/config/config_it_test.go b/config/config_it_test.go
index e402da1e2..f67af096c 100644
--- a/config/config_it_test.go
+++ b/config/config_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/config/multifiles_it_test.go b/config/multifiles_it_test.go
index d14e2259c..bbaaf69f9 100644
--- a/config/multifiles_it_test.go
+++ b/config/multifiles_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/cores/server_it_test.go b/cores/server_it_test.go
index fea5d7d82..e2a8402f6 100644
--- a/cores/server_it_test.go
+++ b/cores/server_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/accounts_it_test.go b/dispatchers/accounts_it_test.go
index 1116fe3f4..e1c724494 100644
--- a/dispatchers/accounts_it_test.go
+++ b/dispatchers/accounts_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/actions_it_test.go b/dispatchers/actions_it_test.go
index 7504bf693..dcd7242cc 100644
--- a/dispatchers/actions_it_test.go
+++ b/dispatchers/actions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/attributes_it_test.go b/dispatchers/attributes_it_test.go
index 3f2b26261..fc1f5a4b1 100644
--- a/dispatchers/attributes_it_test.go
+++ b/dispatchers/attributes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/caches_it_test.go b/dispatchers/caches_it_test.go
index 6beb93195..43253f093 100644
--- a/dispatchers/caches_it_test.go
+++ b/dispatchers/caches_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/cdrs_it_test.go b/dispatchers/cdrs_it_test.go
index 3432b90ca..b4043a076 100644
--- a/dispatchers/cdrs_it_test.go
+++ b/dispatchers/cdrs_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/chargers_it_test.go b/dispatchers/chargers_it_test.go
index ce43d3be7..513538322 100644
--- a/dispatchers/chargers_it_test.go
+++ b/dispatchers/chargers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/config_it_test.go b/dispatchers/config_it_test.go
index e5542ecc7..0767aa6c2 100644
--- a/dispatchers/config_it_test.go
+++ b/dispatchers/config_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/dispatchers_it_test.go b/dispatchers/dispatchers_it_test.go
index c43c8762f..385fb1ccb 100644
--- a/dispatchers/dispatchers_it_test.go
+++ b/dispatchers/dispatchers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/guardian_it_test.go b/dispatchers/guardian_it_test.go
index 2220ff285..0fe6706dd 100644
--- a/dispatchers/guardian_it_test.go
+++ b/dispatchers/guardian_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/rates_it_test.go b/dispatchers/rates_it_test.go
index 48d01ae5a..17e4e0df8 100644
--- a/dispatchers/rates_it_test.go
+++ b/dispatchers/rates_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/replicator_it_test.go b/dispatchers/replicator_it_test.go
index d8ee6cf7b..464ad2d92 100644
--- a/dispatchers/replicator_it_test.go
+++ b/dispatchers/replicator_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/resources_it_test.go b/dispatchers/resources_it_test.go
index e5fe1dbbe..32a425ecc 100644
--- a/dispatchers/resources_it_test.go
+++ b/dispatchers/resources_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/routes_it_test.go b/dispatchers/routes_it_test.go
index 68916d642..db78eca37 100644
--- a/dispatchers/routes_it_test.go
+++ b/dispatchers/routes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/sessions_it_test.go b/dispatchers/sessions_it_test.go
index 482805926..054c1b259 100644
--- a/dispatchers/sessions_it_test.go
+++ b/dispatchers/sessions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/stats_it_test.go b/dispatchers/stats_it_test.go
index 9fc285e76..8148931e8 100644
--- a/dispatchers/stats_it_test.go
+++ b/dispatchers/stats_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/dispatchers/thresholds_it_test.go b/dispatchers/thresholds_it_test.go
index 5ef9faf31..877deecce 100644
--- a/dispatchers/thresholds_it_test.go
+++ b/dispatchers/thresholds_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/elastic_it_test.go b/ees/elastic_it_test.go
index cfccda1fc..393e2a7a5 100644
--- a/ees/elastic_it_test.go
+++ b/ees/elastic_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/filecsv_it_test.go b/ees/filecsv_it_test.go
index f5061ba0e..cc1a4f360 100644
--- a/ees/filecsv_it_test.go
+++ b/ees/filecsv_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/filefwv_it_test.go b/ees/filefwv_it_test.go
index 655ac87df..011c868f8 100644
--- a/ees/filefwv_it_test.go
+++ b/ees/filefwv_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/httppost_it_test.go b/ees/httppost_it_test.go
index 4e58b8468..f8e86bb4c 100644
--- a/ees/httppost_it_test.go
+++ b/ees/httppost_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/libcdre_it_test.go b/ees/libcdre_it_test.go
index 16cefc67e..68d319792 100644
--- a/ees/libcdre_it_test.go
+++ b/ees/libcdre_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/nats_it_test.go b/ees/nats_it_test.go
index 55b1ef1d3..4360abe7e 100644
--- a/ees/nats_it_test.go
+++ b/ees/nats_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/poster_it_test.go b/ees/poster_it_test.go
index dd4c10194..868ee8af4 100644
--- a/ees/poster_it_test.go
+++ b/ees/poster_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/posterjsonmap_it_test.go b/ees/posterjsonmap_it_test.go
index f47d70033..9ccc8c4d7 100644
--- a/ees/posterjsonmap_it_test.go
+++ b/ees/posterjsonmap_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/sql_it_test.go b/ees/sql_it_test.go
index e9cf8a5bc..1e01b9043 100644
--- a/ees/sql_it_test.go
+++ b/ees/sql_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ees/virtual_ee_it_test.go b/ees/virtual_ee_it_test.go
index 45491b748..97122680f 100644
--- a/ees/virtual_ee_it_test.go
+++ b/ees/virtual_ee_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/cgrsafev.go b/engine/cgrsafev.go
deleted file mode 100644
index e30a3c1e1..000000000
--- a/engine/cgrsafev.go
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOev. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-
-package engine
-
-import (
- "github.com/cgrates/cgrates/utils"
-)
-
-func NewCGRSafEventFromCGREvent(cgrEv *utils.CGREvent) *CGRSafEvent {
- return &CGRSafEvent{
- Tenant: cgrEv.Tenant,
- ID: cgrEv.ID,
- Event: NewSafEvent(cgrEv.Event),
- }
-}
-
-// CGRSafEvent is a safe CGREvent
-type CGRSafEvent struct {
- Tenant string
- ID string
- Event *SafEvent
-}
-
-func (cgrSafEv *CGRSafEvent) AsCGREvent() *utils.CGREvent {
- return &utils.CGREvent{
- Tenant: cgrSafEv.Tenant,
- ID: cgrSafEv.ID,
- Event: cgrSafEv.Event.AsMapInterface(),
- }
-}
diff --git a/engine/safevent.go b/engine/safevent.go
deleted file mode 100644
index b062e6ab6..000000000
--- a/engine/safevent.go
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-
-package engine
-
-import (
- "sync"
- "time"
-
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/utils"
-)
-
-func NewSafEvent(mp map[string]interface{}) *SafEvent {
- return &SafEvent{Me: NewMapEvent(mp)}
-}
-
-// SafEvent is a generic event which is safe to read/write from multiple goroutines
-type SafEvent struct {
- sync.RWMutex
- Me MapEvent // need it exportable so we can pass it on network
-}
-
-func (se *SafEvent) Clone() (cln *SafEvent) {
- se.RLock()
- cln = &SafEvent{Me: se.Me.Clone()}
- se.RUnlock()
- return
-}
-
-// MapEvent offers access to MapEvent methods, avoiding locks
-func (se *SafEvent) MapEvent() (mp MapEvent) {
- return se.Me
-}
-
-func (se *SafEvent) String() (out string) {
- se.RLock()
- out = se.Me.String()
- se.RUnlock()
- return
-}
-
-func (se *SafEvent) FieldAsInterface(fldPath []string) (out interface{}, err error) {
- se.RLock()
- out, err = se.Me.FieldAsInterface(fldPath)
- se.RUnlock()
- return
-}
-
-func (se *SafEvent) FieldAsString(fldPath []string) (out string, err error) {
- se.RLock()
- out, err = se.Me.FieldAsString(fldPath)
- se.RUnlock()
- return
-}
-
-func (se *SafEvent) HasField(fldName string) (has bool) {
- se.RLock()
- has = se.Me.HasField(fldName)
- se.RUnlock()
- return
-}
-
-func (se *SafEvent) Get(fldName string) (out interface{}, has bool) {
- se.RLock()
- out, has = se.Me[fldName]
- se.RUnlock()
- return
-}
-
-func (se *SafEvent) GetIgnoreErrors(fldName string) (out interface{}) {
- out, _ = se.Get(fldName)
- return
-}
-
-// Set will set a field's value
-func (se *SafEvent) Set(fldName string, val interface{}) {
- se.Lock()
- se.Me[fldName] = val
- se.Unlock()
-}
-
-// Remove will remove a field from map
-func (se *SafEvent) Remove(fldName string) {
- se.Lock()
- delete(se.Me, fldName)
- se.Unlock()
-}
-
-func (se *SafEvent) GetString(fldName string) (out string, err error) {
- se.RLock()
- out, err = se.Me.GetString(fldName)
- se.RUnlock()
- return
-}
-
-func (se *SafEvent) GetTInt64(fldName string) (out int64, err error) {
- se.RLock()
- out, err = se.Me.GetTInt64(fldName)
- se.RUnlock()
- return
-}
-
-func (se *SafEvent) GetStringIgnoreErrors(fldName string) (out string) {
- out, _ = se.GetString(fldName)
- return
-}
-
-// GetDuration returns a field as Duration
-func (se *SafEvent) GetDuration(fldName string) (d time.Duration, err error) {
- se.RLock()
- d, err = se.Me.GetDuration(fldName)
- se.RUnlock()
- return
-}
-
-// GetDurationPointer returns pointer towards duration, useful to detect presence of duration
-func (se *SafEvent) GetDurationOrDefault(fldName string, dflt time.Duration) (d time.Duration, err error) {
- _, has := se.Get(fldName)
- if !has {
- return dflt, nil
- }
- return se.GetDuration(fldName)
-}
-
-// GetDuration returns a field as Duration, ignoring errors
-func (se *SafEvent) GetDurationIgnoreErrors(fldName string) (d time.Duration) {
- d, _ = se.GetDuration(fldName)
- return
-}
-
-// GetDurationPointer returns pointer towards duration, useful to detect presence of duration
-func (se *SafEvent) GetDurationPtr(fldName string) (d *time.Duration, err error) {
- fldIface, has := se.Get(fldName)
- if !has {
- return nil, utils.ErrNotFound
- }
- var dReal time.Duration
- if dReal, err = utils.IfaceAsDuration(fldIface); err != nil {
- return
- }
- return &dReal, nil
-}
-
-// GetDurationPointer returns pointer towards duration, useful to detect presence of duration
-func (se *SafEvent) GetDurationPtrIgnoreErrors(fldName string) (d *time.Duration) {
- d, _ = se.GetDurationPtr(fldName)
- return
-}
-
-// GetDurationPointer returns pointer towards duration, useful to detect presence of duration
-func (se *SafEvent) GetDurationPtrOrDefault(fldName string, dflt *time.Duration) (d *time.Duration, err error) {
- fldIface, has := se.Get(fldName)
- if !has {
- return dflt, nil
- }
- var dReal time.Duration
- if dReal, err = utils.IfaceAsDuration(fldIface); err != nil {
- return
- }
- return &dReal, nil
-}
-
-// GetTime returns a field as Time
-func (se *SafEvent) GetTime(fldName string, tmz string) (t time.Time, err error) {
- se.RLock()
- t, err = se.Me.GetTime(fldName, tmz)
- se.RUnlock()
- return
-}
-
-// GetTimeIgnoreErrors returns a field as Time instance, ignoring errors
-func (se *SafEvent) GetTimeIgnoreErrors(fldName string, tmz string) (t time.Time) {
- t, _ = se.GetTime(fldName, tmz)
- return
-}
-
-// GetSet will attempt to get a field value
-// if field not present set it to the value received as parameter
-func (se *SafEvent) GetSetString(fldName string, setVal string) (out string, err error) {
- se.Lock()
- defer se.Unlock()
- outIface, has := se.Me[fldName]
- if !has {
- se.Me[fldName] = setVal
- out = setVal
- return
- }
- // should be present, return it as string
- return utils.IfaceAsString(outIface), nil
-}
-
-// GetMapInterface returns the map stored internally without cloning it
-func (se *SafEvent) GetMapInterface() (mp map[string]interface{}) {
- se.RLock()
- mp = se.Me
- se.RUnlock()
- return
-}
-
-// AsMapInterface returns the cloned map stored internally
-func (se *SafEvent) AsMapInterface() (mp map[string]interface{}) {
- se.RLock()
- mp = se.Me.Clone()
- se.RUnlock()
- return
-}
-
-// AsMapString returns a map[string]string out of mp, ignoring specific fields if needed
-// most used when needing to export extraFields
-func (se *SafEvent) AsMapString(ignoredFlds utils.StringSet) (mp map[string]string) {
- se.RLock()
- mp = se.Me.AsMapString(ignoredFlds)
- se.RUnlock()
- return
-}
-
-// AsCDR exports the SafEvent as CDR
-func (se *SafEvent) AsCDR(cfg *config.CGRConfig, tnt, tmz string) (cdr *CDR, err error) {
- se.RLock()
- cdr, err = se.Me.AsCDR(cfg, tnt, tmz)
- se.RUnlock()
- return
-}
-
-// AsCGREvent exports the SafEvent as CGREvent
-func (se *SafEvent) AsCGREvent(tnt string) (cgrEv *utils.CGREvent) {
- se.RLock()
- cgrEv = &utils.CGREvent{
- Tenant: tnt,
- ID: utils.UUIDSha1Prefix(),
- Event: se.Me.Data(),
- }
- se.RUnlock()
- return
-}
diff --git a/engine/safevent_test.go b/engine/safevent_test.go
deleted file mode 100644
index 209ba7f80..000000000
--- a/engine/safevent_test.go
+++ /dev/null
@@ -1,800 +0,0 @@
-/*
-Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
-Copyright (C) ITsysCOM GmbH
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see
-*/
-package engine
-
-import (
- "reflect"
- "testing"
- "time"
-
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/utils"
-)
-
-var sMap = map[string]interface{}{
- "test1": nil,
- "test2": 42,
- "test3": 42.3,
- "test4": true,
- "test5": "test",
- "test6": 10 * time.Second,
- "test7": "42s",
- "test8": time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC),
- "test9": "2009-11-10T23:00:00Z",
-}
-var safEv = &SafEvent{Me: NewMapEvent(sMap)}
-
-func TestSafEventNewSafEvent(t *testing.T) {
- if rply := NewSafEvent(sMap); !reflect.DeepEqual(safEv, rply) {
- t.Errorf("Expecting %+v, received: %+v", safEv, rply)
- }
-}
-
-func TestSafEventMapEvent(t *testing.T) {
- expected := NewMapEvent(sMap)
- if rply := safEv.MapEvent(); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventFieldAsInterface(t *testing.T) {
- data := utils.DataProvider(safEv)
- if _, err := data.FieldAsInterface([]string{"first", "second"}); err != utils.ErrNotFound {
- t.Error(err)
- }
- if _, err := data.FieldAsInterface([]string{"first"}); err != utils.ErrNotFound {
- t.Error(err)
- }
- if rply, err := data.FieldAsInterface([]string{"test1"}); err != nil {
- t.Error(err)
- } else if rply != nil {
- t.Errorf("Expecting %+v, received: %+v", nil, rply)
- }
- if rply, err := data.FieldAsInterface([]string{"test4"}); err != nil {
- t.Error(err)
- } else if expected := true; rply != expected {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventFieldAsString(t *testing.T) {
- data := utils.DataProvider(safEv)
- if _, err := data.FieldAsString([]string{"first", "second"}); err != utils.ErrNotFound {
- t.Error(err)
- }
- if _, err := data.FieldAsString([]string{"first"}); err != utils.ErrNotFound {
- t.Error(err)
- }
- if rply, err := data.FieldAsString([]string{"test1"}); err != nil {
- t.Error(err)
- } else if rply != "" {
- t.Errorf("Expecting %+v, received: %+v", "", rply)
- }
- if rply, err := data.FieldAsString([]string{"test4"}); err != nil {
- t.Error(err)
- } else if expected := "true"; rply != expected {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventClone(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("clone", func(t *testing.T) {
- t.Parallel()
- safEv.Clone()
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test4", true)
- })
- }
- rply := safEv.Clone()
- if !reflect.DeepEqual(safEv, rply) {
- t.Errorf("Expecting %+v, received: %+v", safEv, rply)
- }
- rply.Set("test4", false)
- if reflect.DeepEqual(safEv, rply) {
- t.Errorf("Expecting %+v, received: %+v", safEv, rply)
- }
-}
-
-func TestSafEventString(t *testing.T) {
- expected := safEv.Me.String()
- if rply := safEv.String(); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- se := safEv.Clone()
- for i := 0; i < 10; i++ {
- t.Run("string", func(t *testing.T) {
- t.Parallel()
- _ = se.String()
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- se.Remove("test4")
- })
- }
- se.Remove("test5")
- expected = se.Me.String()
- if rply := se.String(); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventHasField(t *testing.T) {
- if rply := safEv.HasField("test4"); !rply {
- t.Errorf("Expecting true, received: %+v", rply)
- }
- se := safEv.Clone()
- for i := 0; i < 10; i++ {
- t.Run("field", func(t *testing.T) {
- t.Parallel()
- se.HasField("test4")
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- se.Remove("test4")
- })
- }
- se.Remove("test5")
- if rply := se.HasField("test5"); rply {
- t.Errorf("Expecting false, received: %+v", rply)
- }
-}
-
-func TestSafEventGet(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("get", func(t *testing.T) {
- t.Parallel()
- safEv.Get("test4")
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test4", true)
- })
- }
- safEv.Remove("test4")
- if rply, has := safEv.Get("test4"); has {
- t.Errorf("Expecting 'test4' to not be a field, received: %+v", rply)
- }
- safEv.Set("test4", false)
- if rply, has := safEv.Get("test4"); !has {
- t.Errorf("Expecting 'test4' to be a field")
- } else if rply != false {
- t.Errorf("Expecting false, received: %+v", rply)
- }
- safEv.Set("test4", true)
- if rply, has := safEv.Get("test4"); !has {
- t.Errorf("Expecting 'test4' to be a field")
- } else if rply != true {
- t.Errorf("Expecting true, received: %+v", rply)
- }
-}
-
-func TestSafEventGetIgnoreErrors(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getIgnore", func(t *testing.T) {
- t.Parallel()
- safEv.GetIgnoreErrors("test4")
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test4", true)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test4")
- })
- }
- safEv.Remove("test4")
- if rply := safEv.GetIgnoreErrors("test4"); rply != nil {
- t.Errorf("Expecting: null, received: %+v", rply)
- }
- safEv.Set("test4", false)
- if rply := safEv.GetIgnoreErrors("test4"); rply != false {
- t.Errorf("Expecting false, received: %+v", rply)
- }
- safEv.Set("test4", true)
- if rply := safEv.GetIgnoreErrors("test4"); rply != true {
- t.Errorf("Expecting true, received: %+v", rply)
- }
-}
-
-func TestSafEventGetString(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getString", func(t *testing.T) {
- t.Parallel()
- if _, err := safEv.GetString("test4"); err != nil && err != utils.ErrNotFound {
- t.Error(err)
- }
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test4", true)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test4")
- })
- }
- safEv.Remove("test2")
- if _, err := safEv.GetString("test2"); err != utils.ErrNotFound {
- t.Errorf("Expecting: %+v ,received: %+v", utils.ErrNotFound, err)
- }
- safEv.Set("test2", 42.3)
- if rply, err := safEv.GetString("test2"); err != nil {
- t.Error(err)
- } else if rply != "42.3" {
- t.Errorf("Expecting 42.3, received: %+v", rply)
- }
- safEv.Set("test2", 42)
- if rply, err := safEv.GetString("test2"); err != nil {
- t.Error(err)
- } else if rply != "42" {
- t.Errorf("Expecting 42, received: %+v", rply)
- }
-}
-
-func TestSafEventGetStringIgnoreErrors(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getStringIgn", func(t *testing.T) {
- t.Parallel()
- safEv.GetStringIgnoreErrors("test4")
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test4", true)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test4")
- })
- }
- safEv.Remove("test2")
- if rply := safEv.GetStringIgnoreErrors("test2"); rply != "" {
- t.Errorf("Expecting: ,received: %+v", err)
- }
- safEv.Set("test2", 42.3)
- if rply := safEv.GetStringIgnoreErrors("test2"); rply != "42.3" {
- t.Errorf("Expecting 42.3, received: %+v", rply)
- }
- safEv.Set("test2", 42)
- if rply := safEv.GetStringIgnoreErrors("test2"); rply != "42" {
- t.Errorf("Expecting 42, received: %+v", rply)
- }
-}
-
-func TestSafEventGetDuration(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getDuration", func(t *testing.T) {
- t.Parallel()
- if _, err := safEv.GetDuration("test6"); err != nil && err != utils.ErrNotFound {
- t.Error(err)
- }
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test6", 10*time.Second)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test6")
- })
- }
- safEv.Remove("test7")
- if _, err := safEv.GetDuration("test7"); err != utils.ErrNotFound {
- t.Errorf("Expecting: %+v ,received: %+v", utils.ErrNotFound, err)
- }
- if rply, err := safEv.GetDuration("test5"); err == nil {
- t.Errorf("Expecting: error,received: %+v", rply)
- }
- safEv.Set("test7", "42s")
- expected := 42 * time.Second
- if rply, err := safEv.GetDuration("test7"); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- expected = 10 * time.Second
- safEv.Set("test6", expected)
- if rply, err := safEv.GetDuration("test6"); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetDurationIgnoreErrors(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getDurationIgn", func(t *testing.T) {
- t.Parallel()
- safEv.GetDurationIgnoreErrors("test6")
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test6", 10*time.Second)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test6")
- })
- }
- safEv.Remove("test7")
- if rply := safEv.GetDurationIgnoreErrors("test7"); rply != 0 {
- t.Errorf("Expecting: %+v ,received: %+v", 0, rply)
- }
- safEv.Set("test7", "42s")
- expected := 42 * time.Second
- if rply := safEv.GetDurationIgnoreErrors("test7"); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- expected = 10 * time.Second
- safEv.Set("test6", expected)
- if rply := safEv.GetDurationIgnoreErrors("test6"); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetDurationPtr(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getDurationPtr", func(t *testing.T) {
- t.Parallel()
- if _, err := safEv.GetDurationPtr("test6"); err != nil && err != utils.ErrNotFound {
- t.Error(err)
- }
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test6", 10*time.Second)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test6")
- })
- }
- safEv.Remove("test7")
- if _, err := safEv.GetDurationPtr("test7"); err != utils.ErrNotFound {
- t.Errorf("Expecting: %+v ,received: %+v", utils.ErrNotFound, err)
- }
- if rply, err := safEv.GetDurationPtr("test5"); err == nil {
- t.Errorf("Expecting: error,received: %+v", rply)
- }
- safEv.Set("test7", "42s")
- expected := 42 * time.Second
- if rply, err := safEv.GetDurationPtr("test7"); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(&expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- expected = 10 * time.Second
- safEv.Set("test6", expected)
- if rply, err := safEv.GetDurationPtr("test6"); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(&expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetDurationPtrOrDefault(t *testing.T) {
- def := 450 * time.Nanosecond
- for i := 0; i < 10; i++ {
- t.Run("getDurationPtrDef", func(t *testing.T) {
- t.Parallel()
- if _, err := safEv.GetDurationPtrOrDefault("test6", &def); err != nil {
- t.Error(err)
- }
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test6", 10*time.Second)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test6")
- })
- }
- safEv.Remove("test7")
- if rply, err := safEv.GetDurationPtrOrDefault("test7", &def); err != nil {
- t.Errorf("Expecting: %+v ,received: %+v", utils.ErrNotFound, err)
- } else if !reflect.DeepEqual(&def, rply) {
- t.Errorf("Expecting %+v, received: %+v", def, rply)
- }
- if rply, err := safEv.GetDurationPtrOrDefault("test5", &def); err == nil {
- t.Errorf("Expecting: error,received: %+v", rply)
- }
- safEv.Set("test7", "42s")
- expected := 42 * time.Second
- if rply, err := safEv.GetDurationPtrOrDefault("test7", &def); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(&expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- expected = 10 * time.Second
- safEv.Set("test6", expected)
- if rply, err := safEv.GetDurationPtrOrDefault("test6", &def); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(&expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetTime(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getTime", func(t *testing.T) {
- t.Parallel()
- if _, err := safEv.GetTime("test8", ""); err != nil && err != utils.ErrNotFound {
- t.Error(err)
- }
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test8", time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC))
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test8")
- })
- }
- safEv.Remove("test9")
- if _, err := safEv.GetTime("test9", ""); err != utils.ErrNotFound {
- t.Errorf("Expecting: %+v ,received: %+v", utils.ErrNotFound, err)
- }
- if rply, err := safEv.GetTime("test5", ""); err == nil {
- t.Errorf("Expecting: error,received: %+v", rply)
- }
- safEv.Set("test9", "2010-11-10T23:00:00Z")
- expected := time.Date(2010, 11, 10, 23, 0, 0, 0, time.UTC)
- if rply, err := safEv.GetTime("test9", ""); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- expected = time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC)
- safEv.Set("test8", expected)
- if rply, err := safEv.GetTime("test8", ""); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetTimeIgnoreErrors(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getTimeIgn", func(t *testing.T) {
- t.Parallel()
- safEv.GetTimeIgnoreErrors("test8", "")
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test8", time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC))
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test8")
- })
- }
- safEv.Remove("test9")
- if rply := safEv.GetTimeIgnoreErrors("test9", ""); !rply.IsZero() {
- t.Errorf("Expecting January 1, year 1, 00:00:00.000000000 UTC, received: %+v", rply)
- }
- if rply := safEv.GetTimeIgnoreErrors("test5", ""); !rply.IsZero() {
- t.Errorf("Expecting January 1, year 1, 00:00:00.000000000 UTC, received: %+v", rply)
- }
- safEv.Set("test9", "2010-11-10T23:00:00Z")
- expected := time.Date(2010, 11, 10, 23, 0, 0, 0, time.UTC)
- if rply := safEv.GetTimeIgnoreErrors("test9", ""); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- expected = time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC)
- safEv.Set("test8", expected)
- if rply := safEv.GetTimeIgnoreErrors("test8", ""); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetSetString(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getSetString", func(t *testing.T) {
- t.Parallel()
- safEv.GetSetString("test4", "true")
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test4")
- })
- }
- safEv.Remove("test2")
- expected := "test2"
- if rply, err := safEv.GetSetString("test2", expected); err != nil {
- t.Error(err)
- } else if rply != expected {
- t.Errorf("Expecting: %+v ,received: %+v", expected, rply)
- }
- safEv.Set("test2", 42.3)
- if rply, err := safEv.GetSetString("test2", ""); err != nil {
- t.Error(err)
- } else if rply != "42.3" {
- t.Errorf("Expecting 42.3, received: %+v", rply)
- }
- safEv.Set("test2", 42)
- if rply, err := safEv.GetSetString("test2", "test"); err != nil {
- t.Error(err)
- } else if rply != "42" {
- t.Errorf("Expecting 42, received: %+v", rply)
- }
-}
-
-func TestSafEventGetMapInterface(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("getMapInt", func(t *testing.T) {
- t.Parallel()
- safEv.GetMapInterface()
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test8", time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC))
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test8")
- })
- }
- safEv.Remove("test8")
- if rply := safEv.GetMapInterface(); !reflect.DeepEqual(sMap, rply) {
- t.Errorf("Expecting %+v, received: %+v", sMap, rply)
- }
- safEv.Set("test8", time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC))
- if rply := safEv.GetMapInterface(); !reflect.DeepEqual(sMap, rply) {
- t.Errorf("Expecting %+v, received: %+v", sMap, rply)
- }
-}
-
-func TestSafEventAsMapInterface(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("asMapInt", func(t *testing.T) {
- t.Parallel()
- safEv.AsMapInterface()
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test8", time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC))
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test8")
- })
- }
- safEv.Set("test8", time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC))
- rply := safEv.AsMapInterface()
- if !reflect.DeepEqual(sMap, rply) {
- t.Errorf("Expecting %+v, received: %+v", sMap, rply)
- }
- safEv.Remove("test8")
- if reflect.DeepEqual(sMap, rply) {
- t.Errorf("Expecting not be %+v, received: %+v", sMap, rply)
- }
- safEv.Set("test8", time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC))
-}
-
-func TestSafEventAsMapString(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("asMapStr", func(t *testing.T) {
- t.Parallel()
- safEv.AsMapString(nil)
- })
- t.Run("set", func(t *testing.T) {
- t.Parallel()
- safEv.Set("test9", true)
- })
- t.Run("remove", func(t *testing.T) {
- t.Parallel()
- safEv.Remove("test9")
- })
- }
- expected := safEv.Me.AsMapString(nil)
- if rply := safEv.AsMapString(nil); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- delete(expected, "test1")
- if rply := safEv.AsMapString(utils.NewStringSet([]string{"test1"})); !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventAsCDR(t *testing.T) {
- se := SafEvent{Me: NewMapEvent(nil)}
- expected := &CDR{Cost: -1.0, ExtraFields: make(map[string]string)}
- if rply, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- cfg := config.NewDefaultCGRConfig()
- if err != nil {
- t.Errorf("Error: %+v", err)
- }
- expected = &CDR{
- CGRID: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- Cost: -1.0,
- RunID: utils.MetaDefault,
- ToR: utils.MetaVoice,
- RequestType: cfg.GeneralCfg().DefaultReqType,
- Tenant: cfg.GeneralCfg().DefaultTenant,
- Category: cfg.GeneralCfg().DefaultCategory,
- ExtraFields: make(map[string]string),
- }
- if rply, err := se.AsCDR(cfg, utils.EmptyString, utils.EmptyString); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- se = SafEvent{Me: MapEvent{"SetupTime": "clearly not time string"}}
- if _, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err == nil {
- t.Errorf("Expecting not null error, received: null error")
- }
- se = SafEvent{Me: MapEvent{"AnswerTime": "clearly not time string"}}
- if _, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err == nil {
- t.Errorf("Expecting not null error, received: null error")
- }
- se = SafEvent{Me: MapEvent{"Usage": "clearly not duration string"}}
- if _, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err == nil {
- t.Errorf("Expecting not null error, received: null error")
- }
- se = SafEvent{Me: MapEvent{"Partial": "clearly not bool string"}}
- if _, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err == nil {
- t.Errorf("Expecting not null error, received: null error")
- }
- se = SafEvent{Me: MapEvent{"PreRated": "clearly not bool string"}}
- if _, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err == nil {
- t.Errorf("Expecting not null error, received: null error")
- }
- se = SafEvent{Me: MapEvent{"Cost": "clearly not float64 string"}}
- if _, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err == nil {
- t.Errorf("Expecting not null error, received: null error")
- }
- se = SafEvent{Me: MapEvent{"ExtraField1": 5, "ExtraField2": "extra"}}
- expected = &CDR{
- Cost: -1.0,
- ExtraFields: map[string]string{
- "ExtraField1": "5",
- "ExtraField2": "extra",
- }}
- if rply, err := se.AsCDR(nil, utils.EmptyString, utils.EmptyString); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- se = SafEvent{Me: MapEvent{
- "ExtraField1": 5,
- "Source": 1001,
- "CostSource": "1002",
- "ExtraField2": "extra",
- }}
- expected = &CDR{
- CGRID: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- Cost: -1.0,
- Source: "1001",
- CostSource: "1002",
- ExtraFields: map[string]string{
- "ExtraField1": "5",
- "ExtraField2": "extra",
- },
- RunID: utils.MetaDefault,
- ToR: utils.MetaVoice,
- RequestType: cfg.GeneralCfg().DefaultReqType,
- Tenant: cfg.GeneralCfg().DefaultTenant,
- Category: cfg.GeneralCfg().DefaultCategory,
- }
- if rply, err := se.AsCDR(cfg, utils.EmptyString, utils.EmptyString); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- se = SafEvent{Me: MapEvent{
- "ExtraField1": 5,
- "Source": 1001,
- "CostSource": "1002",
- "ExtraField2": "extra",
- "SetupTime": "2009-11-10T23:00:00Z",
- "Usage": "42s",
- "PreRated": "True",
- "Cost": "42.3",
- }}
- expected = &CDR{
- CGRID: "da39a3ee5e6b4b0d3255bfef95601890afd80709",
- Tenant: "itsyscom.com",
- Cost: 42.3,
- Source: "1001",
- CostSource: "1002",
- PreRated: true,
- Usage: 42 * time.Second,
- SetupTime: time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC),
- ExtraFields: map[string]string{
- "ExtraField1": "5",
- "ExtraField2": "extra",
- },
- RunID: utils.MetaDefault,
- ToR: utils.MetaVoice,
- RequestType: cfg.GeneralCfg().DefaultReqType,
- Category: cfg.GeneralCfg().DefaultCategory,
- }
- if rply, err := se.AsCDR(cfg, "itsyscom.com", utils.EmptyString); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetTInt64(t *testing.T) {
- if rply, err := safEv.GetTInt64("test2"); err != nil {
- t.Error(err)
- } else if rply != int64(42) {
- t.Errorf("Expecting %+v, received: %+v", int64(42), rply)
- }
-
- if rply, err := safEv.GetTInt64("test3"); err != nil {
- t.Error(err)
- } else if rply != int64(42) {
- t.Errorf("Expecting %+v, received: %+v", int64(42), rply)
- }
-
- if rply, err := safEv.GetTInt64("test4"); err == nil {
- t.Errorf("Expecting error, received: %+v with error %v", rply, err)
- }
-
- if rply, err := safEv.GetTInt64("0test"); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Expecting error: %v, received: %+v with error %v", utils.ErrNotFound, rply, err)
- }
-}
-
-func TestSafEventGetDurationPtrIgnoreErrors(t *testing.T) {
- safEv = &SafEvent{Me: NewMapEvent(sMap)}
- if rply := safEv.GetDurationPtrIgnoreErrors("test"); rply != nil {
- t.Errorf("Expected: %+v, received: %+v", nil, rply)
- }
- // expected := utils.DurationPointer(10*Second)
- // if rply := safEv.GetDurationPtrIgnoreErrors("test6"); rply == nil || *rply != *expected {
- // t.Errorf("Expected: %+v, received: %+v", expected, rply)
- // }
- expected := utils.DurationPointer(42 * time.Second)
- if rply := safEv.GetDurationPtrIgnoreErrors("test7"); rply == nil || *rply != *expected {
- t.Errorf("Expected: %+v, received: %+v", expected, rply)
- }
- expected = utils.DurationPointer(42)
- if rply := safEv.GetDurationPtrIgnoreErrors("test2"); rply == nil || *rply != *expected {
- t.Errorf("Expected: %+v, received: %+v", expected, rply)
- }
-}
-
-func TestSafEventGetDurationOrDefault(t *testing.T) {
- safEv.Remove("test7")
- expected := 10 * time.Second
- if rply, err := safEv.GetDurationOrDefault("test7", 10*time.Second); err != nil {
- t.Error(err)
- } else if rply != expected {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
- safEv.Set("test7", "42s")
- expected = 42 * time.Second
- if rply, err := safEv.GetDurationOrDefault("test7", time.Second); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expected, rply) {
- t.Errorf("Expecting %+v, received: %+v", expected, rply)
- }
-
-}
diff --git a/engine/z_actions2_it_test.go b/engine/z_actions2_it_test.go
index f83de83f0..32ec26703 100644
--- a/engine/z_actions2_it_test.go
+++ b/engine/z_actions2_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_actions_it_test.go b/engine/z_actions_it_test.go
index 67cbc46da..ac0e905d4 100644
--- a/engine/z_actions_it_test.go
+++ b/engine/z_actions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_datamanager_it_test.go b/engine/z_datamanager_it_test.go
index de181dd57..8e32a48c4 100644
--- a/engine/z_datamanager_it_test.go
+++ b/engine/z_datamanager_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_filterindexer_it_test.go b/engine/z_filterindexer_it_test.go
index f229a3795..f6cc527e3 100644
--- a/engine/z_filterindexer_it_test.go
+++ b/engine/z_filterindexer_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_loader_it_test.go b/engine/z_loader_it_test.go
index 1edbdf60d..2c3cf514b 100644
--- a/engine/z_loader_it_test.go
+++ b/engine/z_loader_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_onstor_it_test.go b/engine/z_onstor_it_test.go
index cfcf9002c..ee5b4d963 100644
--- a/engine/z_onstor_it_test.go
+++ b/engine/z_onstor_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_storage_cdrs_it_test.go b/engine/z_storage_cdrs_it_test.go
index 5f42de50e..00c0284d4 100644
--- a/engine/z_storage_cdrs_it_test.go
+++ b/engine/z_storage_cdrs_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_stordb_it_test.go b/engine/z_stordb_it_test.go
index e6448bcbe..efc1b2c19 100644
--- a/engine/z_stordb_it_test.go
+++ b/engine/z_stordb_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/engine/z_versions_it_test.go b/engine/z_versions_it_test.go
index 9ee492773..6fb0f2245 100644
--- a/engine/z_versions_it_test.go
+++ b/engine/z_versions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/amqp_it_test.go b/ers/amqp_it_test.go
index c84fc0118..4449d2b3f 100644
--- a/ers/amqp_it_test.go
+++ b/ers/amqp_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/amqpv1_it_test.go b/ers/amqpv1_it_test.go
index cef1f2697..d3bae4360 100644
--- a/ers/amqpv1_it_test.go
+++ b/ers/amqpv1_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/ers_it_test.go b/ers/ers_it_test.go
index 14381ba68..3f2881a84 100644
--- a/ers/ers_it_test.go
+++ b/ers/ers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/ers_reload_it_test.go b/ers/ers_reload_it_test.go
index e9360e921..bb2fa8b83 100644
--- a/ers/ers_reload_it_test.go
+++ b/ers/ers_reload_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/filecsv_it_test.go b/ers/filecsv_it_test.go
index ea08571f9..12dabfa7d 100644
--- a/ers/filecsv_it_test.go
+++ b/ers/filecsv_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/filefwv_it_test.go b/ers/filefwv_it_test.go
index 4a7066fde..d7dd550cd 100644
--- a/ers/filefwv_it_test.go
+++ b/ers/filefwv_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/filejson_it_test.go b/ers/filejson_it_test.go
index ff3c364ac..dfc7f0516 100644
--- a/ers/filejson_it_test.go
+++ b/ers/filejson_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/filexml_it_test.go b/ers/filexml_it_test.go
index 2114f8c56..a4b0c3b49 100644
--- a/ers/filexml_it_test.go
+++ b/ers/filexml_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/flatstore_it_test.go b/ers/flatstore_it_test.go
index d9e05098a..e9955db60 100644
--- a/ers/flatstore_it_test.go
+++ b/ers/flatstore_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/kafka_it_test.go b/ers/kafka_it_test.go
index 796d0ac3b..9ca50332b 100644
--- a/ers/kafka_it_test.go
+++ b/ers/kafka_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/nats_it_test.go b/ers/nats_it_test.go
index d41ab4845..26fc5d24d 100644
--- a/ers/nats_it_test.go
+++ b/ers/nats_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/partial_csv_it_test.go b/ers/partial_csv_it_test.go
index 81e99196f..3e74c7cb8 100644
--- a/ers/partial_csv_it_test.go
+++ b/ers/partial_csv_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/s3_it_test.go b/ers/s3_it_test.go
index 6d1a10328..34b3913fe 100644
--- a/ers/s3_it_test.go
+++ b/ers/s3_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/sql_it_test.go b/ers/sql_it_test.go
index aafacaf60..0cca7004e 100644
--- a/ers/sql_it_test.go
+++ b/ers/sql_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/ers/sqs_it_test.go b/ers/sqs_it_test.go
index 647f532c3..2938d2222 100644
--- a/ers/sqs_it_test.go
+++ b/ers/sqs_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/a1_it_test.go b/general_tests/a1_it_test.go
index 6a0652bb0..920cfc717 100644
--- a/general_tests/a1_it_test.go
+++ b/general_tests/a1_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/accountactions_it_test.go b/general_tests/accountactions_it_test.go
index 5354c8257..3324f5e8f 100644
--- a/general_tests/accountactions_it_test.go
+++ b/general_tests/accountactions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/accounts_it_test.go b/general_tests/accounts_it_test.go
index 187aff13e..4488fefc2 100644
--- a/general_tests/accounts_it_test.go
+++ b/general_tests/accounts_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/all_cfg_rld_it_test.go b/general_tests/all_cfg_rld_it_test.go
index 9ca5869f1..5be81fb5c 100644
--- a/general_tests/all_cfg_rld_it_test.go
+++ b/general_tests/all_cfg_rld_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/all_sections_cfg_rld_it_test.go b/general_tests/all_sections_cfg_rld_it_test.go
index 9e0c3adb6..430f55d95 100644
--- a/general_tests/all_sections_cfg_rld_it_test.go
+++ b/general_tests/all_sections_cfg_rld_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/attributes_filters_index_it_test.go b/general_tests/attributes_filters_index_it_test.go
index f6fdcc310..15b6ad78c 100644
--- a/general_tests/attributes_filters_index_it_test.go
+++ b/general_tests/attributes_filters_index_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/attributes_it_test.go b/general_tests/attributes_it_test.go
index 7a1065ffc..78383cedd 100644
--- a/general_tests/attributes_it_test.go
+++ b/general_tests/attributes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/broadcast_client_it_test.go b/general_tests/broadcast_client_it_test.go
index 4dbbff87f..821e60572 100644
--- a/general_tests/broadcast_client_it_test.go
+++ b/general_tests/broadcast_client_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cacherpl_it_test.go b/general_tests/cacherpl_it_test.go
index 941c51490..0549fcd1a 100644
--- a/general_tests/cacherpl_it_test.go
+++ b/general_tests/cacherpl_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cdrs_exp_it_test.go b/general_tests/cdrs_exp_it_test.go
index f3550c382..71500c8e8 100644
--- a/general_tests/cdrs_exp_it_test.go
+++ b/general_tests/cdrs_exp_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cdrs_internal_it_test.go b/general_tests/cdrs_internal_it_test.go
index 1745772ec..35ed37acd 100644
--- a/general_tests/cdrs_internal_it_test.go
+++ b/general_tests/cdrs_internal_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cdrs_it_test.go b/general_tests/cdrs_it_test.go
index d397fa332..53a9c7a63 100644
--- a/general_tests/cdrs_it_test.go
+++ b/general_tests/cdrs_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cdrs_onlexp_it_test.go b/general_tests/cdrs_onlexp_it_test.go
index 504fc2d99..002f1e6e5 100644
--- a/general_tests/cdrs_onlexp_it_test.go
+++ b/general_tests/cdrs_onlexp_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cdrs_post_failover_it_test.go b/general_tests/cdrs_post_failover_it_test.go
index 159664564..8bba19a72 100644
--- a/general_tests/cdrs_post_failover_it_test.go
+++ b/general_tests/cdrs_post_failover_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cdrs_processevent_it_test.go b/general_tests/cdrs_processevent_it_test.go
index f1a3fa973..172446d32 100644
--- a/general_tests/cdrs_processevent_it_test.go
+++ b/general_tests/cdrs_processevent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/cgrloader_it_test.go b/general_tests/cgrloader_it_test.go
index 867208e23..0d493467c 100644
--- a/general_tests/cgrloader_it_test.go
+++ b/general_tests/cgrloader_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/data_it_test.go b/general_tests/data_it_test.go
index 99472b7be..aa172e6cf 100644
--- a/general_tests/data_it_test.go
+++ b/general_tests/data_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/doubleremove_it_test.go b/general_tests/doubleremove_it_test.go
index a76ba3d7a..ee26347a5 100644
--- a/general_tests/doubleremove_it_test.go
+++ b/general_tests/doubleremove_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/export_it_test.go b/general_tests/export_it_test.go
index 854751d60..b9328bfe2 100644
--- a/general_tests/export_it_test.go
+++ b/general_tests/export_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/filter_update_it_test.go b/general_tests/filter_update_it_test.go
index 2ae64ece8..398462839 100644
--- a/general_tests/filter_update_it_test.go
+++ b/general_tests/filter_update_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/filtered_replication_it_test.go b/general_tests/filtered_replication_it_test.go
index 95083fccd..a89f66e2c 100644
--- a/general_tests/filtered_replication_it_test.go
+++ b/general_tests/filtered_replication_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/filters_it_test.go b/general_tests/filters_it_test.go
index 752f86a75..ce0fb1122 100644
--- a/general_tests/filters_it_test.go
+++ b/general_tests/filters_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/gocs_it_test.go b/general_tests/gocs_it_test.go
index b70539544..7c40e1145 100644
--- a/general_tests/gocs_it_test.go
+++ b/general_tests/gocs_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/oldtutorial_it_test.go b/general_tests/oldtutorial_it_test.go
index 197e8c9c8..aa0e53880 100644
--- a/general_tests/oldtutorial_it_test.go
+++ b/general_tests/oldtutorial_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
// /*
diff --git a/general_tests/poster_it_test.go b/general_tests/poster_it_test.go
index f77316e30..2ee14b56e 100644
--- a/general_tests/poster_it_test.go
+++ b/general_tests/poster_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/redis_cluster_it_test.go b/general_tests/redis_cluster_it_test.go
index f590f8d25..39065f2ef 100644
--- a/general_tests/redis_cluster_it_test.go
+++ b/general_tests/redis_cluster_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/redis_tls_it_test.go b/general_tests/redis_tls_it_test.go
index 4aabc9edf..909cecbab 100644
--- a/general_tests/redis_tls_it_test.go
+++ b/general_tests/redis_tls_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/resourcesv1_it_test.go b/general_tests/resourcesv1_it_test.go
index de828dc6c..f01b94073 100644
--- a/general_tests/resourcesv1_it_test.go
+++ b/general_tests/resourcesv1_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/route_it_test.go b/general_tests/route_it_test.go
index eea330f23..55e827908 100644
--- a/general_tests/route_it_test.go
+++ b/general_tests/route_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/rpccaching_it_test.go b/general_tests/rpccaching_it_test.go
index 15c5d8175..292f7eeb4 100644
--- a/general_tests/rpccaching_it_test.go
+++ b/general_tests/rpccaching_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/rpcclient_it_test.go b/general_tests/rpcclient_it_test.go
index dba18c9e4..718f08c4e 100644
--- a/general_tests/rpcclient_it_test.go
+++ b/general_tests/rpcclient_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/sentinel_it_test.go b/general_tests/sentinel_it_test.go
index 27e26e799..5bd369a2c 100644
--- a/general_tests/sentinel_it_test.go
+++ b/general_tests/sentinel_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/session2_it_test.go b/general_tests/session2_it_test.go
index e6086fe5f..e40807646 100644
--- a/general_tests/session2_it_test.go
+++ b/general_tests/session2_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/session3_it_test.go b/general_tests/session3_it_test.go
index c8d8a5490..852d8710a 100644
--- a/general_tests/session3_it_test.go
+++ b/general_tests/session3_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/session4_it_test.go b/general_tests/session4_it_test.go
index 25b764069..a2e6b8223 100644
--- a/general_tests/session4_it_test.go
+++ b/general_tests/session4_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/session_graceful_shutdown_it_test.go b/general_tests/session_graceful_shutdown_it_test.go
index 756762333..b32536e54 100644
--- a/general_tests/session_graceful_shutdown_it_test.go
+++ b/general_tests/session_graceful_shutdown_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/session_it_test.go b/general_tests/session_it_test.go
index 657eb8f71..e4b12f49b 100644
--- a/general_tests/session_it_test.go
+++ b/general_tests/session_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/session_nonereq_it_test.go b/general_tests/session_nonereq_it_test.go
index 4ab284147..9ea644ba7 100644
--- a/general_tests/session_nonereq_it_test.go
+++ b/general_tests/session_nonereq_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
@@ -141,7 +142,7 @@ func testSesNoneReqTypeItInit(t *testing.T) {
utils.Usage: 10 * time.Second,
},
APIOpts: map[string]interface{}{
- utils.OptsDebitInterval: "0s",
+ utils.OptsSessionsDebitInterval: "0s",
},
},
}
diff --git a/general_tests/session_replications_automaticdebit_it_test.go b/general_tests/session_replications_automaticdebit_it_test.go
index 19009f488..e141b080b 100644
--- a/general_tests/session_replications_automaticdebit_it_test.go
+++ b/general_tests/session_replications_automaticdebit_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/sessionpause_it_test.go b/general_tests/sessionpause_it_test.go
index 984aee8f8..f114d485e 100644
--- a/general_tests/sessionpause_it_test.go
+++ b/general_tests/sessionpause_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
@@ -136,8 +137,8 @@ func testSesPauseItInitSession(t *testing.T, cgrID string, chargeable bool, usag
utils.Usage: usage,
},
APIOpts: map[string]interface{}{
- utils.OptsDebitInterval: "0s",
- utils.OptsChargeable: chargeable,
+ utils.OptsSessionsDebitInterval: "0s",
+ utils.OptsSessionsChargeable: chargeable,
},
},
}
@@ -170,7 +171,7 @@ func testSesPauseItUpdateSession(t *testing.T, cgrID string, chargeable bool, us
utils.Usage: usage,
},
APIOpts: map[string]interface{}{
- utils.OptsChargeable: chargeable,
+ utils.OptsSessionsChargeable: chargeable,
},
},
}
@@ -203,7 +204,7 @@ func testSesPauseItTerminateSession(t *testing.T, cgrID string, chargeable bool,
utils.Usage: usage,
},
APIOpts: map[string]interface{}{
- utils.OptsChargeable: chargeable,
+ utils.OptsSessionsChargeable: chargeable,
},
},
}
diff --git a/general_tests/sessionrefund_it_test.go b/general_tests/sessionrefund_it_test.go
index 8f97696ec..0a33bad93 100644
--- a/general_tests/sessionrefund_it_test.go
+++ b/general_tests/sessionrefund_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/sessionroutes_it_test.go b/general_tests/sessionroutes_it_test.go
index 6322c615f..0a29711ca 100644
--- a/general_tests/sessionroutes_it_test.go
+++ b/general_tests/sessionroutes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/sessions_concur_test.go b/general_tests/sessions_concur_test.go
index d93db1a88..3c1ebb61a 100644
--- a/general_tests/sessions_concur_test.go
+++ b/general_tests/sessions_concur_test.go
@@ -1,3 +1,4 @@
+//go:build performance
// +build performance
/*
diff --git a/general_tests/sessions_tnt_change_cdr_it_test.go b/general_tests/sessions_tnt_change_cdr_it_test.go
index 4f05a0d96..b5061072c 100644
--- a/general_tests/sessions_tnt_change_cdr_it_test.go
+++ b/general_tests/sessions_tnt_change_cdr_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/sessions_tnt_change_it_test.go b/general_tests/sessions_tnt_change_it_test.go
index b8df64bdc..d46e32012 100644
--- a/general_tests/sessions_tnt_change_it_test.go
+++ b/general_tests/sessions_tnt_change_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/suretax_it_test.go b/general_tests/suretax_it_test.go
index 685a6e546..b8ea670e5 100644
--- a/general_tests/suretax_it_test.go
+++ b/general_tests/suretax_it_test.go
@@ -1,3 +1,4 @@
+//go:build suretax
// +build suretax
/*
diff --git a/general_tests/tls_it_test.go b/general_tests/tls_it_test.go
index 08541a565..55809cf53 100644
--- a/general_tests/tls_it_test.go
+++ b/general_tests/tls_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/tp_it_test.go b/general_tests/tp_it_test.go
index eb56c9765..79091ac05 100644
--- a/general_tests/tp_it_test.go
+++ b/general_tests/tp_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/tut_smgeneric_it_test.go b/general_tests/tut_smgeneric_it_test.go
index 1d19af166..c867cff04 100644
--- a/general_tests/tut_smgeneric_it_test.go
+++ b/general_tests/tut_smgeneric_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/tutorial2_it_test.go b/general_tests/tutorial2_it_test.go
index f0c4106a8..29be2a777 100644
--- a/general_tests/tutorial2_it_test.go
+++ b/general_tests/tutorial2_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/tutorial_calls_test.go b/general_tests/tutorial_calls_test.go
index c9a1ee8ed..cf779a482 100644
--- a/general_tests/tutorial_calls_test.go
+++ b/general_tests/tutorial_calls_test.go
@@ -1,3 +1,4 @@
+//go:build call
// +build call
/*
diff --git a/general_tests/tutorial_it_test.go b/general_tests/tutorial_it_test.go
index dd6e48ac1..f0825286b 100644
--- a/general_tests/tutorial_it_test.go
+++ b/general_tests/tutorial_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/general_tests/twoengines_it_test.go b/general_tests/twoengines_it_test.go
index f128ae553..65278dfa0 100644
--- a/general_tests/twoengines_it_test.go
+++ b/general_tests/twoengines_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/loaders/loader_it_test.go b/loaders/loader_it_test.go
index bddc54bea..f0cd3092b 100644
--- a/loaders/loader_it_test.go
+++ b/loaders/loader_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/loaders/loaders_it_test.go b/loaders/loaders_it_test.go
index e1189bce2..428940588 100644
--- a/loaders/loaders_it_test.go
+++ b/loaders/loaders_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/attributes_it_test.go b/migrator/attributes_it_test.go
index 99eac14bf..64a5bef29 100644
--- a/migrator/attributes_it_test.go
+++ b/migrator/attributes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/cdrs_it_test.go b/migrator/cdrs_it_test.go
index d5b4ba3e9..5d198f74f 100644
--- a/migrator/cdrs_it_test.go
+++ b/migrator/cdrs_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/chargers_it_test.go b/migrator/chargers_it_test.go
index 65ba5167e..6d3ff7246 100644
--- a/migrator/chargers_it_test.go
+++ b/migrator/chargers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/dispatchers_it_test.go b/migrator/dispatchers_it_test.go
index 3cefb8b6c..a2bdfe290 100644
--- a/migrator/dispatchers_it_test.go
+++ b/migrator/dispatchers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/filters_it_test.go b/migrator/filters_it_test.go
index 344f1f999..bef64e6f0 100644
--- a/migrator/filters_it_test.go
+++ b/migrator/filters_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/load_ids_it_test.go b/migrator/load_ids_it_test.go
index cb41be355..665d4a6de 100644
--- a/migrator/load_ids_it_test.go
+++ b/migrator/load_ids_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/rateprofiles_it_test.go b/migrator/rateprofiles_it_test.go
index 51af348ec..64887e35a 100644
--- a/migrator/rateprofiles_it_test.go
+++ b/migrator/rateprofiles_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/resource_it_test.go b/migrator/resource_it_test.go
index fe2ce8cce..5cecb6184 100644
--- a/migrator/resource_it_test.go
+++ b/migrator/resource_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/routes_it_test.go b/migrator/routes_it_test.go
index 1d19b1687..50da861c5 100644
--- a/migrator/routes_it_test.go
+++ b/migrator/routes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/stats_it_test.go b/migrator/stats_it_test.go
index 34a44545c..afe738983 100644
--- a/migrator/stats_it_test.go
+++ b/migrator/stats_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/thresholds_it_test.go b/migrator/thresholds_it_test.go
index 7c5bb41e3..9b4eb361f 100644
--- a/migrator/thresholds_it_test.go
+++ b/migrator/thresholds_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_action_profile_it_test.go b/migrator/tp_action_profile_it_test.go
index 4a4c30860..1b1d53804 100644
--- a/migrator/tp_action_profile_it_test.go
+++ b/migrator/tp_action_profile_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_dispatchers_it_test.go b/migrator/tp_dispatchers_it_test.go
index 205c2a697..a821a7b45 100644
--- a/migrator/tp_dispatchers_it_test.go
+++ b/migrator/tp_dispatchers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_filters_it_test.go b/migrator/tp_filters_it_test.go
index be735c475..59dee81de 100644
--- a/migrator/tp_filters_it_test.go
+++ b/migrator/tp_filters_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_rate_profiles_it_test.go b/migrator/tp_rate_profiles_it_test.go
index b7f75cf22..71a073a7f 100644
--- a/migrator/tp_rate_profiles_it_test.go
+++ b/migrator/tp_rate_profiles_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_resources_it_test.go b/migrator/tp_resources_it_test.go
index 2bc0e8b68..fe133d241 100644
--- a/migrator/tp_resources_it_test.go
+++ b/migrator/tp_resources_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_routes_it_test.go b/migrator/tp_routes_it_test.go
index 25dfea8fc..4f9494f99 100644
--- a/migrator/tp_routes_it_test.go
+++ b/migrator/tp_routes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_stats_it_test.go b/migrator/tp_stats_it_test.go
index cced92833..0dac46542 100644
--- a/migrator/tp_stats_it_test.go
+++ b/migrator/tp_stats_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/tp_thresholds_it_test.go b/migrator/tp_thresholds_it_test.go
index 9680b45d0..e96585757 100644
--- a/migrator/tp_thresholds_it_test.go
+++ b/migrator/tp_thresholds_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/migrator/versions_it_test.go b/migrator/versions_it_test.go
index c0e7e88e7..7da5e7f9b 100644
--- a/migrator/versions_it_test.go
+++ b/migrator/versions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/registrarc/registrarc_it_test.go b/registrarc/registrarc_it_test.go
index 4722e691b..03349552a 100644
--- a/registrarc/registrarc_it_test.go
+++ b/registrarc/registrarc_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/registrarc/registrarcrpc_it_test.go b/registrarc/registrarcrpc_it_test.go
index b4b3920ca..49bcf8240 100644
--- a/registrarc/registrarcrpc_it_test.go
+++ b/registrarc/registrarcrpc_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/accounts_it_test.go b/services/accounts_it_test.go
index fe0bc9928..199ee5411 100644
--- a/services/accounts_it_test.go
+++ b/services/accounts_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/actions_it_test.go b/services/actions_it_test.go
index 40e980e4b..2ff55f875 100644
--- a/services/actions_it_test.go
+++ b/services/actions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/analyzers_it_test.go b/services/analyzers_it_test.go
index 306c22d39..bae876bbd 100644
--- a/services/analyzers_it_test.go
+++ b/services/analyzers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/asteriskagent_it_test.go b/services/asteriskagent_it_test.go
index cf60d365d..f4d7d28b0 100644
--- a/services/asteriskagent_it_test.go
+++ b/services/asteriskagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/attributes_it_test.go b/services/attributes_it_test.go
index c9d2dcad0..ae941ac9e 100644
--- a/services/attributes_it_test.go
+++ b/services/attributes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/cdrs_it_test.go b/services/cdrs_it_test.go
index e632246f8..6534fd45f 100644
--- a/services/cdrs_it_test.go
+++ b/services/cdrs_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/chargers_it_test.go b/services/chargers_it_test.go
index 6e0c2827d..87b487e2c 100644
--- a/services/chargers_it_test.go
+++ b/services/chargers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/cores_it_test.go b/services/cores_it_test.go
index 14c1ebe1f..f12e80e96 100644
--- a/services/cores_it_test.go
+++ b/services/cores_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/datadb_it_test.go b/services/datadb_it_test.go
index 6423fada2..577cd8b5e 100644
--- a/services/datadb_it_test.go
+++ b/services/datadb_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/diameteragent_it_test.go b/services/diameteragent_it_test.go
index 45c2a1e11..33b14df88 100644
--- a/services/diameteragent_it_test.go
+++ b/services/diameteragent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/dispatchers_it_test.go b/services/dispatchers_it_test.go
index 4efbf70d1..f56cd1b46 100644
--- a/services/dispatchers_it_test.go
+++ b/services/dispatchers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/dnsagent_it_test.go b/services/dnsagent_it_test.go
index 2e11f44c0..18c7f65f9 100644
--- a/services/dnsagent_it_test.go
+++ b/services/dnsagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/ees_it_test.go b/services/ees_it_test.go
index 0e96f5b8a..f39d8e430 100644
--- a/services/ees_it_test.go
+++ b/services/ees_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/ers_it_test.go b/services/ers_it_test.go
index 74d738b8a..cffa8e64d 100644
--- a/services/ers_it_test.go
+++ b/services/ers_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/freeswitchagent_it_test.go b/services/freeswitchagent_it_test.go
index 003c95dca..6300c89e0 100644
--- a/services/freeswitchagent_it_test.go
+++ b/services/freeswitchagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/globalvars_it_test.go b/services/globalvars_it_test.go
index b4b5fdf22..97f0fa571 100644
--- a/services/globalvars_it_test.go
+++ b/services/globalvars_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/httpagent_it_test.go b/services/httpagent_it_test.go
index deec43520..13e307fba 100644
--- a/services/httpagent_it_test.go
+++ b/services/httpagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/kamailioagent_it_test.go b/services/kamailioagent_it_test.go
index 53f5b62ee..afb4926d2 100644
--- a/services/kamailioagent_it_test.go
+++ b/services/kamailioagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/loaders_it_test.go b/services/loaders_it_test.go
index a6b26e1dc..de6bbe1c1 100644
--- a/services/loaders_it_test.go
+++ b/services/loaders_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/radiusagent_it_test.go b/services/radiusagent_it_test.go
index 24db12210..97b0283ef 100644
--- a/services/radiusagent_it_test.go
+++ b/services/radiusagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/rates_it_test.go b/services/rates_it_test.go
index abbceaaa2..14233a7b2 100644
--- a/services/rates_it_test.go
+++ b/services/rates_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/registrarc_it_test.go b/services/registrarc_it_test.go
index a863525f3..13cc0377f 100644
--- a/services/registrarc_it_test.go
+++ b/services/registrarc_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/resources_it_test.go b/services/resources_it_test.go
index b6ed2eebd..8f2336a05 100644
--- a/services/resources_it_test.go
+++ b/services/resources_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/routes_it_test.go b/services/routes_it_test.go
index f7044ea98..88f27c847 100644
--- a/services/routes_it_test.go
+++ b/services/routes_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/sessions_it_test.go b/services/sessions_it_test.go
index 8df5cbe4f..d701d8a29 100644
--- a/services/sessions_it_test.go
+++ b/services/sessions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/sipagent_it_test.go b/services/sipagent_it_test.go
index 0f1fb531b..670dfed6d 100644
--- a/services/sipagent_it_test.go
+++ b/services/sipagent_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/stats_it_test.go b/services/stats_it_test.go
index 24652cd92..da382ffc7 100644
--- a/services/stats_it_test.go
+++ b/services/stats_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/stordb_it_test.go b/services/stordb_it_test.go
index 6e253ba91..6eb00e78d 100644
--- a/services/stordb_it_test.go
+++ b/services/stordb_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/services/thresholds_it_test.go b/services/thresholds_it_test.go
index 5a5a942e5..943dd7eb5 100644
--- a/services/thresholds_it_test.go
+++ b/services/thresholds_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/sessions/sessions.go b/sessions/sessions.go
index a7af43d7c..d3b60c694 100644
--- a/sessions/sessions.go
+++ b/sessions/sessions.go
@@ -943,7 +943,7 @@ func (sS *SessionS) newSession(ctx *context.Context, cgrEv *utils.CGREvent, resI
ClientConnID: clntConnID,
DebitInterval: dbtItval,
}
- s.chargeable = s.OptsStart.GetBoolOrDefault(utils.OptsChargeable, true)
+ s.chargeable = s.OptsStart.GetBoolOrDefault(utils.OptsSessionsChargeable, true)
if !isMsg && sS.isIndexed(s, false) { // check if already exists
return nil, utils.ErrExists
}
@@ -1107,38 +1107,41 @@ func (sS *SessionS) syncSessions(ctx *context.Context) {
if asCount == 0 { // no need to sync the sessions if none is active
return
}
- queriedCGRIDs := engine.NewSafEvent(nil) // need this to be
- var err error
- for _, clnt := range sS.biJClients() {
- errChan := make(chan error)
+ type qReply struct {
+ reply []*SessionID
+ err error
+ }
+ biClnts := sS.biJClients()
+ replys := make(chan *qReply, len(biClnts))
+
+ for _, clnt := range biClnts {
ctx, cancel := context.WithTimeout(ctx, sS.cgrCfg.GeneralCfg().ReplyTimeout)
- go func() {
- var queriedSessionIDs []*SessionID
- if err := clnt.conn.Call(ctx, utils.SessionSv1GetActiveSessionIDs,
- utils.EmptyString, &queriedSessionIDs); err != nil {
- errChan <- err
- }
- for _, sessionID := range queriedSessionIDs {
- queriedCGRIDs.Set(sessionID.CGRID(), struct{}{})
- }
- errChan <- nil
- }()
- select {
- case err = <-errChan:
- if err != nil && err.Error() != utils.ErrNoActiveSession.Error() {
+ defer cancel()
+ go func(clnt *biJClient) {
+ var reply qReply
+ reply.err = clnt.conn.Call(ctx, utils.SessionSv1GetActiveSessionIDs,
+ utils.EmptyString, &reply.reply)
+ replys <- &reply
+ }(clnt)
+ }
+ queriedCGRIDs := utils.StringSet{}
+ for range biClnts {
+ reply := <-replys
+ if reply.err != nil {
+ if reply.err.Error() != utils.ErrNoActiveSession.Error() {
utils.Logger.Warning(
- fmt.Sprintf("<%s> error <%s> quering session ids", utils.SessionS, err.Error()))
+ fmt.Sprintf("<%s> error <%s> quering session ids", utils.SessionS, reply.err.Error()))
}
- case <-time.After(sS.cgrCfg.GeneralCfg().ReplyTimeout):
- utils.Logger.Warning(
- fmt.Sprintf("<%s> timeout quering session ids ", utils.SessionS))
+ continue
+ }
+ for _, sessionID := range reply.reply {
+ queriedCGRIDs.Add(sessionID.CGRID())
}
- cancel()
}
var toBeRemoved []string
sS.aSsMux.RLock()
for cgrid := range sS.aSessions {
- if !queriedCGRIDs.HasField(cgrid) {
+ if !queriedCGRIDs.Has(cgrid) {
toBeRemoved = append(toBeRemoved, cgrid)
}
}
@@ -1253,7 +1256,7 @@ func (sS *SessionS) updateSession(ctx *context.Context, s *Session, updtEv, opts
s.updateSRuns(updtEv, sS.cgrCfg.SessionSCfg().AlterableFields)
sS.setSTerminator(s, opts) // reset the terminator
}
- s.chargeable = opts.GetBoolOrDefault(utils.OptsChargeable, true)
+ s.chargeable = opts.GetBoolOrDefault(utils.OptsSessionsChargeable, true)
//init has no updtEv
if updtEv == nil {
updtEv = engine.MapEvent(s.EventStart.Clone())
@@ -1732,8 +1735,8 @@ func (sS *SessionS) BiRPCv1InitiateSession(ctx *context.Context,
var err error
opts := engine.MapEvent(args.APIOpts)
dbtItvl := sS.cgrCfg.SessionSCfg().DebitInterval
- if opts.HasField(utils.OptsDebitInterval) { // dynamic DebitInterval via CGRDebitInterval
- if dbtItvl, err = opts.GetDuration(utils.OptsDebitInterval); err != nil {
+ if opts.HasField(utils.OptsSessionsDebitInterval) { // dynamic DebitInterval via CGRDebitInterval
+ if dbtItvl, err = opts.GetDuration(utils.OptsSessionsDebitInterval); err != nil {
return err //utils.NewErrRALs(err)
}
}
@@ -1873,8 +1876,8 @@ func (sS *SessionS) BiRPCv1UpdateSession(ctx *context.Context,
ev := engine.MapEvent(args.CGREvent.Event)
opts := engine.MapEvent(args.APIOpts)
dbtItvl := sS.cgrCfg.SessionSCfg().DebitInterval
- if opts.HasField(utils.OptsDebitInterval) { // dynamic DebitInterval via CGRDebitInterval
- if dbtItvl, err = opts.GetDuration(utils.OptsDebitInterval); err != nil {
+ if opts.HasField(utils.OptsSessionsDebitInterval) { // dynamic DebitInterval via CGRDebitInterval
+ if dbtItvl, err = opts.GetDuration(utils.OptsSessionsDebitInterval); err != nil {
return err //utils.NewErrRALs(err)
}
}
@@ -1951,8 +1954,8 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
return utils.NewErrMandatoryIeMissing(utils.OriginID)
}
dbtItvl := sS.cgrCfg.SessionSCfg().DebitInterval
- if opts.HasField(utils.OptsDebitInterval) { // dynamic DebitInterval via CGRDebitInterval
- if dbtItvl, err = opts.GetDuration(utils.OptsDebitInterval); err != nil {
+ if opts.HasField(utils.OptsSessionsDebitInterval) { // dynamic DebitInterval via CGRDebitInterval
+ if dbtItvl, err = opts.GetDuration(utils.OptsSessionsDebitInterval); err != nil {
return err //utils.NewErrRALs(err)
}
}
@@ -1984,7 +1987,7 @@ func (sS *SessionS) BiRPCv1TerminateSession(ctx *context.Context,
s.UpdateSRuns(ev, sS.cgrCfg.SessionSCfg().AlterableFields)
}
s.Lock()
- s.chargeable = opts.GetBoolOrDefault(utils.OptsChargeable, true)
+ s.chargeable = opts.GetBoolOrDefault(utils.OptsSessionsChargeable, true)
s.Unlock()
if err = sS.terminateSession(ctx, s,
ev.GetDurationPtrIgnoreErrors(utils.Usage),
diff --git a/sessions/sessions_birpc_it_test.go b/sessions/sessions_birpc_it_test.go
index 377d7ee09..52f1b5ff5 100644
--- a/sessions/sessions_birpc_it_test.go
+++ b/sessions/sessions_birpc_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/sessions/sessions_data_it_test.go b/sessions/sessions_data_it_test.go
index 473933322..14e2c4db0 100644
--- a/sessions/sessions_data_it_test.go
+++ b/sessions/sessions_data_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/sessions/sessions_it_test.go b/sessions/sessions_it_test.go
index 5641f178d..40618e9d2 100644
--- a/sessions/sessions_it_test.go
+++ b/sessions/sessions_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/sessions/sessions_rpl_it_test.go b/sessions/sessions_rpl_it_test.go
index 8e83131b7..84cb2d5f1 100644
--- a/sessions/sessions_rpl_it_test.go
+++ b/sessions/sessions_rpl_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/sessions/sessions_voice_it_test.go b/sessions/sessions_voice_it_test.go
index ea886bbed..54848c599 100644
--- a/sessions/sessions_voice_it_test.go
+++ b/sessions/sessions_voice_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/utils/consts.go b/utils/consts.go
index 3428d0b52..3315f0bc1 100644
--- a/utils/consts.go
+++ b/utils/consts.go
@@ -2084,45 +2084,29 @@ var (
// CGROptionsSet the possible cgr options
var CGROptionsSet = NewStringSet([]string{OptsRatesStartTime, OptsRatesUsage, OptsSessionsTTL,
OptsSessionsTTLMaxDelay, OptsSessionsTTLLastUsed, OptsSessionsTTLLastUsage, OptsSessionsTTLUsage,
- OptsDebitInterval, OptsStirATest, OptsStirPayloadMaxDuration, OptsStirIdentity,
+ OptsSessionsDebitInterval, OptsStirATest, OptsStirPayloadMaxDuration, OptsStirIdentity,
OptsStirOriginatorTn, OptsStirOriginatorURI, OptsStirDestinationTn, OptsStirDestinationURI,
OptsStirPublicKeyPath, OptsStirPrivateKeyPath, OptsAPIKey, OptsRouteID, OptsContext,
- OptsAttributesProcessRuns, OptsRoutesLimit, OptsRoutesOffset, OptsChargeable,
+ OptsAttributesProcessRuns, OptsRoutesLimit, OptsRoutesOffset, OptsSessionsChargeable,
RemoteHostOpt, CacheOpt, OptsRoutesProfilesCount, OptsDispatchersProfilesCount})
-// EventExporter metrics
-const (
- NumberOfEvents = "NumberOfEvents"
- TotalCost = "TotalCost"
- PositiveExports = "PositiveExports"
- NegativeExports = "NegativeExports"
- FirstExpOrderID = "FirstExpOrderID"
- LastExpOrderID = "LastExpOrderID"
- FirstEventATime = "FirstEventATime"
- LastEventATime = "LastEventATime"
- TotalDuration = "TotalDuration"
- TotalDataUsage = "TotalDataUsage"
- TotalSMSUsage = "TotalSMSUsage"
- TotalMMSUsage = "TotalMMSUsage"
- TotalGenericUsage = "TotalGenericUsage"
- FilePath = "FilePath"
-)
-
// Event Opts
const (
- OptsRoutesProfilesCount = "*routesProfilesCount"
- OptsRoutesLimit = "*routes_limit"
- OptsRoutesOffset = "*routes_offset"
- OptsRatesStartTime = "*ratesStartTime"
- OptsRatesUsage = "*ratesUsage"
- OptsRatesIntervalStart = "*ratesIntervalStart"
- OptsSessionsTTL = "*sessionsTTL"
- OptsSessionsTTLMaxDelay = "*sessionsTTLMaxDelay"
- OptsSessionsTTLLastUsed = "*sessionsTTLLastUsed"
- OptsSessionsTTLLastUsage = "*sessionsTTLLastUsage"
- OptsSessionsTTLUsage = "*sessionsTTLUsage"
- OptsDebitInterval = "*sessionsDebitInterval"
- OptsChargeable = "*sessionsChargeable"
+ // SessionS
+ OptsSessionsTTL = "*sessionsTTL"
+ OptsSessionsChargeable = "*sessionsChargeable"
+ OptsSessionsDebitInterval = "*sessionsDebitInterval"
+ OptsSessionsTTLLastUsage = "*sessionsTTLLastUsage"
+ OptsSessionsTTLLastUsed = "*sessionsTTLLastUsed"
+ OptsSessionsTTLMaxDelay = "*sessionsTTLMaxDelay"
+ OptsSessionsTTLUsage = "*sessionsTTLUsage"
+
+ OptsRoutesProfilesCount = "*routesProfilesCount"
+ OptsRoutesLimit = "*routes_limit"
+ OptsRoutesOffset = "*routes_offset"
+ OptsRatesStartTime = "*ratesStartTime"
+ OptsRatesUsage = "*ratesUsage"
+ OptsRatesIntervalStart = "*ratesIntervalStart"
// STIR
OptsStirATest = "*stirATest"
OptsStirPayloadMaxDuration = "*stirPayloadMaxDuration"
@@ -2164,35 +2148,28 @@ const (
// ArgCache constats
const (
- // ResourceProfileIDs = "ResourceProfileIDs"
- // ResourceIDs = "ResourceIDs"
- // StatsQueueIDs = "StatsQueueIDs"
- // StatsQueueProfileIDs = "StatsQueueProfileIDs"
- ThresholdIDs = "ThresholdIDs"
- // ThresholdProfileIDs = "ThresholdProfileIDs"
- FilterIDs = "FilterIDs"
-
- // RouteProfileIDs = "RouteProfileIDs"
- // AttributeProfileIDs = "AttributeProfileIDs"
- // ChargerProfileIDs = "ChargerProfileIDs"
- // DispatcherProfileIDs = "DispatcherProfileIDs"
- // DispatcherHostIDs = "DispatcherHostIDs"
- // DispatcherRoutesIDs = "DispatcherRoutesIDs"
+ ThresholdIDs = "ThresholdIDs"
+ FilterIDs = "FilterIDs"
RateProfileIDs = "RateProfileIDs"
ActionProfileIDs = "ActionProfileIDs"
+)
-// AttributeFilterIndexIDs = "AttributeFilterIndexIDs"
-// ResourceFilterIndexIDs = "ResourceFilterIndexIDs"
-// StatFilterIndexIDs = "StatFilterIndexIDs"
-// ThresholdFilterIndexIDs = "ThresholdFilterIndexIDs"
-// RouteFilterIndexIDs = "RouteFilterIndexIDs"
-// ChargerFilterIndexIDs = "ChargerFilterIndexIDs"
-// DispatcherFilterIndexIDs = "DispatcherFilterIndexIDs"
-// RateProfilesFilterIndexIDs = "RateProfilesFilterIndexIDs"
-// RateFilterIndexIDs = "RateFilterIndexIDs"
-// ActionProfilesFilterIndexIDs = "ActionProfilesFilterIndexIDs"
-// AccountsFilterIndexIDs = "AccountsFilterIndexIDs"
-// FilterIndexIDs = "FilterIndexIDs"
+// EventExporter metrics
+const (
+ NumberOfEvents = "NumberOfEvents"
+ TotalCost = "TotalCost"
+ PositiveExports = "PositiveExports"
+ NegativeExports = "NegativeExports"
+ FirstExpOrderID = "FirstExpOrderID"
+ LastExpOrderID = "LastExpOrderID"
+ FirstEventATime = "FirstEventATime"
+ LastEventATime = "LastEventATime"
+ TotalDuration = "TotalDuration"
+ TotalDataUsage = "TotalDataUsage"
+ TotalSMSUsage = "TotalSMSUsage"
+ TotalMMSUsage = "TotalMMSUsage"
+ TotalGenericUsage = "TotalGenericUsage"
+ FilePath = "FilePath"
)
// Poster and Event reader constants
@@ -2366,15 +2343,12 @@ const (
ExecCgr = "exec"
)
-var (
- // AnzIndexType are the analyzers possible index types
- AnzIndexType = StringSet{
- MetaScorch: {},
- MetaBoltdb: {},
- MetaLeveldb: {},
- MetaMoss: {},
- }
-)
+var AnzIndexType = StringSet{ // AnzIndexType are the analyzers possible index types
+ MetaScorch: {},
+ MetaBoltdb: {},
+ MetaLeveldb: {},
+ MetaMoss: {},
+}
// ActionSv1
const (
diff --git a/utils/coreutils_it_test.go b/utils/coreutils_it_test.go
index 384ec3435..58c3694a3 100644
--- a/utils/coreutils_it_test.go
+++ b/utils/coreutils_it_test.go
@@ -1,4 +1,6 @@
+//go:build integration
// +build integration
+
/*
Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH
diff --git a/utils/file_it_test.go b/utils/file_it_test.go
index ca4083ba4..39ccbcbc2 100644
--- a/utils/file_it_test.go
+++ b/utils/file_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/utils/logger_it_test.go b/utils/logger_it_test.go
index 844b0ccdc..120bab5c4 100644
--- a/utils/logger_it_test.go
+++ b/utils/logger_it_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/utils/reflect.go b/utils/reflect.go
index 61ed199b9..f719cf11a 100644
--- a/utils/reflect.go
+++ b/utils/reflect.go
@@ -234,8 +234,14 @@ func IfaceAsBool(itm interface{}) (b bool, err error) {
return strconv.ParseBool(v)
case int:
return v > 0, nil
+ case int32:
+ return v > 0, nil
case int64:
return v > 0, nil
+ case uint32:
+ return v > 0, nil
+ case uint64:
+ return v > 0, nil
case float64:
return v > 0, nil
default:
@@ -680,3 +686,59 @@ func ReflectFieldMethodInterface(obj interface{}, fldName string) (retIf interfa
}
return field.Interface(), nil
}
+
+func IfaceAsStringSlice(fld interface{}) (ss []string, err error) {
+ switch value := fld.(type) {
+ case nil:
+ case []string:
+ ss = value
+ case []int:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.Itoa(v)
+ }
+ case []int32:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.FormatInt(int64(v), 10)
+ }
+ case []int64:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.FormatInt(v, 10)
+ }
+ case []uint32:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.FormatUint(uint64(v), 10)
+ }
+ case []uint64:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.FormatUint(v, 10)
+ }
+ case []bool:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.FormatBool(v)
+ }
+ case []float32:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.FormatFloat(float64(v), 'f', -1, 64)
+ }
+ case []float64:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = strconv.FormatFloat(v, 'f', -1, 64)
+ }
+ case []interface{}:
+ ss = make([]string, len(value))
+ for i, v := range value {
+ ss[i] = IfaceAsString(v)
+ }
+ default: // Maybe we are lucky and the value converts to string
+ err = fmt.Errorf("cannot convert field: %+v to []string", value)
+ }
+ return
+}
diff --git a/utils/reflect_test.go b/utils/reflect_test.go
index 9b5535fe0..1cf73c273 100644
--- a/utils/reflect_test.go
+++ b/utils/reflect_test.go
@@ -842,10 +842,10 @@ func TestIfaceAsBoolInt64(t *testing.T) {
}
func TestIfaceAsBoolDefault(t *testing.T) {
- var test uint64 = 2147483647
+ var test struct{}
_, err := IfaceAsBool(test)
- if err == nil || err.Error() != "cannot convert field: 2147483647 to bool" {
- t.Errorf("Expecting ,received: <%+v>", err)
+ if err == nil || err.Error() != "cannot convert field: {} to bool" {
+ t.Errorf("Expecting ,received: <%+v>", err)
}
}