diff --git a/apier/v1/accounts_it_test.go b/apier/v1/accounts_it_test.go
index e0f78b775..4d88f3286 100644
--- a/apier/v1/accounts_it_test.go
+++ b/apier/v1/accounts_it_test.go
@@ -78,9 +78,6 @@ func TestAccITWithRemove(t *testing.T) {
default:
t.Fatal("Unknown Database type")
}
- if *encoding == utils.MetaGOB {
- accTestsConfig += "_gob"
- }
accCfgPath = path.Join(*dataDir, "conf", "samples", accTestsConfig)
for _, stest := range accTests {
diff --git a/apier/v1/config_it_test.go b/apier/v1/config_it_test.go
index 89d0b725f..4ebf7e9ab 100644
--- a/apier/v1/config_it_test.go
+++ b/apier/v1/config_it_test.go
@@ -154,7 +154,12 @@ func testConfigSReloadConfigFromJSONSessionS(t *testing.T) {
"StoreSCosts": false,
"AlterableFields": map[string]interface{}{},
}
-
+ if *encoding == utils.MetaGOB {
+ var empty []interface{}
+ exp["ThreshSConns"] = empty
+ exp["StatSConns"] = empty
+ exp["ReplicationConns"] = empty
+ }
var rpl map[string]interface{}
if err := configRPC.Call(utils.ConfigSv1GetJSONSection, &config.StringWithArgDispatcher{
Section: config.SessionSJson,
diff --git a/apier/v1/dm_remote_it_test.go b/apier/v1/dm_remote_it_test.go
index 9d77cb976..387b9d596 100644
--- a/apier/v1/dm_remote_it_test.go
+++ b/apier/v1/dm_remote_it_test.go
@@ -930,7 +930,7 @@ func testInternalSetAccount(t *testing.T) {
func testInternalReplicateStats(t *testing.T) {
var reply string
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "StatsToReplicate",
diff --git a/apier/v1/filter_indexes_it_test.go b/apier/v1/filter_indexes_it_test.go
index e704e7b88..3dfa81adb 100644
--- a/apier/v1/filter_indexes_it_test.go
+++ b/apier/v1/filter_indexes_it_test.go
@@ -438,7 +438,7 @@ func testV1FIdxSetStatQueueProfileIndexes(t *testing.T) {
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: tenant,
ID: "TEST_PROFILE1",
@@ -541,7 +541,7 @@ func testV1FIdxSetSecondStatQueueProfileIndexes(t *testing.T) {
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: tenant,
ID: "TEST_PROFILE2",
diff --git a/apier/v1/filterindexecache_it_test.go b/apier/v1/filterindexecache_it_test.go
index f5106bbfa..4d7e0d5a2 100644
--- a/apier/v1/filterindexecache_it_test.go
+++ b/apier/v1/filterindexecache_it_test.go
@@ -522,7 +522,7 @@ func testV1FIdxCaSetStatQueueProfile(t *testing.T) {
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "TEST_PROFILE1",
@@ -675,7 +675,7 @@ func testV1FIdxCaUpdateStatQueueProfile(t *testing.T) {
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
}
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "TEST_PROFILE1",
@@ -758,7 +758,7 @@ func testV1FIdxCaUpdateStatQueueProfileFromTP(t *testing.T) {
reply.FilterIDs = []string{"FLTR_3"}
reply.ActivationInterval = &utils.ActivationInterval{ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC)}
if err := tFIdxCaRpc.Call(utils.APIerSv1SetStatQueueProfile,
- &StatQueueWithCache{StatQueueProfile: &reply}, &result); err != nil {
+ &engine.StatQueueWithCache{StatQueueProfile: &reply}, &result); err != nil {
t.Error(err)
} else if result != utils.OK {
t.Error("Unexpected reply returned", result)
diff --git a/apier/v1/stats.go b/apier/v1/stats.go
index 7d7535f19..07ca5e13e 100644
--- a/apier/v1/stats.go
+++ b/apier/v1/stats.go
@@ -60,13 +60,8 @@ func (APIerSv1 *APIerSv1) GetStatQueueProfileIDs(args utils.TenantArgWithPaginat
return nil
}
-type StatQueueWithCache struct {
- *engine.StatQueueProfile
- Cache *string
-}
-
// SetStatQueueProfile alters/creates a StatQueueProfile
-func (APIerSv1 *APIerSv1) SetStatQueueProfile(arg *StatQueueWithCache, reply *string) error {
+func (APIerSv1 *APIerSv1) SetStatQueueProfile(arg *engine.StatQueueWithCache, reply *string) error {
if missing := utils.MissingStructFields(arg.StatQueueProfile, []string{"Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
diff --git a/apier/v1/stats_it_test.go b/apier/v1/stats_it_test.go
index 711f9bb06..617cf6873 100644
--- a/apier/v1/stats_it_test.go
+++ b/apier/v1/stats_it_test.go
@@ -36,7 +36,7 @@ var (
stsV1CfgPath string
stsV1Cfg *config.CGRConfig
stsV1Rpc *rpc.Client
- statConfig *StatQueueWithCache
+ statConfig *engine.StatQueueWithCache
stsV1ConfDIR string //run tests for specific configuration
evs = []*utils.CGREvent{
@@ -150,7 +150,7 @@ func testV1STSGetStats(t *testing.T) {
var reply []string
expectedIDs := []string{"Stats1"}
if err := stsV1Rpc.Call(utils.StatSv1GetQueueIDs,
- &utils.TenantWithArgDispatcher{TenantArg: &utils.TenantArg{"cgrates.org"}}, &reply); err != nil {
+ &utils.TenantWithArgDispatcher{TenantArg: &utils.TenantArg{Tenant: "cgrates.org"}}, &reply); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedIDs, reply) {
t.Errorf("expecting: %+v, received reply: %s", expectedIDs, reply)
@@ -362,7 +362,7 @@ func testV1STSSetStatQueueProfile(t *testing.T) {
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "TEST_PROFILE1",
@@ -374,10 +374,10 @@ func testV1STSSetStatQueueProfile(t *testing.T) {
QueueLength: 10,
TTL: time.Duration(10) * time.Second,
Metrics: []*engine.MetricWithFilters{
- &engine.MetricWithFilters{
+ {
MetricID: utils.MetaACD,
},
- &engine.MetricWithFilters{
+ {
MetricID: utils.MetaTCD,
},
},
@@ -471,7 +471,7 @@ func testV1STSRemoveStatQueueProfile(t *testing.T) {
}
func testV1STSProcessMetricsWithFilter(t *testing.T) {
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "CustomStatProfile",
@@ -482,15 +482,15 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
QueueLength: 100,
TTL: time.Duration(1) * time.Second,
Metrics: []*engine.MetricWithFilters{
- &engine.MetricWithFilters{
+ {
MetricID: utils.MetaACD,
FilterIDs: []string{"*rsr::~*req.Usage{*duration}(>10s)"},
},
- &engine.MetricWithFilters{
+ {
MetricID: utils.MetaTCD,
FilterIDs: []string{"*gt:~*req.Usage:5s"},
},
- &engine.MetricWithFilters{
+ {
MetricID: utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+"CustomValue"),
FilterIDs: []string{"*exists:~*req.CustomValue:", "*gte:~*req.CustomValue:10.0"},
},
@@ -590,7 +590,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
}
func testV1STSProcessStaticMetrics(t *testing.T) {
- statConfig = &StatQueueWithCache{
+ statConfig = &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "StaticStatQueue",
@@ -601,10 +601,10 @@ func testV1STSProcessStaticMetrics(t *testing.T) {
QueueLength: 100,
TTL: time.Duration(1) * time.Second,
Metrics: []*engine.MetricWithFilters{
- &engine.MetricWithFilters{
+ {
MetricID: utils.ConcatenatedKey(utils.MetaSum, "1"),
},
- &engine.MetricWithFilters{
+ {
MetricID: utils.ConcatenatedKey(utils.MetaAverage, "2"),
},
},
@@ -695,7 +695,7 @@ func testV1STSStatsPing(t *testing.T) {
}
func testV1STSProcessStatWithThreshold(t *testing.T) {
- stTh := &StatQueueWithCache{
+ stTh := &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "StatWithThreshold",
@@ -706,10 +706,10 @@ func testV1STSProcessStatWithThreshold(t *testing.T) {
QueueLength: 100,
TTL: time.Duration(1) * time.Second,
Metrics: []*engine.MetricWithFilters{
- &engine.MetricWithFilters{
+ {
MetricID: utils.MetaTCD,
},
- &engine.MetricWithFilters{
+ {
MetricID: utils.ConcatenatedKey(utils.MetaSum, "2"),
},
},
diff --git a/apier/v1/tpaccountactions_it_test.go b/apier/v1/tpaccountactions_it_test.go
index b9d4036b7..ab659795c 100644
--- a/apier/v1/tpaccountactions_it_test.go
+++ b/apier/v1/tpaccountactions_it_test.go
@@ -63,29 +63,19 @@ var sTestsTPAccActions = []func(t *testing.T){
}
//Test start here
-func TestTPAccActionsITMySql(t *testing.T) {
- tpAccActionsConfigDIR = "tutmysql"
- for _, stest := range sTestsTPAccActions {
- t.Run(tpAccActionsConfigDIR, stest)
+func TestTPAccActionsIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpAccActionsConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpAccActionsConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpAccActionsConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpAccActionsConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPAccActionsITMongo(t *testing.T) {
- tpAccActionsConfigDIR = "tutmongo"
- for _, stest := range sTestsTPAccActions {
- t.Run(tpAccActionsConfigDIR, stest)
- }
-}
-
-func TestTPAccActionsITPG(t *testing.T) {
- tpAccActionsConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPAccActions {
- t.Run(tpAccActionsConfigDIR, stest)
- }
-}
-
-func TestTPAccActionsITInternal(t *testing.T) {
- tpAccActionsConfigDIR = "tutinternal"
for _, stest := range sTestsTPAccActions {
t.Run(tpAccActionsConfigDIR, stest)
}
diff --git a/apier/v1/tpactionplans_it_test.go b/apier/v1/tpactionplans_it_test.go
index c0d303770..819e1b558 100644
--- a/apier/v1/tpactionplans_it_test.go
+++ b/apier/v1/tpactionplans_it_test.go
@@ -60,29 +60,19 @@ var sTestsTPAccPlans = []func(t *testing.T){
}
//Test start here
-func TestTPAccPlansITMySql(t *testing.T) {
- tpAccPlansConfigDIR = "tutmysql"
- for _, stest := range sTestsTPAccPlans {
- t.Run(tpAccPlansConfigDIR, stest)
+func TestTPAccPlansIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpAccPlansConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpAccPlansConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpAccPlansConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpAccPlansConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPAccPlansITMongo(t *testing.T) {
- tpAccPlansConfigDIR = "tutmongo"
- for _, stest := range sTestsTPAccPlans {
- t.Run(tpAccPlansConfigDIR, stest)
- }
-}
-
-func TestTPAccPlansITPG(t *testing.T) {
- tpAccPlansConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPAccPlans {
- t.Run(tpAccPlansConfigDIR, stest)
- }
-}
-
-func TestTPAccPlansITInternal(t *testing.T) {
- tpAccPlansConfigDIR = "tutinternal"
for _, stest := range sTestsTPAccPlans {
t.Run(tpAccPlansConfigDIR, stest)
}
diff --git a/apier/v1/tpactions_it_test.go b/apier/v1/tpactions_it_test.go
index 137ac0c78..1b522a95e 100644
--- a/apier/v1/tpactions_it_test.go
+++ b/apier/v1/tpactions_it_test.go
@@ -60,29 +60,19 @@ var sTestsTPActions = []func(t *testing.T){
}
//Test start here
-func TestTPActionsITMySql(t *testing.T) {
- tpActionConfigDIR = "tutmysql"
- for _, stest := range sTestsTPActions {
- t.Run(tpActionConfigDIR, stest)
+func TestTPActionsIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpActionConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpActionConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpActionConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpActionConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPActionsITMongo(t *testing.T) {
- tpActionConfigDIR = "tutmongo"
- for _, stest := range sTestsTPActions {
- t.Run(tpActionConfigDIR, stest)
- }
-}
-
-func TestTPActionsITPG(t *testing.T) {
- tpActionConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPActions {
- t.Run(tpActionConfigDIR, stest)
- }
-}
-
-func TestTPActionsITInternal(t *testing.T) {
- tpActionConfigDIR = "tutinternal"
for _, stest := range sTestsTPActions {
t.Run(tpActionConfigDIR, stest)
}
diff --git a/apier/v1/tpactiontriggers_it_test.go b/apier/v1/tpactiontriggers_it_test.go
index ecea476c8..eacf1affc 100644
--- a/apier/v1/tpactiontriggers_it_test.go
+++ b/apier/v1/tpactiontriggers_it_test.go
@@ -60,29 +60,19 @@ var sTestsTPActionTriggers = []func(t *testing.T){
}
//Test start here
-func TestTPActionTriggersITMySql(t *testing.T) {
- tpActionTriggerConfigDIR = "tutmysql"
- for _, stest := range sTestsTPActionTriggers {
- t.Run(tpActionTriggerConfigDIR, stest)
+func TestTPActionTriggersIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpActionTriggerConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpActionTriggerConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpActionTriggerConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpActionTriggerConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPActionTriggersITMongo(t *testing.T) {
- tpActionTriggerConfigDIR = "tutmongo"
- for _, stest := range sTestsTPActionTriggers {
- t.Run(tpActionTriggerConfigDIR, stest)
- }
-}
-
-func TestTPActionTriggersITPG(t *testing.T) {
- tpActionTriggerConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPActionTriggers {
- t.Run(tpActionTriggerConfigDIR, stest)
- }
-}
-
-func TestTPActionTriggersITInternal(t *testing.T) {
- tpActionTriggerConfigDIR = "tutinternal"
for _, stest := range sTestsTPActionTriggers {
t.Run(tpActionTriggerConfigDIR, stest)
}
diff --git a/apier/v1/tpattributes.go b/apier/v1/tpattributes.go
index 20129fee5..69b81f2f3 100644
--- a/apier/v1/tpattributes.go
+++ b/apier/v1/tpattributes.go
@@ -22,31 +22,31 @@ import (
"github.com/cgrates/cgrates/utils"
)
-// Creates a new AttributeProfile within a tariff plan
-func (self *APIerSv1) SetTPAttributeProfile(attrs *utils.TPAttributeProfile, reply *string) error {
+// SetTPAttributeProfile creates a new AttributeProfile within a tariff plan
+func (api *APIerSv1) SetTPAttributeProfile(attrs *utils.TPAttributeProfile, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.SetTPAttributes([]*utils.TPAttributeProfile{attrs}); err != nil {
+ if err := api.StorDb.SetTPAttributes([]*utils.TPAttributeProfile{attrs}); err != nil {
return utils.NewErrServerError(err)
}
*reply = utils.OK
return nil
}
-// Queries specific AttributeProfile on Tariff plan
-func (self *APIerSv1) GetTPAttributeProfile(attr *utils.TPTntID, reply *utils.TPAttributeProfile) error {
+// GetTPAttributeProfile queries specific AttributeProfile on Tariff plan
+func (api *APIerSv1) GetTPAttributeProfile(attr *utils.TPTntID, reply *utils.TPAttributeProfile) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if als, err := self.StorDb.GetTPAttributes(attr.TPid, attr.Tenant, attr.ID); err != nil {
+ als, err := api.StorDb.GetTPAttributes(attr.TPid, attr.Tenant, attr.ID)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = *als[0]
}
+ *reply = *als[0]
return nil
}
@@ -55,32 +55,32 @@ type AttrGetTPAttributeProfileIds struct {
utils.PaginatorWithSearch
}
-// Queries attribute identities on specific tariff plan.
-func (self *APIerSv1) GetTPAttributeProfileIds(attrs *AttrGetTPAttributeProfileIds, reply *[]string) error {
+// GetTPAttributeProfileIds queries attribute identities on specific tariff plan.
+func (api *APIerSv1) GetTPAttributeProfileIds(attrs *AttrGetTPAttributeProfileIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if ids, err := self.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPAttributes,
- utils.TPDistinctIds{"id"}, nil, &attrs.PaginatorWithSearch); err != nil {
+ ids, err := api.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPAttributes,
+ utils.TPDistinctIds{"tenant", "id"}, nil, &attrs.PaginatorWithSearch)
+ if err != nil {
return utils.NewErrServerError(err)
- } else if ids == nil {
- return utils.ErrNotFound
- } else {
- *reply = ids
}
+ if ids == nil {
+ return utils.ErrNotFound
+ }
+ *reply = ids
return nil
}
-// Removes specific AttributeProfile on Tariff plan
-func (self *APIerSv1) RemoveTPAttributeProfile(attrs *utils.TPTntID, reply *string) error {
+// RemoveTPAttributeProfile removes specific AttributeProfile on Tariff plan
+func (api *APIerSv1) RemoveTPAttributeProfile(attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.RemTpData(utils.TBLTPAttributes, attrs.TPid,
+ if err := api.StorDb.RemTpData(utils.TBLTPAttributes, attrs.TPid,
map[string]string{"tenant": attrs.Tenant, "id": attrs.ID}); err != nil {
return utils.NewErrServerError(err)
- } else {
- *reply = utils.OK
}
+ *reply = utils.OK
return nil
}
diff --git a/apier/v1/tpattributes_it_test.go b/apier/v1/tpattributes_it_test.go
index 7d71c69b3..d5e3707ee 100644
--- a/apier/v1/tpattributes_it_test.go
+++ b/apier/v1/tpattributes_it_test.go
@@ -61,22 +61,19 @@ var sTestsTPAlsPrf = []func(t *testing.T){
}
//Test start here
-func TestTPAlsPrfITMySql(t *testing.T) {
- tpAlsPrfConfigDIR = "tutmysql"
- for _, stest := range sTestsTPAlsPrf {
- t.Run(tpAlsPrfConfigDIR, stest)
+func TestTPAlsPrfIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpAlsPrfConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpAlsPrfConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpAlsPrfConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ t.SkipNow()
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPAlsPrfITMongo(t *testing.T) {
- tpAlsPrfConfigDIR = "tutmongo"
- for _, stest := range sTestsTPAlsPrf {
- t.Run(tpAlsPrfConfigDIR, stest)
- }
-}
-
-func TestTPAlsPrfITInternal(t *testing.T) {
- tpAlsPrfConfigDIR = "tutinternal"
for _, stest := range sTestsTPAlsPrf {
t.Run(tpAlsPrfConfigDIR, stest)
}
@@ -168,7 +165,7 @@ func testTPAlsPrfGetTPAlsPrfAfterSet(t *testing.T) {
func testTPAlsPrfGetTPAlsPrfIDs(t *testing.T) {
var result []string
- expectedTPID := []string{"Attr1"}
+ expectedTPID := []string{"cgrates.org:Attr1"}
if err := tpAlsPrfRPC.Call(utils.APIerSv1GetTPAttributeProfileIds,
&AttrGetTPAttributeProfileIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
diff --git a/apier/v1/tpchargers.go b/apier/v1/tpchargers.go
index 2339ab5b5..f34419147 100755
--- a/apier/v1/tpchargers.go
+++ b/apier/v1/tpchargers.go
@@ -22,31 +22,31 @@ import (
"github.com/cgrates/cgrates/utils"
)
-// Creates a new ChargerProfile within a tariff plan
-func (self *APIerSv1) SetTPCharger(attr *utils.TPChargerProfile, reply *string) error {
+// SetTPCharger creates a new ChargerProfile within a tariff plan
+func (api *APIerSv1) SetTPCharger(attr *utils.TPChargerProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.SetTPChargers([]*utils.TPChargerProfile{attr}); err != nil {
+ if err := api.StorDb.SetTPChargers([]*utils.TPChargerProfile{attr}); err != nil {
return utils.APIErrorHandler(err)
}
*reply = utils.OK
return nil
}
-// Queries specific ChargerProfile on Tariff plan
-func (self *APIerSv1) GetTPCharger(attr *utils.TPTntID, reply *utils.TPChargerProfile) error {
+// GetTPCharger queries specific ChargerProfile on Tariff plan
+func (api *APIerSv1) GetTPCharger(attr *utils.TPTntID, reply *utils.TPChargerProfile) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if rls, err := self.StorDb.GetTPChargers(attr.TPid, attr.Tenant, attr.ID); err != nil {
+ rls, err := api.StorDb.GetTPChargers(attr.TPid, attr.Tenant, attr.ID)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = *rls[0]
}
+ *reply = *rls[0]
return nil
}
@@ -55,33 +55,32 @@ type AttrGetTPChargerIds struct {
utils.PaginatorWithSearch
}
-// Queries Charger identities on specific tariff plan.
-func (self *APIerSv1) GetTPChargerIDs(attrs *AttrGetTPChargerIds, reply *[]string) error {
+// GetTPChargerIDs queries Charger identities on specific tariff plan.
+func (api *APIerSv1) GetTPChargerIDs(attrs *AttrGetTPChargerIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if ids, err := self.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPChargers, utils.TPDistinctIds{"id"},
- nil, &attrs.PaginatorWithSearch); err != nil {
+ ids, err := api.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPChargers, utils.TPDistinctIds{"tenant", "id"},
+ nil, &attrs.PaginatorWithSearch)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = ids
}
+ *reply = ids
return nil
}
-// Removes specific ChargerProfile on Tariff plan
-func (self *APIerSv1) RemoveTPCharger(attrs *utils.TPTntID, reply *string) error {
+// RemoveTPCharger removes specific ChargerProfile on Tariff plan
+func (api *APIerSv1) RemoveTPCharger(attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.RemTpData(utils.TBLTPChargers, attrs.TPid,
+ if err := api.StorDb.RemTpData(utils.TBLTPChargers, attrs.TPid,
map[string]string{"tenant": attrs.Tenant, "id": attrs.ID}); err != nil {
return utils.NewErrServerError(err)
- } else {
- *reply = utils.OK
}
+ *reply = utils.OK
return nil
}
diff --git a/apier/v1/tpchargers_it_test.go b/apier/v1/tpchargers_it_test.go
index d8eb48fe1..92335b541 100644
--- a/apier/v1/tpchargers_it_test.go
+++ b/apier/v1/tpchargers_it_test.go
@@ -60,22 +60,19 @@ var sTestsTPChrgs = []func(t *testing.T){
}
//Test start here
-func TestTPChrgsITMySql(t *testing.T) {
- tpChrgsConfigDIR = "tutmysql"
- for _, stest := range sTestsTPChrgs {
- t.Run(tpChrgsConfigDIR, stest)
+func TestTPChrgsIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpChrgsConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpChrgsConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpChrgsConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ t.SkipNow()
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPChrgsITMongo(t *testing.T) {
- tpChrgsConfigDIR = "tutmongo"
- for _, stest := range sTestsTPChrgs {
- t.Run(tpChrgsConfigDIR, stest)
- }
-}
-
-func TestTPChrgsITInternal(t *testing.T) {
- tpChrgsConfigDIR = "tutinternal"
for _, stest := range sTestsTPChrgs {
t.Run(tpChrgsConfigDIR, stest)
}
@@ -165,7 +162,7 @@ func testTPChrgsGetTPChrgsAfterSet(t *testing.T) {
func testTPChrgsGetTPChrgsIDs(t *testing.T) {
var result []string
- expectedTPID := []string{"Chrgs"}
+ expectedTPID := []string{"cgrates.org:Chrgs"}
if err := tpChrgsRPC.Call(utils.APIerSv1GetTPChargerIDs,
&AttrGetTPAttributeProfileIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
diff --git a/apier/v1/tpdestinationrates_it_test.go b/apier/v1/tpdestinationrates_it_test.go
index 27a65aeef..58424f106 100644
--- a/apier/v1/tpdestinationrates_it_test.go
+++ b/apier/v1/tpdestinationrates_it_test.go
@@ -59,29 +59,19 @@ var sTestsTPDstRates = []func(t *testing.T){
}
//Test start here
-func TestTPDstRateITMySql(t *testing.T) {
- tpDstRateConfigDIR = "tutmysql"
- for _, stest := range sTestsTPDstRates {
- t.Run(tpDstRateConfigDIR, stest)
+func TestTPDstRateIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpDstRateConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpDstRateConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpDstRateConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpDstRateConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPDstRateITMongo(t *testing.T) {
- tpDstRateConfigDIR = "tutmongo"
- for _, stest := range sTestsTPDstRates {
- t.Run(tpDstRateConfigDIR, stest)
- }
-}
-
-func TestTPDstRateITPG(t *testing.T) {
- tpDstRateConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPDstRates {
- t.Run(tpDstRateConfigDIR, stest)
- }
-}
-
-func TestTPDstRateITInternal(t *testing.T) {
- tpDstRateConfigDIR = "tutinternal"
for _, stest := range sTestsTPDstRates {
t.Run(tpDstRateConfigDIR, stest)
}
diff --git a/apier/v1/tpdestinations_it_test.go b/apier/v1/tpdestinations_it_test.go
index 1a0cbd009..bd2b34c6b 100644
--- a/apier/v1/tpdestinations_it_test.go
+++ b/apier/v1/tpdestinations_it_test.go
@@ -59,29 +59,19 @@ var sTestsTPDestinations = []func(t *testing.T){
}
//Test start here
-func TestTPDestinationsITMySql(t *testing.T) {
- tpDestinationConfigDIR = "tutmysql"
- for _, stest := range sTestsTPDestinations {
- t.Run(tpDestinationConfigDIR, stest)
+func TestTPDestinationsIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpDestinationConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpDestinationConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpDestinationConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpDestinationConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPDestinationsITMongo(t *testing.T) {
- tpDestinationConfigDIR = "tutmongo"
- for _, stest := range sTestsTPDestinations {
- t.Run(tpDestinationConfigDIR, stest)
- }
-}
-
-func TestTPDestinationsITPG(t *testing.T) {
- tpDestinationConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPDestinations {
- t.Run(tpDestinationConfigDIR, stest)
- }
-}
-
-func TestTPDestinationsITInternal(t *testing.T) {
- tpDestinationConfigDIR = "tutinternal"
for _, stest := range sTestsTPDestinations {
t.Run(tpDestinationConfigDIR, stest)
}
diff --git a/apier/v1/tpdispatchers.go b/apier/v1/tpdispatchers.go
index 6f37beb07..bc846d725 100644
--- a/apier/v1/tpdispatchers.go
+++ b/apier/v1/tpdispatchers.go
@@ -22,31 +22,31 @@ import (
"github.com/cgrates/cgrates/utils"
)
-//SetTPDispatcher creates a new DispatcherProfile within a tariff plan
-func (self *APIerSv1) SetTPDispatcherProfile(attr *utils.TPDispatcherProfile, reply *string) error {
+// SetTPDispatcherProfile creates a new DispatcherProfile within a tariff plan
+func (api *APIerSv1) SetTPDispatcherProfile(attr *utils.TPDispatcherProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.SetTPDispatcherProfiles([]*utils.TPDispatcherProfile{attr}); err != nil {
+ if err := api.StorDb.SetTPDispatcherProfiles([]*utils.TPDispatcherProfile{attr}); err != nil {
return utils.APIErrorHandler(err)
}
*reply = utils.OK
return nil
}
-//GetTPCharger queries specific DispatcherProfile on Tariff plan
-func (self *APIerSv1) GetTPDispatcherProfile(attr *utils.TPTntID, reply *utils.TPDispatcherProfile) error {
+// GetTPDispatcherProfile queries specific DispatcherProfile on Tariff plan
+func (api *APIerSv1) GetTPDispatcherProfile(attr *utils.TPTntID, reply *utils.TPDispatcherProfile) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if rls, err := self.StorDb.GetTPDispatcherProfiles(attr.TPid, attr.Tenant, attr.ID); err != nil {
+ rls, err := api.StorDb.GetTPDispatcherProfiles(attr.TPid, attr.Tenant, attr.ID)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = *rls[0]
}
+ *reply = *rls[0]
return nil
}
@@ -55,92 +55,90 @@ type AttrGetTPDispatcherIds struct {
utils.PaginatorWithSearch
}
-//GetTPDispatcherIDs queries dispatcher identities on specific tariff plan.
-func (self *APIerSv1) GetTPDispatcherProfileIDs(attrs *AttrGetTPDispatcherIds, reply *[]string) error {
+// GetTPDispatcherProfileIDs queries dispatcher identities on specific tariff plan.
+func (api *APIerSv1) GetTPDispatcherProfileIDs(attrs *AttrGetTPDispatcherIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if ids, err := self.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPDispatchers, utils.TPDistinctIds{"id"},
- nil, &attrs.PaginatorWithSearch); err != nil {
+ ids, err := api.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPDispatchers, utils.TPDistinctIds{"tenant", "id"},
+ nil, &attrs.PaginatorWithSearch)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = ids
}
+ *reply = ids
return nil
}
-//RemoveTPCharger removes specific DispatcherProfile on Tariff plan
-func (self *APIerSv1) RemoveTPDispatcherProfile(attrs *utils.TPTntID, reply *string) error {
+// RemoveTPDispatcherProfile removes specific DispatcherProfile on Tariff plan
+func (api *APIerSv1) RemoveTPDispatcherProfile(attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.RemTpData(utils.TBLTPDispatchers, attrs.TPid,
+ if err := api.StorDb.RemTpData(utils.TBLTPDispatchers, attrs.TPid,
map[string]string{"tenant": attrs.Tenant, "id": attrs.ID}); err != nil {
return utils.NewErrServerError(err)
- } else {
- *reply = utils.OK
}
+ *reply = utils.OK
return nil
}
-//SetTPDispatcherHost creates a new DispatcherHost within a tariff plan
-func (self *APIerSv1) SetTPDispatcherHost(attr *utils.TPDispatcherHost, reply *string) error {
+// SetTPDispatcherHost creates a new DispatcherHost within a tariff plan
+func (api *APIerSv1) SetTPDispatcherHost(attr *utils.TPDispatcherHost, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.SetTPDispatcherHosts([]*utils.TPDispatcherHost{attr}); err != nil {
+ if err := api.StorDb.SetTPDispatcherHosts([]*utils.TPDispatcherHost{attr}); err != nil {
return utils.APIErrorHandler(err)
}
*reply = utils.OK
return nil
}
-//GetTPDispatcherHost queries specific DispatcherHosts on Tariff plan
-func (self *APIerSv1) GetTPDispatcherHost(attr *utils.TPTntID, reply *utils.TPDispatcherHost) error {
+// GetTPDispatcherHost queries specific DispatcherHosts on Tariff plan
+func (api *APIerSv1) GetTPDispatcherHost(attr *utils.TPTntID, reply *utils.TPDispatcherHost) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if rls, err := self.StorDb.GetTPDispatcherHosts(attr.TPid, attr.Tenant, attr.ID); err != nil {
+ rls, err := api.StorDb.GetTPDispatcherHosts(attr.TPid, attr.Tenant, attr.ID)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = *rls[0]
}
+ *reply = *rls[0]
return nil
}
-//GetTPDispatcherHostIDs queries dispatcher host identities on specific tariff plan.
-func (self *APIerSv1) GetTPDispatcherHostIDs(attrs *AttrGetTPDispatcherIds, reply *[]string) error {
+// GetTPDispatcherHostIDs queries dispatcher host identities on specific tariff plan.
+func (api *APIerSv1) GetTPDispatcherHostIDs(attrs *AttrGetTPDispatcherIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if ids, err := self.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPDispatcherHosts, utils.TPDistinctIds{"id"},
- nil, &attrs.PaginatorWithSearch); err != nil {
+ ids, err := api.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPDispatcherHosts, utils.TPDistinctIds{"tenant", "id"},
+ nil, &attrs.PaginatorWithSearch)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = ids
}
+ *reply = ids
return nil
}
-//RemoveTPDispatcherHost removes specific DispatcherHost on Tariff plan
-func (self *APIerSv1) RemoveTPDispatcherHost(attrs *utils.TPTntID, reply *string) error {
+// RemoveTPDispatcherHost removes specific DispatcherHost on Tariff plan
+func (api *APIerSv1) RemoveTPDispatcherHost(attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.RemTpData(utils.TBLTPDispatcherHosts, attrs.TPid,
+ if err := api.StorDb.RemTpData(utils.TBLTPDispatcherHosts, attrs.TPid,
map[string]string{"tenant": attrs.Tenant, "id": attrs.ID}); err != nil {
return utils.NewErrServerError(err)
- } else {
- *reply = utils.OK
}
+ *reply = utils.OK
return nil
}
diff --git a/apier/v1/tpdispatchers_it_test.go b/apier/v1/tpdispatchers_it_test.go
index 3ffc75eb4..24ad31312 100644
--- a/apier/v1/tpdispatchers_it_test.go
+++ b/apier/v1/tpdispatchers_it_test.go
@@ -50,7 +50,7 @@ var sTestsTPDispatchers = []func(t *testing.T){
ttestTPDispatcherGetTPDispatcherBeforeSet,
testTPDispatcherSetTPDispatcher,
testTPDispatcherGetTPDispatcherAfterSet,
- testTPDispatcherGetFilterIds,
+ testTPDispatcherGetTPDispatcherIds,
testTPDispatcherUpdateTPDispatcher,
testTPDispatcherGetTPDispatcherAfterUpdate,
testTPDispatcherRemTPDispatcher,
@@ -59,22 +59,19 @@ var sTestsTPDispatchers = []func(t *testing.T){
}
//Test start here
-func TestTPDispatcherITMySql(t *testing.T) {
- tpDispatcherConfigDIR = "tutmysql"
- for _, stest := range sTestsTPDispatchers {
- t.Run(tpDispatcherConfigDIR, stest)
+func TestTPDispatcherIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpDispatcherConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpDispatcherConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpDispatcherConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ t.SkipNow()
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPDispatcherITMongo(t *testing.T) {
- tpDispatcherConfigDIR = "tutmongo"
- for _, stest := range sTestsTPDispatchers {
- t.Run(tpDispatcherConfigDIR, stest)
- }
-}
-
-func TestTPDispatcherITInternal(t *testing.T) {
- tpDispatcherConfigDIR = "tutinternal"
for _, stest := range sTestsTPDispatchers {
t.Run(tpDispatcherConfigDIR, stest)
}
@@ -157,9 +154,9 @@ func testTPDispatcherGetTPDispatcherAfterSet(t *testing.T) {
}
}
-func testTPDispatcherGetFilterIds(t *testing.T) {
+func testTPDispatcherGetTPDispatcherIds(t *testing.T) {
var result []string
- expectedTPID := []string{"Dsp1"}
+ expectedTPID := []string{"cgrates.org:Dsp1"}
if err := tpDispatcherRPC.Call(utils.APIerSv1GetTPDispatcherProfileIDs,
&AttrGetTPDispatcherIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
diff --git a/apier/v1/tpfilters.go b/apier/v1/tpfilters.go
index 65c942375..940dc8618 100644
--- a/apier/v1/tpfilters.go
+++ b/apier/v1/tpfilters.go
@@ -22,31 +22,31 @@ import (
"github.com/cgrates/cgrates/utils"
)
-// Creates a new FilterProfile within a tariff plan
-func (self *APIerSv1) SetTPFilterProfile(attrs *utils.TPFilterProfile, reply *string) error {
+// SetTPFilterProfile creates a new FilterProfile within a tariff plan
+func (api *APIerSv1) SetTPFilterProfile(attrs *utils.TPFilterProfile, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.SetTPFilters([]*utils.TPFilterProfile{attrs}); err != nil {
+ if err := api.StorDb.SetTPFilters([]*utils.TPFilterProfile{attrs}); err != nil {
return utils.NewErrServerError(err)
}
*reply = utils.OK
return nil
}
-// Queries specific FilterProfile on tariff plan
-func (self *APIerSv1) GetTPFilterProfile(attr *utils.TPTntID, reply *utils.TPFilterProfile) error {
+// GetTPFilterProfile queries specific FilterProfile on tariff plan
+func (api *APIerSv1) GetTPFilterProfile(attr *utils.TPTntID, reply *utils.TPFilterProfile) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if filter, err := self.StorDb.GetTPFilters(attr.TPid, attr.Tenant, attr.ID); err != nil {
+ filter, err := api.StorDb.GetTPFilters(attr.TPid, attr.Tenant, attr.ID)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = *filter[0]
}
+ *reply = *filter[0]
return nil
}
@@ -55,33 +55,32 @@ type AttrGetTPFilterProfileIds struct {
utils.PaginatorWithSearch
}
-// Queries FilterProfile identities on specific tariff plan.
-func (self *APIerSv1) GetTPFilterProfileIds(attrs *AttrGetTPFilterProfileIds, reply *[]string) error {
+// GetTPFilterProfileIds queries FilterProfile identities on specific tariff plan.
+func (api *APIerSv1) GetTPFilterProfileIds(attrs *AttrGetTPFilterProfileIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if ids, err := self.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPFilters, utils.TPDistinctIds{"id"},
- nil, &attrs.PaginatorWithSearch); err != nil {
+ ids, err := api.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPFilters, utils.TPDistinctIds{"tenant", "id"},
+ nil, &attrs.PaginatorWithSearch)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = ids
}
+ *reply = ids
return nil
}
-// Removes specific FilterProfile on Tariff plan
-func (self *APIerSv1) RemoveTPFilterProfile(attrs *utils.TPTntID, reply *string) error {
+// RemoveTPFilterProfile removes specific FilterProfile on Tariff plan
+func (api *APIerSv1) RemoveTPFilterProfile(attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.RemTpData(utils.TBLTPFilters, attrs.TPid,
+ if err := api.StorDb.RemTpData(utils.TBLTPFilters, attrs.TPid,
map[string]string{"tenant": attrs.Tenant, "id": attrs.ID}); err != nil {
return utils.NewErrServerError(err)
- } else {
- *reply = utils.OK
}
+ *reply = utils.OK
return nil
}
diff --git a/apier/v1/tpfilters_it_test.go b/apier/v1/tpfilters_it_test.go
index 77b2c3883..62b316392 100644
--- a/apier/v1/tpfilters_it_test.go
+++ b/apier/v1/tpfilters_it_test.go
@@ -62,28 +62,18 @@ var sTestsTPFilters = []func(t *testing.T){
//Test start here
func TestTPFilterITMySql(t *testing.T) {
- tpFilterConfigDIR = "tutmysql"
- for _, stest := range sTestsTPFilters {
- t.Run(tpFilterConfigDIR, stest)
+ switch *dbType {
+ case utils.MetaInternal:
+ tpFilterConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpFilterConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpFilterConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpFilterConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPFilterITMongo(t *testing.T) {
- tpFilterConfigDIR = "tutmongo"
- for _, stest := range sTestsTPFilters {
- t.Run(tpFilterConfigDIR, stest)
- }
-}
-
-func TestTPFilterITPG(t *testing.T) {
- tpFilterConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPFilters {
- t.Run(tpFilterConfigDIR, stest)
- }
-}
-
-func TestTPFilterITInternal(t *testing.T) {
- tpFilterConfigDIR = "tutinternal"
for _, stest := range sTestsTPFilters {
t.Run(tpFilterConfigDIR, stest)
}
@@ -175,7 +165,7 @@ func testTPFilterGetTPFilterAfterSet(t *testing.T) {
func testTPFilterGetFilterIds(t *testing.T) {
var result []string
- expectedTPID := []string{"Filter"}
+ expectedTPID := []string{"cgrates.org:Filter"}
if err := tpFilterRPC.Call(utils.APIerSv1GetTPFilterProfileIds,
&AttrGetTPFilterProfileIds{TPid: "TP1"}, &result); err != nil {
t.Error(err)
diff --git a/apier/v1/tprates_it_test.go b/apier/v1/tprates_it_test.go
index 010ce23c4..06809907d 100644
--- a/apier/v1/tprates_it_test.go
+++ b/apier/v1/tprates_it_test.go
@@ -59,29 +59,19 @@ var sTestsTPRates = []func(t *testing.T){
}
//Test start here
-func TestTPRatesITMySql(t *testing.T) {
- tpRateConfigDIR = "tutmysql"
- for _, stest := range sTestsTPRates {
- t.Run(tpRateConfigDIR, stest)
+func TestTPRatesIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpRateConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpRateConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpRateConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpRateConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPRatesITMongo(t *testing.T) {
- tpRateConfigDIR = "tutmongo"
- for _, stest := range sTestsTPRates {
- t.Run(tpRateConfigDIR, stest)
- }
-}
-
-func TestTPRatesITPG(t *testing.T) {
- tpRateConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPRates {
- t.Run(tpRateConfigDIR, stest)
- }
-}
-
-func TestTPRatesITInternal(t *testing.T) {
- tpRateConfigDIR = "tutinternal"
for _, stest := range sTestsTPRates {
t.Run(tpRateConfigDIR, stest)
}
diff --git a/apier/v1/tpratingplans_it_test.go b/apier/v1/tpratingplans_it_test.go
index 16b7694f0..0f32684cf 100644
--- a/apier/v1/tpratingplans_it_test.go
+++ b/apier/v1/tpratingplans_it_test.go
@@ -59,29 +59,19 @@ var sTestsTPRatingPlans = []func(t *testing.T){
}
//Test start here
-func TestTPRatingPlansITMySql(t *testing.T) {
- tpRatingPlanConfigDIR = "tutmysql"
- for _, stest := range sTestsTPRatingPlans {
- t.Run(tpRatingPlanConfigDIR, stest)
+func TestTPRatingPlansIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpRatingPlanConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpRatingPlanConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpRatingPlanConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpRatingPlanConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPRatingPlansITMongo(t *testing.T) {
- tpRatingPlanConfigDIR = "tutmongo"
- for _, stest := range sTestsTPRatingPlans {
- t.Run(tpRatingPlanConfigDIR, stest)
- }
-}
-
-func TestTPRatingPlansITPG(t *testing.T) {
- tpRatingPlanConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPRatingPlans {
- t.Run(tpRatingPlanConfigDIR, stest)
- }
-}
-
-func TestTPRatingPlansITInternal(t *testing.T) {
- tpRatingPlanConfigDIR = "tutinternal"
for _, stest := range sTestsTPRatingPlans {
t.Run(tpRatingPlanConfigDIR, stest)
}
diff --git a/apier/v1/tpratingprofiles_it_test.go b/apier/v1/tpratingprofiles_it_test.go
index 264a60035..d8a1ac15a 100644
--- a/apier/v1/tpratingprofiles_it_test.go
+++ b/apier/v1/tpratingprofiles_it_test.go
@@ -63,29 +63,19 @@ var sTestsTPRatingProfiles = []func(t *testing.T){
}
//Test start here
-func TestTPRatingProfilesITMySql(t *testing.T) {
- tpRatingProfileConfigDIR = "tutmysql"
- for _, stest := range sTestsTPRatingProfiles {
- t.Run(tpRatingProfileConfigDIR, stest)
+func TestTPRatingProfilesIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpRatingProfileConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpRatingProfileConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpRatingProfileConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpRatingProfileConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPRatingProfilesITMongo(t *testing.T) {
- tpRatingProfileConfigDIR = "tutmongo"
- for _, stest := range sTestsTPRatingProfiles {
- t.Run(tpRatingProfileConfigDIR, stest)
- }
-}
-
-func TestTPRatingProfilesITPG(t *testing.T) {
- tpRatingProfileConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPRatingProfiles {
- t.Run(tpRatingProfileConfigDIR, stest)
- }
-}
-
-func TestTPRatingProfilesITInternal(t *testing.T) {
- tpRatingProfileConfigDIR = "tutinternal"
for _, stest := range sTestsTPRatingProfiles {
t.Run(tpRatingProfileConfigDIR, stest)
}
diff --git a/apier/v1/tpresources_it_test.go b/apier/v1/tpresources_it_test.go
index 076f2c1b5..3d71384df 100644
--- a/apier/v1/tpresources_it_test.go
+++ b/apier/v1/tpresources_it_test.go
@@ -59,29 +59,19 @@ var sTestsTPResources = []func(t *testing.T){
}
//Test start here
-func TestTPResITMySql(t *testing.T) {
- tpResConfigDIR = "tutmysql"
- for _, stest := range sTestsTPResources {
- t.Run(tpResConfigDIR, stest)
+func TestTPResIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpResConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpResConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpResConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpResConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPResITMongo(t *testing.T) {
- tpResConfigDIR = "tutmongo"
- for _, stest := range sTestsTPResources {
- t.Run(tpResConfigDIR, stest)
- }
-}
-
-func TestTPResITPG(t *testing.T) {
- tpResConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPResources {
- t.Run(tpResConfigDIR, stest)
- }
-}
-
-func TestTPResITInternal(t *testing.T) {
- tpResConfigDIR = "tutinternal"
for _, stest := range sTestsTPResources {
t.Run(tpResConfigDIR, stest)
}
diff --git a/apier/v1/tpsharedgroups_it_test.go b/apier/v1/tpsharedgroups_it_test.go
index 99018d316..b4b792dc3 100644
--- a/apier/v1/tpsharedgroups_it_test.go
+++ b/apier/v1/tpsharedgroups_it_test.go
@@ -59,29 +59,19 @@ var sTestsTPSharedGroups = []func(t *testing.T){
}
//Test start here
-func TestTPSharedGroupsITMySql(t *testing.T) {
- tpSharedGroupConfigDIR = "tutmysql"
- for _, stest := range sTestsTPSharedGroups {
- t.Run(tpSharedGroupConfigDIR, stest)
+func TestTPSharedGroupsIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpSharedGroupConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpSharedGroupConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpSharedGroupConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpSharedGroupConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPSharedGroupsITMongo(t *testing.T) {
- tpSharedGroupConfigDIR = "tutmongo"
- for _, stest := range sTestsTPSharedGroups {
- t.Run(tpSharedGroupConfigDIR, stest)
- }
-}
-
-func TestTPSharedGroupsITPG(t *testing.T) {
- tpSharedGroupConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPSharedGroups {
- t.Run(tpSharedGroupConfigDIR, stest)
- }
-}
-
-func TestTPSharedGroupsITInternal(t *testing.T) {
- tpSharedGroupConfigDIR = "tutinternal"
for _, stest := range sTestsTPSharedGroups {
t.Run(tpSharedGroupConfigDIR, stest)
}
diff --git a/apier/v1/tpstats_it_test.go b/apier/v1/tpstats_it_test.go
index 93e601767..d0c8ad798 100644
--- a/apier/v1/tpstats_it_test.go
+++ b/apier/v1/tpstats_it_test.go
@@ -60,29 +60,19 @@ var sTestsTPStats = []func(t *testing.T){
}
//Test start here
-func TestTPStatITMySql(t *testing.T) {
- tpStatConfigDIR = "tutmysql"
- for _, stest := range sTestsTPStats {
- t.Run(tpStatConfigDIR, stest)
+func TestTPStatIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpStatConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpStatConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpStatConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpStatConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPStatITMongo(t *testing.T) {
- tpStatConfigDIR = "tutmongo"
- for _, stest := range sTestsTPStats {
- t.Run(tpStatConfigDIR, stest)
- }
-}
-
-func TestTPStatITPG(t *testing.T) {
- tpStatConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPStats {
- t.Run(tpStatConfigDIR, stest)
- }
-}
-
-func TestTPStatITInternal(t *testing.T) {
- tpStatConfigDIR = "tutinternal"
for _, stest := range sTestsTPStats {
t.Run(tpStatConfigDIR, stest)
}
diff --git a/apier/v1/tpsuppliers.go b/apier/v1/tpsuppliers.go
index 8491cee78..e5555d676 100644
--- a/apier/v1/tpsuppliers.go
+++ b/apier/v1/tpsuppliers.go
@@ -22,31 +22,31 @@ import (
"github.com/cgrates/cgrates/utils"
)
-// Creates a new SupplierProfile within a tariff plan
-func (self *APIerSv1) SetTPSupplierProfile(attrs *utils.TPSupplierProfile, reply *string) error {
+// SetTPSupplierProfile creates a new SupplierProfile within a tariff plan
+func (api *APIerSv1) SetTPSupplierProfile(attrs *utils.TPSupplierProfile, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.SetTPSuppliers([]*utils.TPSupplierProfile{attrs}); err != nil {
+ if err := api.StorDb.SetTPSuppliers([]*utils.TPSupplierProfile{attrs}); err != nil {
return utils.NewErrServerError(err)
}
*reply = utils.OK
return nil
}
-// Queries specific SupplierProfile on tariff plan
-func (self *APIerSv1) GetTPSupplierProfile(attr *utils.TPTntID, reply *utils.TPSupplierProfile) error {
+// GetTPSupplierProfile queries specific SupplierProfile on tariff plan
+func (api *APIerSv1) GetTPSupplierProfile(attr *utils.TPTntID, reply *utils.TPSupplierProfile) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if spp, err := self.StorDb.GetTPSuppliers(attr.TPid, attr.Tenant, attr.ID); err != nil {
+ spp, err := api.StorDb.GetTPSuppliers(attr.TPid, attr.Tenant, attr.ID)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = *spp[0]
}
+ *reply = *spp[0]
return nil
}
@@ -55,33 +55,32 @@ type AttrGetTPSupplierProfileIDs struct {
utils.PaginatorWithSearch
}
-// Queries SupplierProfile identities on specific tariff plan.
-func (self *APIerSv1) GetTPSupplierProfileIDs(attrs *AttrGetTPSupplierProfileIDs, reply *[]string) error {
+// GetTPSupplierProfileIDs queries SupplierProfile identities on specific tariff plan.
+func (api *APIerSv1) GetTPSupplierProfileIDs(attrs *AttrGetTPSupplierProfileIDs, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if ids, err := self.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPSuppliers,
- utils.TPDistinctIds{"id"}, nil, &attrs.PaginatorWithSearch); err != nil {
+ ids, err := api.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPSuppliers,
+ utils.TPDistinctIds{"tenant", "id"}, nil, &attrs.PaginatorWithSearch)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = ids
}
+ *reply = ids
return nil
}
-// Removes specific SupplierProfile on Tariff plan
-func (self *APIerSv1) RemoveTPSupplierProfile(attrs *utils.TPTntID, reply *string) error {
+// RemoveTPSupplierProfile removes specific SupplierProfile on Tariff plan
+func (api *APIerSv1) RemoveTPSupplierProfile(attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.RemTpData(utils.TBLTPSuppliers, attrs.TPid,
+ if err := api.StorDb.RemTpData(utils.TBLTPSuppliers, attrs.TPid,
map[string]string{"tenant": attrs.Tenant, "id": attrs.ID}); err != nil {
return utils.NewErrServerError(err)
- } else {
- *reply = utils.OK
}
+ *reply = utils.OK
return nil
}
diff --git a/apier/v1/tpsuppliers_it_test.go b/apier/v1/tpsuppliers_it_test.go
index fd5c050c8..9662355d0 100644
--- a/apier/v1/tpsuppliers_it_test.go
+++ b/apier/v1/tpsuppliers_it_test.go
@@ -61,22 +61,19 @@ var sTestsTPSplPrf = []func(t *testing.T){
}
//Test start here
-func TestTPSplPrfITMySql(t *testing.T) {
- tpSplPrfConfigDIR = "tutmysql"
- for _, stest := range sTestsTPSplPrf {
- t.Run(tpSplPrfConfigDIR, stest)
+func TestTPSplPrfIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpSplPrfConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpSplPrfConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpSplPrfConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ t.SkipNow()
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPSplPrfITMongo(t *testing.T) {
- tpSplPrfConfigDIR = "tutmongo"
- for _, stest := range sTestsTPSplPrf {
- t.Run(tpSplPrfConfigDIR, stest)
- }
-}
-
-func TestTPSplPrfITInternal(t *testing.T) {
- tpSplPrfConfigDIR = "tutinternal"
for _, stest := range sTestsTPSplPrf {
t.Run(tpSplPrfConfigDIR, stest)
}
@@ -178,7 +175,7 @@ func testTPSplPrfGetTPSplPrfAfterSet(t *testing.T) {
func testTPSplPrfGetTPSplPrfIDs(t *testing.T) {
var result []string
- expectedTPID := []string{"SUPL_1"}
+ expectedTPID := []string{"cgrates.org:SUPL_1"}
if err := tpSplPrfRPC.Call(utils.APIerSv1GetTPSupplierProfileIDs,
&AttrGetTPSupplierProfileIDs{TPid: "TP1"}, &result); err != nil {
t.Error(err)
diff --git a/apier/v1/tpthresholds.go b/apier/v1/tpthresholds.go
index 721ad58d2..619f5fe6b 100644
--- a/apier/v1/tpthresholds.go
+++ b/apier/v1/tpthresholds.go
@@ -22,31 +22,31 @@ import (
"github.com/cgrates/cgrates/utils"
)
-// Creates a new threshold within a tariff plan
-func (self *APIerSv1) SetTPThreshold(attr *utils.TPThresholdProfile, reply *string) error {
+// SetTPThreshold creates a new threshold within a tariff plan
+func (api *APIerSv1) SetTPThreshold(attr *utils.TPThresholdProfile, reply *string) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 {
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.SetTPThresholds([]*utils.TPThresholdProfile{attr}); err != nil {
+ if err := api.StorDb.SetTPThresholds([]*utils.TPThresholdProfile{attr}); err != nil {
return utils.APIErrorHandler(err)
}
*reply = utils.OK
return nil
}
-// Queries specific Threshold on Tariff plan
-func (self *APIerSv1) GetTPThreshold(attr *utils.TPTntID, reply *utils.TPThresholdProfile) error {
+// GetTPThreshold queries specific Threshold on Tariff plan
+func (api *APIerSv1) GetTPThreshold(attr *utils.TPTntID, reply *utils.TPThresholdProfile) error {
if missing := utils.MissingStructFields(attr, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if rls, err := self.StorDb.GetTPThresholds(attr.TPid, attr.Tenant, attr.ID); err != nil {
+ rls, err := api.StorDb.GetTPThresholds(attr.TPid, attr.Tenant, attr.ID)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = *rls[0]
}
+ *reply = *rls[0]
return nil
}
@@ -56,34 +56,33 @@ type AttrGetTPThresholdIds struct {
utils.PaginatorWithSearch
}
-// Queries Threshold identities on specific tariff plan.
-func (self *APIerSv1) GetTPThresholdIDs(attrs *AttrGetTPThresholdIds, reply *[]string) error {
+// GetTPThresholdIDs queries Threshold identities on specific tariff plan.
+func (api *APIerSv1) GetTPThresholdIDs(attrs *AttrGetTPThresholdIds, reply *[]string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if ids, err := self.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPThresholds,
- utils.TPDistinctIds{"id"}, nil, &attrs.PaginatorWithSearch); err != nil {
+ ids, err := api.StorDb.GetTpTableIds(attrs.TPid, utils.TBLTPThresholds,
+ utils.TPDistinctIds{"tenant", "id"}, nil, &attrs.PaginatorWithSearch)
+ if err != nil {
if err.Error() != utils.ErrNotFound.Error() {
err = utils.NewErrServerError(err)
}
return err
- } else {
- *reply = ids
}
+ *reply = ids
return nil
}
-// Removes specific Threshold on Tariff plan
-func (self *APIerSv1) RemoveTPThreshold(attrs *utils.TPTntID, reply *string) error {
+// RemoveTPThreshold removes specific Threshold on Tariff plan
+func (api *APIerSv1) RemoveTPThreshold(attrs *utils.TPTntID, reply *string) error {
if missing := utils.MissingStructFields(attrs, []string{"TPid", "Tenant", "ID"}); len(missing) != 0 { //Params missing
return utils.NewErrMandatoryIeMissing(missing...)
}
- if err := self.StorDb.RemTpData(utils.TBLTPThresholds, attrs.TPid,
+ if err := api.StorDb.RemTpData(utils.TBLTPThresholds, attrs.TPid,
map[string]string{"tenant": attrs.Tenant, "id": attrs.ID}); err != nil {
return utils.NewErrServerError(err)
- } else {
- *reply = utils.OK
}
+ *reply = utils.OK
return nil
}
diff --git a/apier/v1/tpthresholds_it_test.go b/apier/v1/tpthresholds_it_test.go
index 8d699be57..b490bd72b 100644
--- a/apier/v1/tpthresholds_it_test.go
+++ b/apier/v1/tpthresholds_it_test.go
@@ -60,29 +60,19 @@ var sTestsTPThreshold = []func(t *testing.T){
}
//Test start here
-func TestTPThresholdITMySql(t *testing.T) {
- tpThresholdConfigDIR = "tutmysql"
- for _, stest := range sTestsTPThreshold {
- t.Run(tpThresholdConfigDIR, stest)
+func TestTPThresholdIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpThresholdConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpThresholdConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpThresholdConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ tpThresholdConfigDIR = "tutpostgres"
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPThresholdITMongo(t *testing.T) {
- tpThresholdConfigDIR = "tutmongo"
- for _, stest := range sTestsTPThreshold {
- t.Run(tpThresholdConfigDIR, stest)
- }
-}
-
-func TestTPThresholdITPG(t *testing.T) {
- tpThresholdConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPThreshold {
- t.Run(tpThresholdConfigDIR, stest)
- }
-}
-
-func TestTPThresholdITInternal(t *testing.T) {
- tpThresholdConfigDIR = "tutinternal"
for _, stest := range sTestsTPThreshold {
t.Run(tpThresholdConfigDIR, stest)
}
@@ -174,7 +164,7 @@ func testTPThreholdGetTPThreholdAfterSet(t *testing.T) {
func testTPThreholdGetTPThreholdIds(t *testing.T) {
var result []string
- expectedTPID := []string{"Threshold"}
+ expectedTPID := []string{"cgrates.org:Threshold"}
if err := tpThresholdRPC.Call(utils.APIerSv1GetTPThresholdIDs,
&AttrGetTPThresholdIds{TPid: tpThreshold.TPid}, &result); err != nil {
t.Fatal(err)
diff --git a/apier/v1/tptimings_it_test.go b/apier/v1/tptimings_it_test.go
index fe74c4775..3f4936ec8 100644
--- a/apier/v1/tptimings_it_test.go
+++ b/apier/v1/tptimings_it_test.go
@@ -59,29 +59,19 @@ var sTestsTPTiming = []func(t *testing.T){
}
//Test start here
-func TestTPTimingITMySql(t *testing.T) {
- tpTimingConfigDIR = "tutmysql"
- for _, stest := range sTestsTPTiming {
- t.Run(tpTimingConfigDIR, stest)
+func TestTPTimingIT(t *testing.T) {
+ switch *dbType {
+ case utils.MetaInternal:
+ tpTimingConfigDIR = "tutinternal"
+ case utils.MetaMySQL:
+ tpTimingConfigDIR = "tutmysql"
+ case utils.MetaMongo:
+ tpTimingConfigDIR = "tutmongo"
+ case utils.MetaPostgres:
+ t.SkipNow()
+ default:
+ t.Fatal("Unknown Database type")
}
-}
-
-func TestTPTimingITMongo(t *testing.T) {
- tpTimingConfigDIR = "tutmongo"
- for _, stest := range sTestsTPTiming {
- t.Run(tpTimingConfigDIR, stest)
- }
-}
-
-func TestTPTimingITPG(t *testing.T) {
- tpTimingConfigDIR = "tutpostgres"
- for _, stest := range sTestsTPTiming {
- t.Run(tpTimingConfigDIR, stest)
- }
-}
-
-func TestTPTimingITInternal(t *testing.T) {
- tpTimingConfigDIR = "tutinternal"
for _, stest := range sTestsTPTiming {
t.Run(tpTimingConfigDIR, stest)
}
diff --git a/config/config_it_test.go b/config/config_it_test.go
index 14354e15c..f45444194 100644
--- a/config/config_it_test.go
+++ b/config/config_it_test.go
@@ -429,17 +429,17 @@ func testCGRConfigReloadERs(t *testing.T) {
flags, _ := utils.FlagsWithParamsFromSlice([]string{"*dryrun"})
flagsDefault, _ := utils.FlagsWithParamsFromSlice([]string{})
content := []*FCTemplate{
- &FCTemplate{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true},
- &FCTemplate{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true},
+ {Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true},
}
expAttr := &ERsCfg{
Enabled: true,
diff --git a/console/statqueue_set.go b/console/statqueue_set.go
index 2d7ed65b5..7fc97db36 100644
--- a/console/statqueue_set.go
+++ b/console/statqueue_set.go
@@ -19,7 +19,6 @@ along with this program. If not, see
package console
import (
- v1 "github.com/cgrates/cgrates/apier/v1"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
)
@@ -28,7 +27,7 @@ func init() {
c := &CmdSetStatQueue{
name: "statqueue_set",
rpcMethod: utils.APIerSv1SetStatQueueProfile,
- rpcParams: &v1.StatQueueWithCache{},
+ rpcParams: &engine.StatQueueWithCache{},
}
commands[c.Name()] = c
c.CommandExecuter = &CommandExecuter{c}
@@ -38,7 +37,7 @@ func init() {
type CmdSetStatQueue struct {
name string
rpcMethod string
- rpcParams *v1.StatQueueWithCache
+ rpcParams *engine.StatQueueWithCache
*CommandExecuter
}
@@ -52,7 +51,7 @@ func (self *CmdSetStatQueue) RpcMethod() string {
func (self *CmdSetStatQueue) RpcParams(reset bool) interface{} {
if reset || self.rpcParams == nil {
- self.rpcParams = &v1.StatQueueWithCache{StatQueueProfile: new(engine.StatQueueProfile)}
+ self.rpcParams = &engine.StatQueueWithCache{StatQueueProfile: new(engine.StatQueueProfile)}
}
return self.rpcParams
}
diff --git a/engine/actions_it_test.go b/engine/actions_it_test.go
index 905bd0a65..8465b1fbb 100644
--- a/engine/actions_it_test.go
+++ b/engine/actions_it_test.go
@@ -694,19 +694,21 @@ func testActionsitSetSDestinations(t *testing.T) {
}
// set a StatQueueProfile and simulate process event
- statConfig := &StatQueueProfile{
- Tenant: "cgrates.org",
- ID: "DistinctMetricProfile",
- QueueLength: 10,
- TTL: time.Duration(10) * time.Second,
- Metrics: []*MetricWithFilters{
- &MetricWithFilters{
- MetricID: utils.MetaDDC,
+ statConfig := &StatQueueWithCache{
+ StatQueueProfile: &StatQueueProfile{
+ Tenant: "cgrates.org",
+ ID: "DistinctMetricProfile",
+ QueueLength: 10,
+ TTL: time.Duration(10) * time.Second,
+ Metrics: []*MetricWithFilters{
+ &MetricWithFilters{
+ MetricID: utils.MetaDDC,
+ },
},
+ ThresholdIDs: []string{utils.META_NONE},
+ Stored: true,
+ Weight: 20,
},
- ThresholdIDs: []string{utils.META_NONE},
- Stored: true,
- Weight: 20,
}
if err := actsLclRpc.Call(utils.APIerSv1SetStatQueueProfile, statConfig, &reply); err != nil {
diff --git a/engine/caches.go b/engine/caches.go
index 3a3a52e81..e4860aae0 100644
--- a/engine/caches.go
+++ b/engine/caches.go
@@ -19,6 +19,7 @@ along with this program. If not, see
package engine
import (
+ "encoding/gob"
"fmt"
"sync"
"time"
@@ -33,6 +34,20 @@ var Cache *ltcache.TransCache
func init() {
InitCache(nil)
+
+ gob.Register(new(EventCost))
+
+ // StatMetrics
+ gob.Register(new(StatASR))
+ gob.Register(new(StatACD))
+ gob.Register(new(StatTCD))
+ gob.Register(new(StatACC))
+ gob.Register(new(StatTCC))
+ gob.Register(new(StatPDD))
+ gob.Register(new(StatDDC))
+ gob.Register(new(StatSum))
+ gob.Register(new(StatAverage))
+ gob.Register(new(StatDistinct))
}
// InitCache will instantiate the cache with specific or default configuraiton
diff --git a/engine/libstats.go b/engine/libstats.go
index 8ee3f4b6a..054cb18d8 100644
--- a/engine/libstats.go
+++ b/engine/libstats.go
@@ -48,6 +48,11 @@ func (sqp *StatQueueProfile) TenantID() string {
return utils.ConcatenatedKey(sqp.Tenant, sqp.ID)
}
+type StatQueueWithCache struct {
+ *StatQueueProfile
+ Cache *string
+}
+
type MetricWithFilters struct {
FilterIDs []string
MetricID string
@@ -128,18 +133,30 @@ type SQItem struct {
// StatQueue represents an individual stats instance
type StatQueue struct {
- sync.RWMutex // protect the elements from within
- Tenant string
- ID string
- SQItems []SQItem
- SQMetrics map[string]StatMetric
- MinItems int
- sqPrfl *StatQueueProfile
- dirty *bool // needs save
- ttl *time.Duration // timeToLeave, picked on each init
+ lk sync.RWMutex // protect the elements from within
+ Tenant string
+ ID string
+ SQItems []SQItem
+ SQMetrics map[string]StatMetric
+ MinItems int
+ sqPrfl *StatQueueProfile
+ dirty *bool // needs save
+ ttl *time.Duration // timeToLeave, picked on each init
}
-// SqID will compose the unique identifier for the StatQueue out of Tenant and ID
+// RLock only to implement sync.RWMutex methods
+func (sq *StatQueue) RLock() { sq.lk.RLock() }
+
+// RUnlock only to implement sync.RWMutex methods
+func (sq *StatQueue) RUnlock() { sq.lk.RUnlock() }
+
+// Lock only to implement sync.RWMutex methods
+func (sq *StatQueue) Lock() { sq.lk.Lock() }
+
+// Unlock only to implement sync.RWMutex methods
+func (sq *StatQueue) Unlock() { sq.lk.Unlock() }
+
+// TenantID will compose the unique identifier for the StatQueue out of Tenant and ID
func (sq *StatQueue) TenantID() string {
return utils.ConcatenatedKey(sq.Tenant, sq.ID)
}
diff --git a/engine/statmetrics.go b/engine/statmetrics.go
index cd6f74aee..60dc0fb97 100644
--- a/engine/statmetrics.go
+++ b/engine/statmetrics.go
@@ -59,7 +59,7 @@ func NewStatMetric(metricID string, minItems int, filterIDs []string) (sm StatMe
utils.MetaDistinct: NewStatDistinct,
}
// split the metricID
- // in case of *sum we have *sum:~FieldName
+ // in case of *sum we have *sum:~*req.FieldName
metricSplit := utils.SplitConcatenatedKey(metricID)
if _, has := metrics[metricSplit[0]]; !has {
return nil, fmt.Errorf("unsupported metric type <%s>", metricSplit[0])
@@ -1037,16 +1037,17 @@ func (sum *StatSum) GetFloat64Value() (v float64) {
func (sum *StatSum) AddEvent(ev *utils.CGREvent) (err error) {
var val float64
- if strings.HasPrefix(sum.FieldName, utils.DynamicDataPrefix) {
+ switch {
+ case strings.HasPrefix(sum.FieldName, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep): // ~*req.
//Remove the dynamic prefix and check in event for field
- field := sum.FieldName[1:]
+ field := sum.FieldName[6:]
if val, err = ev.FieldAsFloat64(field); err != nil {
if err == utils.ErrNotFound {
err = utils.ErrPrefix(err, field)
}
return
}
- } else { // in case we don't receive FieldName we consider that we receive a number
+ default:
val, err = utils.IfaceAsFloat64(sum.FieldName)
if err != nil {
return
@@ -1174,16 +1175,17 @@ func (avg *StatAverage) GetFloat64Value() (v float64) {
func (avg *StatAverage) AddEvent(ev *utils.CGREvent) (err error) {
var val float64
- if strings.HasPrefix(avg.FieldName, utils.DynamicDataPrefix) {
+ switch {
+ case strings.HasPrefix(avg.FieldName, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep): // ~*req.
//Remove the dynamic prefix and check in event for field
- field := avg.FieldName[1:]
+ field := avg.FieldName[6:]
if val, err = ev.FieldAsFloat64(field); err != nil {
if err == utils.ErrNotFound {
err = utils.ErrPrefix(err, field)
}
return
}
- } else { // in case we don't receive FieldName we consider that we receive a number
+ default:
val, err = utils.IfaceAsFloat64(avg.FieldName)
if err != nil {
return
@@ -1303,8 +1305,11 @@ func (dst *StatDistinct) GetFloat64Value() (v float64) {
func (dst *StatDistinct) AddEvent(ev *utils.CGREvent) (err error) {
var fieldValue string
- // simply remove the Dynamic prefix and do normal process
- field := dst.FieldName[1:]
+ // simply remove the ~*req. prefix and do normal process
+ if !strings.HasPrefix(dst.FieldName, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep) {
+ return fmt.Errorf("Invalid format for field <%s>", dst.FieldName)
+ }
+ field := dst.FieldName[6:]
if fieldValue, err = ev.FieldAsString(field); err != nil {
return err
}
diff --git a/general_tests/cdrs_it_test.go b/general_tests/cdrs_it_test.go
index 2bfa5525e..e262a423d 100644
--- a/general_tests/cdrs_it_test.go
+++ b/general_tests/cdrs_it_test.go
@@ -27,8 +27,6 @@ import (
"testing"
"time"
- v1 "github.com/cgrates/cgrates/apier/v1"
-
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
@@ -473,17 +471,15 @@ func testV2CDRsSetStats(t *testing.T) {
err.Error() != utils.ErrNotFound.Error() {
t.Error(err)
}
- statConfig := &v1.StatQueueWithCache{
+ statConfig := &engine.StatQueueWithCache{
StatQueueProfile: &engine.StatQueueProfile{
Tenant: "cgrates.org",
ID: "STS_PoccessCDR",
FilterIDs: []string{"*string:~*req.OriginID:testV2CDRsProcessCDR5"},
// QueueLength: 10,
- Metrics: []*engine.MetricWithFilters{
- &engine.MetricWithFilters{
- MetricID: "*sum:~Usage",
- },
- },
+ Metrics: []*engine.MetricWithFilters{{
+ MetricID: "*sum:~*req.Usage",
+ }},
ThresholdIDs: []string{utils.META_NONE},
Blocker: true,
Stored: true,
@@ -592,7 +588,7 @@ func testV2CDRsGetStats1(t *testing.T) {
expectedIDs := []string{"STS_PoccessCDR"}
var metrics map[string]string
expectedMetrics := map[string]string{
- utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): utils.NOT_AVAILABLE,
+ utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): utils.NOT_AVAILABLE,
}
if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{
@@ -659,7 +655,7 @@ func testV2CDRsGetStats2(t *testing.T) {
expectedIDs := []string{"STS_PoccessCDR"}
var metrics map[string]string
expectedMetrics := map[string]string{
- utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): "60000000000",
+ utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): "60000000000",
}
if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{
diff --git a/integration_test.sh b/integration_test.sh
index c40837e62..6e7fb00c5 100755
--- a/integration_test.sh
+++ b/integration_test.sh
@@ -31,6 +31,9 @@ smg_internal=$?
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*internal'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*internal
dis_internal=$?
+echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*internal'
+go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*internal
+offline_internal=$?
# SQL
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mysql
@@ -59,6 +62,9 @@ smg_mysql=$?
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mysql'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mysql
dis_mysql=$?
+echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mysql'
+go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mysql
+offline_mysql=$?
# Mongo
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*mongo
@@ -87,6 +93,9 @@ smg_mongo=$?
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mongo'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*mongo
dis_mongo=$?
+echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mongo'
+go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*mongo
+offline_mongo=$?
# Postgres
echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/apier/v1 -tags=integration -dbtype=*postgres
@@ -115,6 +124,9 @@ smg_postgres=$?
echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*postgres'
go test github.com/cgrates/cgrates/dispatchers -tags=integration -dbtype=*postgres
dis_postgres=$?
+echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*postgres'
+go test github.com/cgrates/cgrates/apier/v1 -tags=offline -dbtype=*postgres
+offline_postgres=$?
echo 'go test github.com/cgrates/cgrates/config -tags=integration'
go test github.com/cgrates/cgrates/config -tags=integration
@@ -125,10 +137,11 @@ mgr=$?
echo 'go test github.com/cgrates/cgrates/services -tags=integration'
go test github.com/cgrates/cgrates/services -tags=integration
srv=$?
-#All
-echo 'go test github.com/cgrates/cgrates/apier/v1 -tags=offline'
-go test github.com/cgrates/cgrates/apier/v1 -tags=offline
-offline=$?
-# to do: add '&& $ap1_internal'
-exit $gen && $ap1_sql && $ap1_mongo && $ap2 && $en && $cfg && $utl && $gnr && $agts && $smg && $mgr && $dis && $lds && $ers && $srv && $offline
+exit $gen && $ap1_internal && $ap2_internal && $en_internal && $ers_internal && $lds_internal &&
+$gnr_internal && $agts_internal && $smg_internal && $dis_internal && $offline_internal && $ap1_mysql &&
+$ap2_mysql && $en_mysql && $ers_mysql && $lds_mysql && $gnr_mysql && $agts_mysql && $smg_mysql &&
+$dis_mysql && $offline_mysql && $ap1_mongo && $ap2_mongo && $en_mongo && $ers_mongo && $lds_mongo &&
+$gnr_mongo && $agts_mongo && $smg_mongo && $dis_mongo && $offline_mongo && $ap1_postgres &&
+$ap2_postgres && $en_postgres && $ers_postgres && $lds_postgres && $gnr_postgres && $agts_postgres &&
+$smg_postgres && $dis_postgres && $offline_postgres && $cfg && $mgr && $srv
\ No newline at end of file
diff --git a/services/datadb_it_test.go b/services/datadb_it_test.go
index d1baf4253..f4351e569 100644
--- a/services/datadb_it_test.go
+++ b/services/datadb_it_test.go
@@ -82,103 +82,128 @@ func TestDataDBReload(t *testing.T) {
DataDbUser: "cgrates",
QueryTimeout: 10 * time.Second,
Items: map[string]*config.ItemOpt{
- utils.MetaAccounts: &config.ItemOpt{
+ utils.MetaAccounts: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaReverseDestinations: &config.ItemOpt{
+ utils.MetaReverseDestinations: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaDestinations: &config.ItemOpt{
+ utils.MetaDestinations: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaRatingPlans: &config.ItemOpt{
+ utils.MetaRatingPlans: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaRatingProfiles: &config.ItemOpt{
+ utils.MetaRatingProfiles: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaActions: &config.ItemOpt{
+ utils.MetaActions: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaActionPlans: &config.ItemOpt{
+ utils.MetaActionPlans: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaAccountActionPlans: &config.ItemOpt{
+ utils.MetaAccountActionPlans: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaActionTriggers: &config.ItemOpt{
+ utils.MetaActionTriggers: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaSharedGroups: &config.ItemOpt{
+ utils.MetaSharedGroups: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaTimings: &config.ItemOpt{
+ utils.MetaTimings: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaResourceProfile: &config.ItemOpt{
+ utils.MetaResourceProfile: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaStatQueues: &config.ItemOpt{
+ utils.MetaStatQueues: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaResources: &config.ItemOpt{
+ utils.MetaResources: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaStatQueueProfiles: &config.ItemOpt{
+ utils.MetaStatQueueProfiles: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaThresholds: &config.ItemOpt{
+ utils.MetaThresholds: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaThresholdProfiles: &config.ItemOpt{
+ utils.MetaThresholdProfiles: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaFilters: &config.ItemOpt{
+ utils.MetaFilters: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaSupplierProfiles: &config.ItemOpt{
+ utils.MetaSupplierProfiles: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaAttributeProfiles: &config.ItemOpt{
+ utils.MetaAttributeProfiles: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaDispatcherHosts: &config.ItemOpt{
+ utils.MetaDispatcherHosts: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaChargerProfiles: &config.ItemOpt{
+ utils.MetaChargerProfiles: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaDispatcherProfiles: &config.ItemOpt{
+ utils.MetaDispatcherProfiles: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaFilterIndexes: &config.ItemOpt{
+ utils.MetaFilterIndexes: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},
- utils.MetaLoadIDs: &config.ItemOpt{
+ utils.MetaLoadIDs: {
+ Limit: -1,
Replicate: false,
Remote: false,
TTL: time.Duration(0)},