diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go index 59af15075..388b428c4 100644 --- a/engine/storage_mongo_datadb.go +++ b/engine/storage_mongo_datadb.go @@ -41,7 +41,6 @@ import ( "github.com/mongodb/mongo-go-driver/mongo" "github.com/mongodb/mongo-go-driver/mongo/options" "github.com/mongodb/mongo-go-driver/x/bsonx" - "github.com/mongodb/mongo-go-driver/x/mongo/driver/topology" ) const ( @@ -143,16 +142,7 @@ func NewMongoStorage(host, port, db, user, pass, storageType string, cdrsIndexes ctx := context.Background() url = "mongodb://" + url reg := bson.NewRegistryBuilder().RegisterDecoder(tTime, bsoncodec.ValueDecoderFunc(TimeDecodeValue1)).Build() - opt := &options.ClientOptions{ - Registry: reg, - TopologyOptions: []topology.Option{ - topology.WithServerOptions(func(opts ...topology.ServerOption) []topology.ServerOption { - return []topology.ServerOption{ - topology.WithRegistry(func(r *bsoncodec.Registry) *bsoncodec.Registry { return reg }), - } - }), - }, - } + opt := options.Client().SetRegistry(reg) client, err := mongo.NewClientWithOptions(url, opt) // client, err := mongo.NewClient(url) @@ -175,7 +165,7 @@ func NewMongoStorage(host, port, db, user, pass, storageType string, cdrsIndexes isDataDB: isDataDB, } if err = ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) error { - if col, err := ms.client.Database(dbName).ListCollections(sctx, nil, options.ListCollections().SetNameOnly(true)); err != nil { + if col, err := ms.client.Database(dbName).ListCollections(sctx, bson.D{}, options.ListCollections().SetNameOnly(true)); err != nil { return err } else { empty := true @@ -225,14 +215,14 @@ func (ms *MongoStorage) IsDataDB() bool { func (ms *MongoStorage) EnusureIndex(colName string, uniq bool, keys ...string) error { return ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) error { col := ms.getCol(colName) - io := mongo.NewIndexOptionsBuilder().Unique(uniq) + io := options.Index().SetUnique(uniq) var doc bsonx.Doc for _, k := range keys { doc = doc.Append(k, bsonx.Int32(1)) } _, err := col.Indexes().CreateOne(sctx, mongo.IndexModel{ Keys: doc, - Options: io.Build(), + Options: io, }) return err }) @@ -523,7 +513,7 @@ func (ms *MongoStorage) RemoveReverseForPrefix(prefix string) (err error) { // IsDBEmpty implementation func (ms *MongoStorage) IsDBEmpty() (resp bool, err error) { err = ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) error { - col, err := ms.DB().ListCollections(sctx, nil) + col, err := ms.DB().ListCollections(sctx, bson.D{}) if err != nil { return err } @@ -1151,7 +1141,7 @@ func (ms *MongoStorage) GetSubscribersDrv() (result map[string]*SubscriberData, Value *SubscriberData } if err = ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) (err error) { - cur, err := ms.getCol(colPbs).Find(sctx, nil) + cur, err := ms.getCol(colPbs).Find(sctx, bson.D{}) if err != nil { return err } @@ -1214,7 +1204,7 @@ func (ms *MongoStorage) GetUserDrv(key string) (up *UserProfile, err error) { func (ms *MongoStorage) GetUsersDrv() (result []*UserProfile, err error) { err = ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) (err error) { - cur, err := ms.getCol(colUsr).Find(sctx, nil) + cur, err := ms.getCol(colUsr).Find(sctx, bson.D{}) if err != nil { return err } @@ -1802,7 +1792,7 @@ func (ms *MongoStorage) PopTask() (t *Task, err error) { Task *Task }{} if err = ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) (err error) { - cur := ms.getCol(colTsk).FindOneAndDelete(sctx, nil) + cur := ms.getCol(colTsk).FindOneAndDelete(sctx, bson.D{}) if err := cur.Decode(&v); err != nil { if err == mongo.ErrNoDocuments { return utils.ErrNotFound diff --git a/engine/storage_mongo_stordb.go b/engine/storage_mongo_stordb.go index 55427076d..9e717b871 100644 --- a/engine/storage_mongo_stordb.go +++ b/engine/storage_mongo_stordb.go @@ -36,7 +36,7 @@ import ( func (ms *MongoStorage) GetTpIds(colName string) (tpids []string, err error) { getTpIDs := func(ctx context.Context, col string, tpMap map[string]struct{}) (map[string]struct{}, error) { if strings.HasPrefix(col, "tp_") { - result, err := ms.getCol(col).Distinct(ctx, "tpid", nil) + result, err := ms.getCol(col).Distinct(ctx, "tpid", bson.D{}) if err != nil { return tpMap, err } @@ -50,7 +50,7 @@ func (ms *MongoStorage) GetTpIds(colName string) (tpids []string, err error) { if colName == "" { if err := ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) error { - col, err := ms.DB().ListCollections(sctx, nil, options.ListCollections().SetNameOnly(true)) + col, err := ms.DB().ListCollections(sctx, bson.D{}, options.ListCollections().SetNameOnly(true)) if err != nil { return err } @@ -671,7 +671,7 @@ func (ms *MongoStorage) GetTPAccountActions(tp *utils.TPAccountActions) ([]*util func (ms *MongoStorage) RemTpData(table, tpid string, args map[string]string) error { if len(table) == 0 { // Remove tpid out of all tables return ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) error { - col, err := ms.DB().ListCollections(sctx, nil, options.ListCollections().SetNameOnly(true)) + col, err := ms.DB().ListCollections(sctx, bson.D{}, options.ListCollections().SetNameOnly(true)) if err != nil { return err } @@ -1616,7 +1616,7 @@ func (ms *MongoStorage) GetVersions(itm string) (vrs Versions, err error) { fop.SetProjection(bson.M{"_id": 0}) } if err = ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) (err error) { - cur := ms.getCol(colVer).FindOne(sctx, nil, fop) + cur := ms.getCol(colVer).FindOne(sctx, bson.D{}, fop) if err := cur.Decode(&vrs); err != nil { if err == mongo.ErrNoDocuments { return utils.ErrNotFound @@ -1638,7 +1638,7 @@ func (ms *MongoStorage) SetVersions(vrs Versions, overwrite bool) (err error) { ms.RemoveVersions(nil) } return ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) (err error) { - _, err = ms.getCol(colVer).UpdateOne(sctx, nil, bson.M{"$set": vrs}, + _, err = ms.getCol(colVer).UpdateOne(sctx, bson.D{}, bson.M{"$set": vrs}, options.Update().SetUpsert(true), ) return err @@ -1654,7 +1654,7 @@ func (ms *MongoStorage) SetVersions(vrs Versions, overwrite bool) (err error) { func (ms *MongoStorage) RemoveVersions(vrs Versions) (err error) { if len(vrs) == 0 { return ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) (err error) { - dr, err := ms.getCol(colVer).DeleteOne(sctx, nil) + dr, err := ms.getCol(colVer).DeleteOne(sctx, bson.D{}) if dr.DeletedCount == 0 { return utils.ErrNotFound } @@ -1663,7 +1663,7 @@ func (ms *MongoStorage) RemoveVersions(vrs Versions) (err error) { } return ms.client.UseSession(ms.ctx, func(sctx mongo.SessionContext) (err error) { for k := range vrs { - if _, err = ms.getCol(colVer).UpdateOne(sctx, nil, bson.M{"$unset": bson.M{k: 1}}, + if _, err = ms.getCol(colVer).UpdateOne(sctx, bson.D{}, bson.M{"$unset": bson.M{k: 1}}, options.Update().SetUpsert(true)); err != nil { return err } diff --git a/glide.lock b/glide.lock index 5a840595c..8b7dc31e7 100644 --- a/glide.lock +++ b/glide.lock @@ -97,7 +97,7 @@ imports: - name: github.com/fsnotify/fsnotify version: ccc981bf80385c528a65fbfdd49bf2d8da22aa23 - name: github.com/mongodb/mongo-go-driver - version: 30999752086b83f8191ea5e6eb526a8bd63508cc + version: 4f3b0a882e7d5f83c3d1ab4d0e530a51642fce03 subpackages: - bson - bson/bsoncodec diff --git a/migrator/storage_mongo_datadb.go b/migrator/storage_mongo_datadb.go index dd1f040d2..927707b9d 100644 --- a/migrator/storage_mongo_datadb.go +++ b/migrator/storage_mongo_datadb.go @@ -65,7 +65,7 @@ func (mgoMig *mongoMigrator) DataManager() *engine.DataManager { func (v1ms *mongoMigrator) getv1Account() (v1Acnt *v1Account, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(v1AccountDBPrefix).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(v1AccountDBPrefix).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -86,7 +86,9 @@ func (v1ms *mongoMigrator) getv1Account() (v1Acnt *v1Account, err error) { //set func (v1ms *mongoMigrator) setV1Account(x *v1Account) (err error) { - _, err = v1ms.mgoDB.DB().Collection(v1AccountDBPrefix).InsertOne(v1ms.mgoDB.GetContext(), x) + if x != nil { + _, err = v1ms.mgoDB.DB().Collection(v1AccountDBPrefix).InsertOne(v1ms.mgoDB.GetContext(), x) + } return } @@ -101,7 +103,7 @@ func (v1ms *mongoMigrator) remV1Account(id string) (err error) { func (v1ms *mongoMigrator) getv2Account() (v2Acnt *v2Account, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(v2AccountsCol).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(v2AccountsCol).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -121,7 +123,9 @@ func (v1ms *mongoMigrator) getv2Account() (v2Acnt *v2Account, err error) { //set func (v1ms *mongoMigrator) setV2Account(x *v2Account) (err error) { - _, err = v1ms.mgoDB.DB().Collection(v2AccountsCol).InsertOne(v1ms.mgoDB.GetContext(), x) + if x != nil { + _, err = v1ms.mgoDB.DB().Collection(v2AccountsCol).InsertOne(v1ms.mgoDB.GetContext(), x) + } return } @@ -137,7 +141,7 @@ func (v1ms *mongoMigrator) getV1ActionPlans() (v1aps *v1ActionPlans, err error) strct := new(AtKeyValue) if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection("actiontimings").Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection("actiontimings").Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -167,7 +171,7 @@ func (v1ms *mongoMigrator) getV1Actions() (v1acs *v1Actions, err error) { strct := new(AcKeyValue) if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection("actions").Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection("actions").Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -207,7 +211,7 @@ func (v1ms *mongoMigrator) setV1ActionTriggers(x *v1ActionTriggers) (err error) func (v1ms *mongoMigrator) getV1SharedGroup() (v1sg *v1SharedGroup, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(utils.SHARED_GROUP_PREFIX).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(utils.SHARED_GROUP_PREFIX).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -236,7 +240,7 @@ func (v1ms *mongoMigrator) setV1SharedGroup(x *v1SharedGroup) (err error) { func (v1ms *mongoMigrator) getV1Stats() (v1st *v1Stat, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(utils.CDR_STATS_PREFIX).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(utils.CDR_STATS_PREFIX).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -265,7 +269,7 @@ func (v1ms *mongoMigrator) setV1Stats(x *v1Stat) (err error) { func (v1ms *mongoMigrator) getV2ActionTrigger() (v2at *v2ActionTrigger, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(v1ActionTriggersCol).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(v1ActionTriggersCol).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -294,7 +298,7 @@ func (v1ms *mongoMigrator) setV2ActionTrigger(x *v2ActionTrigger) (err error) { func (v1ms *mongoMigrator) getV1AttributeProfile() (v1attrPrf *v1AttributeProfile, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(v1AttributeProfilesCol).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(v1AttributeProfilesCol).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -323,7 +327,7 @@ func (v1ms *mongoMigrator) setV1AttributeProfile(x *v1AttributeProfile) (err err func (v1ms *mongoMigrator) getV2ThresholdProfile() (v2T *v2Threshold, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(v2ThresholdProfileCol).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(v2ThresholdProfileCol).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } diff --git a/migrator/storage_mongo_stordb.go b/migrator/storage_mongo_stordb.go index f7f02e800..0fd0715b4 100644 --- a/migrator/storage_mongo_stordb.go +++ b/migrator/storage_mongo_stordb.go @@ -48,7 +48,7 @@ func (mgoMig *mongoStorDBMigrator) StorDB() engine.StorDB { func (v1ms *mongoStorDBMigrator) getV1CDR() (v1Cdr *v1Cdrs, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(engine.ColCDRs).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(engine.ColCDRs).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -93,7 +93,7 @@ func (v1ms *mongoStorDBMigrator) createV1SMCosts() (err error) { func (v1ms *mongoStorDBMigrator) getV2SMCost() (v2Cost *v2SessionsCost, err error) { if v1ms.cursor == nil { var cursor mongo.Cursor - cursor, err = v1ms.mgoDB.DB().Collection(utils.SessionsCostsTBL).Find(v1ms.mgoDB.GetContext(), nil) + cursor, err = v1ms.mgoDB.DB().Collection(utils.SessionsCostsTBL).Find(v1ms.mgoDB.GetContext(), bson.D{}) if err != nil { return nil, err } @@ -119,6 +119,6 @@ func (v1ms *mongoStorDBMigrator) setV2SMCost(v2Cost *v2SessionsCost) (err error) //remove func (v1ms *mongoStorDBMigrator) remV2SMCost(v2Cost *v2SessionsCost) (err error) { - _, err = v1ms.mgoDB.DB().Collection(utils.SessionsCostsTBL).DeleteMany(v1ms.mgoDB.GetContext(), nil) + _, err = v1ms.mgoDB.DB().Collection(utils.SessionsCostsTBL).DeleteMany(v1ms.mgoDB.GetContext(), bson.D{}) return }