mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-22 07:38:45 +05:00
Add support for Mongo for different Marshaler
This commit is contained in:
committed by
Dan Christian Bogos
parent
834d842bc3
commit
c7b7740c27
@@ -98,6 +98,7 @@ func testActionsInitCdrsStore(t *testing.T) {
|
||||
if actsCdrStore, err = NewMongoStorage(actsCfg.StorDbCfg().Host,
|
||||
actsCfg.StorDbCfg().Port, actsCfg.StorDbCfg().Name,
|
||||
actsCfg.StorDbCfg().User, actsCfg.StorDbCfg().Password,
|
||||
actsCfg.GeneralCfg().DBDataEncoding,
|
||||
utils.StorDB, nil, false); err != nil {
|
||||
t.Fatal("Could not connect to mongo", err.Error())
|
||||
}
|
||||
|
||||
@@ -66,6 +66,7 @@ func TestDMitinitDB(t *testing.T) {
|
||||
dataDB, err = NewMongoStorage(mgoITCfg.StorDbCfg().Host,
|
||||
mgoITCfg.StorDbCfg().Port, mgoITCfg.StorDbCfg().Name,
|
||||
mgoITCfg.StorDbCfg().User, mgoITCfg.StorDbCfg().Password,
|
||||
mgoITCfg.GeneralCfg().DBDataEncoding,
|
||||
utils.StorDB, nil, false)
|
||||
if err != nil {
|
||||
t.Fatal("Could not connect to Mongo", err.Error())
|
||||
|
||||
@@ -88,6 +88,7 @@ func TestFilterIndexerIT(t *testing.T) {
|
||||
mongoDB, err := NewMongoStorage(mgoITCfg.StorDbCfg().Host,
|
||||
mgoITCfg.StorDbCfg().Port, mgoITCfg.StorDbCfg().Name,
|
||||
mgoITCfg.StorDbCfg().User, mgoITCfg.StorDbCfg().Password,
|
||||
mgoITCfg.GeneralCfg().DBDataEncoding,
|
||||
utils.StorDB, nil, false)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
@@ -307,7 +307,7 @@ func InitStorDb(cfg *config.CGRConfig) error {
|
||||
storDb, err := NewStorDBConn(cfg.StorDbCfg().Type,
|
||||
cfg.StorDbCfg().Host, cfg.StorDbCfg().Port,
|
||||
cfg.StorDbCfg().Name, cfg.StorDbCfg().User,
|
||||
cfg.StorDbCfg().Password, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().MaxOpenConns, cfg.StorDbCfg().MaxIdleConns,
|
||||
cfg.StorDbCfg().ConnMaxLifetime, cfg.StorDbCfg().StringIndexedFields,
|
||||
cfg.StorDbCfg().PrefixIndexedFields, cfg.StorDbCfg().Items)
|
||||
|
||||
@@ -102,9 +102,10 @@ func testLoaderITInitStoreDB(t *testing.T) {
|
||||
// NewStorDBConn
|
||||
db, err := NewStorDBConn(lCfg.StorDbCfg().Type,
|
||||
lCfg.StorDbCfg().Host, lCfg.StorDbCfg().Port, lCfg.StorDbCfg().Name,
|
||||
lCfg.StorDbCfg().User, lCfg.StorDbCfg().Password, lCfg.StorDbCfg().SSLMode,
|
||||
lCfg.StorDbCfg().MaxOpenConns, lCfg.StorDbCfg().MaxIdleConns, lCfg.StorDbCfg().ConnMaxLifetime,
|
||||
lCfg.StorDbCfg().StringIndexedFields, lCfg.StorDbCfg().PrefixIndexedFields, lCfg.StorDbCfg().Items)
|
||||
lCfg.StorDbCfg().User, lCfg.StorDbCfg().Password, lCfg.GeneralCfg().DBDataEncoding,
|
||||
lCfg.StorDbCfg().SSLMode, lCfg.StorDbCfg().MaxOpenConns, lCfg.StorDbCfg().MaxIdleConns,
|
||||
lCfg.StorDbCfg().ConnMaxLifetime, lCfg.StorDbCfg().StringIndexedFields,
|
||||
lCfg.StorDbCfg().PrefixIndexedFields, lCfg.StorDbCfg().Items)
|
||||
if err != nil {
|
||||
t.Error("Error on opening database connection: ", err)
|
||||
}
|
||||
|
||||
@@ -109,6 +109,7 @@ func TestOnStorIT(t *testing.T) {
|
||||
if mgoITdb, err = NewMongoStorage(mgoITCfg.StorDbCfg().Host,
|
||||
mgoITCfg.StorDbCfg().Port, mgoITCfg.StorDbCfg().Name,
|
||||
mgoITCfg.StorDbCfg().User, mgoITCfg.StorDbCfg().Password,
|
||||
mgoITCfg.GeneralCfg().DBDataEncoding,
|
||||
utils.StorDB, nil, false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ func testSetCDR(cfg *config.CGRConfig) error {
|
||||
cdrStorage, err := NewStorDBConn(cfg.StorDbCfg().Type,
|
||||
cfg.StorDbCfg().Host, cfg.StorDbCfg().Port,
|
||||
cfg.StorDbCfg().Name, cfg.StorDbCfg().User,
|
||||
cfg.StorDbCfg().Password, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().MaxOpenConns, cfg.StorDbCfg().MaxIdleConns,
|
||||
cfg.StorDbCfg().ConnMaxLifetime, cfg.StorDbCfg().StringIndexedFields,
|
||||
cfg.StorDbCfg().PrefixIndexedFields, cfg.StorDbCfg().Items)
|
||||
@@ -176,7 +176,7 @@ func testSMCosts(cfg *config.CGRConfig) error {
|
||||
cdrStorage, err := NewStorDBConn(cfg.StorDbCfg().Type,
|
||||
cfg.StorDbCfg().Host, cfg.StorDbCfg().Port,
|
||||
cfg.StorDbCfg().Name, cfg.StorDbCfg().User,
|
||||
cfg.StorDbCfg().Password, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().MaxOpenConns, cfg.StorDbCfg().MaxIdleConns,
|
||||
cfg.StorDbCfg().ConnMaxLifetime, cfg.StorDbCfg().StringIndexedFields,
|
||||
cfg.StorDbCfg().PrefixIndexedFields, cfg.StorDbCfg().Items)
|
||||
@@ -239,7 +239,7 @@ func testGetCDRs(cfg *config.CGRConfig) error {
|
||||
cdrStorage, err := NewStorDBConn(cfg.StorDbCfg().Type,
|
||||
cfg.StorDbCfg().Host, cfg.StorDbCfg().Port,
|
||||
cfg.StorDbCfg().Name, cfg.StorDbCfg().User,
|
||||
cfg.StorDbCfg().Password, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().MaxOpenConns, cfg.StorDbCfg().MaxIdleConns,
|
||||
cfg.StorDbCfg().ConnMaxLifetime, cfg.StorDbCfg().StringIndexedFields,
|
||||
cfg.StorDbCfg().PrefixIndexedFields, cfg.StorDbCfg().Items)
|
||||
|
||||
@@ -125,7 +125,7 @@ func TimeDecodeValue1(dc bsoncodec.DecodeContext, vr bsonrw.ValueReader, val ref
|
||||
}
|
||||
|
||||
// NewMongoStorage givese new mongo driver
|
||||
func NewMongoStorage(host, port, db, user, pass, storageType string, cdrsIndexes []string,
|
||||
func NewMongoStorage(host, port, db, user, pass, mrshlerStr, storageType string, cdrsIndexes []string,
|
||||
isDataDB bool) (ms *MongoStorage, err error) {
|
||||
url := host
|
||||
if port != "" {
|
||||
@@ -162,13 +162,18 @@ func NewMongoStorage(host, port, db, user, pass, storageType string, cdrsIndexes
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
mrshler, err := NewMarshaler(mrshlerStr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ms = &MongoStorage{
|
||||
client: client,
|
||||
ctx: ctx,
|
||||
ctxTTL: ttl,
|
||||
db: dbName,
|
||||
storageType: storageType,
|
||||
ms: NewCodecMsgpackMarshaler(),
|
||||
ms: mrshler,
|
||||
cdrsIndexes: cdrsIndexes,
|
||||
isDataDB: isDataDB,
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ func NewDataDBConn(dbType, host, port, name, user,
|
||||
}
|
||||
d, err = NewRedisStorage(host, dbNo, pass, marshaler, utils.REDIS_MAX_CONNS, sentinelName)
|
||||
case utils.MONGO:
|
||||
d, err = NewMongoStorage(host, port, name, user, pass, utils.DataDB, nil, true)
|
||||
d, err = NewMongoStorage(host, port, name, user, pass, marshaler, utils.DataDB, nil, true)
|
||||
case utils.INTERNAL:
|
||||
d = NewInternalDB(nil, nil, true, itemsCacheCfg)
|
||||
default:
|
||||
@@ -58,13 +58,13 @@ func NewDataDBConn(dbType, host, port, name, user,
|
||||
}
|
||||
|
||||
// NewStorDBConn returns a StorDB(implements Storage interface) based on dbType
|
||||
func NewStorDBConn(dbType, host, port, name, user, pass, sslmode string,
|
||||
func NewStorDBConn(dbType, host, port, name, user, pass, marshaler, sslmode string,
|
||||
maxConn, maxIdleConn, connMaxLifetime int,
|
||||
stringIndexedFields, prefixIndexedFields []string,
|
||||
itemsCacheCfg map[string]*config.ItemOpt) (db StorDB, err error) {
|
||||
switch dbType {
|
||||
case utils.MONGO:
|
||||
db, err = NewMongoStorage(host, port, name, user, pass, utils.StorDB, stringIndexedFields, false)
|
||||
db, err = NewMongoStorage(host, port, name, user, pass, marshaler, utils.StorDB, stringIndexedFields, false)
|
||||
case utils.POSTGRES:
|
||||
db, err = NewPostgresStorage(host, port, name, user, pass, sslmode, maxConn, maxIdleConn, connMaxLifetime)
|
||||
case utils.MYSQL:
|
||||
|
||||
@@ -86,6 +86,7 @@ func TestStorDBit(t *testing.T) {
|
||||
if storDB, err = NewMongoStorage(cfg.StorDbCfg().Host,
|
||||
cfg.StorDbCfg().Port, cfg.StorDbCfg().Name,
|
||||
cfg.StorDbCfg().User, cfg.StorDbCfg().Password,
|
||||
cfg.GeneralCfg().DBDataEncoding,
|
||||
utils.StorDB, cfg.StorDbCfg().StringIndexedFields, false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ func testInitDataDB(t *testing.T) {
|
||||
storageDb, err = NewStorDBConn(cfg.StorDbCfg().Type,
|
||||
cfg.StorDbCfg().Host, cfg.StorDbCfg().Port,
|
||||
cfg.StorDbCfg().Name, cfg.StorDbCfg().User,
|
||||
cfg.StorDbCfg().Password, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().Password, cfg.GeneralCfg().DBDataEncoding, cfg.StorDbCfg().SSLMode,
|
||||
cfg.StorDbCfg().MaxOpenConns, cfg.StorDbCfg().MaxIdleConns,
|
||||
cfg.StorDbCfg().ConnMaxLifetime, cfg.StorDbCfg().StringIndexedFields,
|
||||
cfg.StorDbCfg().PrefixIndexedFields, cfg.StorDbCfg().Items)
|
||||
|
||||
Reference in New Issue
Block a user