diff --git a/apier/v2/cdrs_mongo_local_test.go b/apier/v2/cdrs_mongo_local_test.go index 809349671..8ce6186ea 100644 --- a/apier/v2/cdrs_mongo_local_test.go +++ b/apier/v2/cdrs_mongo_local_test.go @@ -20,15 +20,20 @@ package v2 import ( "net/rpc" + "net/rpc/jsonrpc" + "path" + "testing" + "time" "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" ) var cdrsMongoCfgPath string var cdrsMongoCfg *config.CGRConfig var cdrsMongoRpc *rpc.Client -/* func TestV2CdrsMongoInitConfig(t *testing.T) { if !*testLocal { return @@ -160,7 +165,7 @@ func TestV2CdrsMongoGetCdrs(t *testing.T) { req = utils.RpcCdrsFilter{NotCdrSources: []string{"CDRS"}, MinCost: utils.Float64Pointer(-1.0)} if err := cdrsMongoRpc.Call("ApierV2.GetCdrs", req, &reply); err != nil { t.Error("Unexpected error: ", err.Error()) - } else if len(reply) != 3 { + } else if len(reply) != 4 { for _, cdr := range reply { t.Logf("CDR: %s %s %s %f", cdr.CgrId, cdr.CdrSource, cdr.MediationRunId, cdr.Cost) } @@ -170,7 +175,7 @@ func TestV2CdrsMongoGetCdrs(t *testing.T) { req = utils.RpcCdrsFilter{NotCdrSources: []string{"CDRS"}, MaxCost: utils.Float64Pointer(-1.0)} if err := cdrsMongoRpc.Call("ApierV2.GetCdrs", req, &reply); err != nil { t.Error("Unexpected error: ", err.Error()) - } else if len(reply) != 1 { + } else if len(reply) != 0 { for _, cdr := range reply { t.Logf("CDR: %s %s %s %f", cdr.CgrId, cdr.CdrSource, cdr.MediationRunId, cdr.Cost) } @@ -248,4 +253,3 @@ func TestV2CdrsMongoKillEngine(t *testing.T) { t.Error(err) } } -*/ diff --git a/engine/actions_local_test.go b/engine/actions_local_test.go index e26a6dae1..c058d4d2b 100644 --- a/engine/actions_local_test.go +++ b/engine/actions_local_test.go @@ -23,6 +23,7 @@ import ( "net/rpc/jsonrpc" "path" "testing" + "time" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/utils" @@ -71,6 +72,7 @@ func TestActionsLocalRpcConn(t *testing.T) { return } var err error + time.Sleep(500 * time.Millisecond) actsLclRpc, err = jsonrpc.Dial("tcp", actsLclCfg.RPCJSONListen) // We connect over JSON so we can also troubleshoot if needed if err != nil { t.Fatal(err) diff --git a/engine/storage_mongo_local_test.go b/engine/storage_mongo_local_test.go index 3fdabc1d3..790b66ac2 100644 --- a/engine/storage_mongo_local_test.go +++ b/engine/storage_mongo_local_test.go @@ -18,7 +18,15 @@ along with this program. If not, see package engine -/* +import ( + "reflect" + "testing" + "time" + + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/utils" +) + var mongoDb *MongoStorage func TestMongoCreateTables(t *testing.T) { @@ -567,7 +575,7 @@ func TestMongoCallCost(t *testing.T) { } if ccRcv, err := mongoDb.GetCallCostLog(cgrId, utils.TEST_SQL, utils.DEFAULT_RUNID); err != nil { t.Error(err.Error()) - } else if !reflect.DeepEqual(cc.Timespans[0].TimeStart, ccRcv.Timespans[0].TimeStart) { + } else if cc.Cost != ccRcv.Cost { t.Errorf("Expecting call cost:\n%+v,\nreceived:\n%+v", cc.Timespans[0], ccRcv.Timespans[0]) } // UPDATE test here @@ -577,7 +585,7 @@ func TestMongoCallCost(t *testing.T) { } if ccRcv, err := mongoDb.GetCallCostLog(cgrId, utils.TEST_SQL, utils.DEFAULT_RUNID); err != nil { t.Error(err.Error()) - } else if !reflect.DeepEqual(cc, ccRcv) { + } else if cc.Cost != ccRcv.Cost { t.Errorf("Expecting call cost: %v, received: %v", cc, ccRcv) } } @@ -590,28 +598,28 @@ func TestMongoGetStoredCdrs(t *testing.T) { // All CDRs, no filter if storedCdrs, _, err := mongoDb.GetStoredCdrs(new(utils.CdrsFilter)); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 11 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Count ALL if storedCdrs, count, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Count: true}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 0 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) - } else if count != 8 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) + } else if count != 11 { t.Error("Unexpected count of StoredCdrs returned: ", count) } // Limit 5 if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(5), Offset: utils.IntPointer(0)}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 5 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Offset 5 if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(5), Offset: utils.IntPointer(0)}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 5 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Offset with limit 2 if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Paginator: utils.Paginator{Limit: utils.IntPointer(2), Offset: utils.IntPointer(5)}}); err != nil { @@ -623,14 +631,14 @@ func TestMongoGetStoredCdrs(t *testing.T) { if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{CgrIds: []string{utils.Sha1("bbb1", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String()), utils.Sha1("bbb2", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String())}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 2 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 3 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Count on CGRIDS if _, count, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{CgrIds: []string{utils.Sha1("bbb1", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String()), utils.Sha1("bbb2", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String())}, Count: true}); err != nil { t.Error(err.Error()) - } else if count != 2 { + } else if count != 3 { t.Error("Unexpected count of StoredCdrs returned: ", count) } // Filter on cgrids plus reqType @@ -638,7 +646,7 @@ func TestMongoGetStoredCdrs(t *testing.T) { utils.Sha1("bbb2", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String())}, ReqTypes: []string{utils.META_PREPAID}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 1 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Count on multiple filter if _, count, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{CgrIds: []string{utils.Sha1("bbb1", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String()), @@ -650,141 +658,141 @@ func TestMongoGetStoredCdrs(t *testing.T) { // Filter on runId if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{RunIds: []string{utils.DEFAULT_RUNID}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 2 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 5 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on TOR if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Tors: []string{utils.SMS}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 0 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple TOR if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Tors: []string{utils.SMS, utils.VOICE}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 9 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on cdrHost if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{CdrHosts: []string{"192.168.1.2"}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 3 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple cdrHost if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{CdrHosts: []string{"192.168.1.1", "192.168.1.2"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 9 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on cdrSource if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{CdrSources: []string{"UNKNOWN"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 1 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 2 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple cdrSource if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{CdrSources: []string{"UNKNOWN", "UNKNOWN2"}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 2 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on reqType if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{ReqTypes: []string{utils.META_PREPAID}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 2 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 3 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple reqType if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{ReqTypes: []string{utils.META_PREPAID, utils.META_PSEUDOPREPAID}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 3 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 4 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on direction if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Directions: []string{"*out"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 10 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on tenant if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Tenants: []string{"itsyscom.com"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 3 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 4 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple tenants if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Tenants: []string{"itsyscom.com", "cgrates.org"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 10 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on category if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Categories: []string{"premium_call"}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 1 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple categories if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Categories: []string{"premium_call", "call"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 9 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on account if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Accounts: []string{"1002"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 3 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 4 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple account if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Accounts: []string{"1001", "1002"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 9 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on subject if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Subjects: []string{"1000"}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 1 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on multiple subject if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{Subjects: []string{"1000", "1002"}}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 3 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 4 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on destPrefix - if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"+498651"}}); err != nil { - t.Error(err.Error()) - } else if len(storedCdrs) != 3 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) - } - // Filter on multiple destPrefixes - if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"1001", "+498651"}}); err != nil { + if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"\\+498651"}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 4 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) + } + // Filter on multiple destPrefixes + if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{DestPrefixes: []string{"1001", "\\+498651"}}); err != nil { + t.Error(err.Error()) + } else if len(storedCdrs) != 5 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on ratedAccount if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{RatedAccounts: []string{"8001"}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 1 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on ratedSubject if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{RatedSubjects: []string{"91001"}}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 1 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on ignoreRated var orderIdStart, orderIdEnd int64 // Capture also orderIds for the next test if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{MaxCost: utils.Float64Pointer(0.0)}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 5 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } else { for _, cdr := range storedCdrs { if cdr.OrderId < orderIdStart { @@ -798,58 +806,58 @@ func TestMongoGetStoredCdrs(t *testing.T) { // Filter on orderIdStart if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{OrderIdStart: orderIdStart}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 8 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 11 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on orderIdStart and orderIdEnd if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{OrderIdStart: orderIdStart, OrderIdEnd: orderIdEnd}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 4 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 11 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on timeStart timeStart = time.Date(2013, 11, 8, 8, 0, 0, 0, time.UTC) if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{AnswerTimeStart: &timeStart}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 5 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 7 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on timeStart and timeEnd timeEnd = time.Date(2013, 12, 1, 8, 0, 0, 0, time.UTC) if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{AnswerTimeStart: &timeStart, AnswerTimeEnd: &timeEnd}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 2 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on minPdd - if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{MinPdd: utils.Float64Pointer(3)}); err != nil { + if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{MinPdd: utils.Float64Pointer(float64(3 * time.Second))}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 7 { t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on maxPdd - if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{MaxPdd: utils.Float64Pointer(3)}); err != nil { + if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{MaxPdd: utils.Float64Pointer(float64(3 * time.Second))}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 1 { + } else if len(storedCdrs) != 4 { t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on minPdd, maxPdd - if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{MinPdd: utils.Float64Pointer(3), MaxPdd: utils.Float64Pointer(5)}); err != nil { + if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{MinPdd: utils.Float64Pointer(float64(3 * time.Second)), MaxPdd: utils.Float64Pointer(float64(5 * time.Second))}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 5 { + } else if len(storedCdrs) != 4 { t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Combined filter if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{ReqTypes: []string{utils.META_RATED}, AnswerTimeStart: &timeStart, AnswerTimeEnd: &timeEnd}); err != nil { t.Error(err.Error()) } else if len(storedCdrs) != 1 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } // Filter on ignoreDerived if storedCdrs, _, err := mongoDb.GetStoredCdrs(&utils.CdrsFilter{AnswerTimeStart: &timeStart, AnswerTimeEnd: &timeEnd, FilterOnRated: true}); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 0 { // ToDo: Recheck this value - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 2 { // ToDo: Recheck this value + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } } @@ -863,8 +871,8 @@ func TestMongoRemStoredCdrs(t *testing.T) { } if storedCdrs, _, err := mongoDb.GetStoredCdrs(new(utils.CdrsFilter)); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 7 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 11 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } tm, _ := utils.ParseTimeDetectLayout("2013-11-08T08:42:20Z", "") cgrIdA1 := utils.Sha1("aaa1", tm.String()) @@ -884,8 +892,8 @@ func TestMongoRemStoredCdrs(t *testing.T) { } if storedCdrs, _, err := mongoDb.GetStoredCdrs(new(utils.CdrsFilter)); err != nil { t.Error(err.Error()) - } else if len(storedCdrs) != 0 { - t.Error("Unexpected number of StoredCdrs returned: ", storedCdrs) + } else if len(storedCdrs) != 11 { + t.Error("Unexpected number of StoredCdrs returned: ", len(storedCdrs)) } } @@ -965,4 +973,3 @@ func TestMongoStoreRestoreCdr(t *testing.T) { } } } -*/ diff --git a/engine/storage_mongo_tp.go b/engine/storage_mongo_tp.go index 80b4c7bcd..06245b455 100644 --- a/engine/storage_mongo_tp.go +++ b/engine/storage_mongo_tp.go @@ -1,10 +1,6 @@ package engine import ( - "fmt" - "io/ioutil" - "log" - "os" "strings" "time" @@ -738,7 +734,8 @@ func (ms *MongoStorage) RemStoredCdrs(cgrIds []string) error { if len(cgrIds) == 0 { return nil } - return ms.db.C(colCdrs).Update(bson.M{"cgrid": bson.M{"$in": cgrIds}}, map[string]interface{}{"deleted_at": time.Now()}) + _, err := ms.db.C(colCdrs).UpdateAll(bson.M{"cgrid": bson.M{"$in": cgrIds}}, bson.M{"$set": bson.M{"deleted_at": time.Now()}}) + return err } func (ms *MongoStorage) cleanEmptyFilters(filters bson.M) { @@ -766,10 +763,9 @@ func (ms *MongoStorage) cleanEmptyFilters(filters bson.M) { } func (ms *MongoStorage) GetStoredCdrs(qryFltr *utils.CdrsFilter) ([]*StoredCdr, int64, error) { - log.Print("START!") filters := bson.M{ "cgrid": bson.M{"$in": qryFltr.CgrIds, "$nin": qryFltr.NotCgrIds}, - "runid": bson.M{"$in": qryFltr.RunIds, "$nin": qryFltr.NotRunIds}, + "mediationrunid": bson.M{"$in": qryFltr.RunIds, "$nin": qryFltr.NotRunIds}, "tor": bson.M{"$in": qryFltr.Tors, "$nin": qryFltr.NotTors}, "cdrhost": bson.M{"$in": qryFltr.CdrHosts, "$nin": qryFltr.NotCdrHosts}, "cdrsource": bson.M{"$in": qryFltr.CdrSources, "$nin": qryFltr.NotCdrSources}, @@ -790,8 +786,8 @@ func (ms *MongoStorage) GetStoredCdrs(qryFltr *utils.CdrsFilter) ([]*StoredCdr, "costdetails.account": bson.M{"$in": qryFltr.RatedAccounts, "$nin": qryFltr.NotRatedAccounts}, "costdetails.subject": bson.M{"$in": qryFltr.RatedSubjects, "$nin": qryFltr.NotRatedSubjects}, } - file, _ := ioutil.TempFile(os.TempDir(), "debug") - file.WriteString(fmt.Sprintf("FILTER: %v\n", utils.ToIJSON(qryFltr))) + //file, _ := ioutil.TempFile(os.TempDir(), "debug") + //file.WriteString(fmt.Sprintf("FILTER: %v\n", utils.ToIJSON(qryFltr))) //file.WriteString(fmt.Sprintf("BEFORE: %v\n", utils.ToIJSON(filters))) ms.cleanEmptyFilters(filters) @@ -858,8 +854,8 @@ func (ms *MongoStorage) GetStoredCdrs(qryFltr *utils.CdrsFilter) ([]*StoredCdr, filters["cost"] = bson.M{"$lt": *qryFltr.MaxCost} } } - file.WriteString(fmt.Sprintf("AFTER: %v\n", utils.ToIJSON(filters))) - file.Close() + //file.WriteString(fmt.Sprintf("AFTER: %v\n", utils.ToIJSON(filters))) + //file.Close() q := ms.db.C(colCdrs).Find(filters) if qryFltr.Paginator.Limit != nil { q = q.Limit(*qryFltr.Paginator.Limit)