diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 22bfa2ba7..5cd7aeca2 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -558,7 +558,7 @@ func main() { logDb, err = engine.ConfigureLogStorage(cfg.StorDBType, cfg.StorDBHost, cfg.StorDBPort, cfg.StorDBName, cfg.StorDBUser, cfg.StorDBPass, cfg.DBDataEncoding, cfg.StorDBMaxOpenConns, cfg.StorDBMaxIdleConns) if err != nil { // Cannot configure logger database, show stopper - utils.Logger.Crit(fmt.Sprintf("Could not configure logger database: %s exiting!", err)) + utils.Logger.Crit(fmt.Sprintf("Could not configure logger database: %s exiting! (%+v)", err, cfg)) return } defer logDb.Close() diff --git a/data/conf/samples/cgradmin/cgradmin.json b/data/conf/samples/cgradmin/cgradmin.json index 4ea1f0eef..e09f94c20 100644 --- a/data/conf/samples/cgradmin/cgradmin.json +++ b/data/conf/samples/cgradmin/cgradmin.json @@ -10,6 +10,13 @@ "http": ":2080", // HTTP listening address }, +"stor_db": { // database used to store offline tariff plans and CDRs + "db_type": "mongo", // stor database type to use: + "db_host": "127.0.0.1", // the host to connect to + "db_port": 27017, // the port to reach the stordb + "db_name": "cgrates", +}, + "rater": { "enabled": true, // enable Rater service: "pubsubs": "internal", diff --git a/engine/calldesc.go b/engine/calldesc.go index eba37b91d..967fb4582 100644 --- a/engine/calldesc.go +++ b/engine/calldesc.go @@ -46,11 +46,11 @@ func init() { accountingStorage, _ = NewMapStorage() } else { var err error - ratingStorage, err = NewMongoStorage("127.0.0.1:27017", "cgrates_rating_test", "", "") + ratingStorage, err = NewMongoStorage("127.0.0.1", "27017", "cgrates_rating_test", "", "") if err != nil { log.Fatal(err) } - accountingStorage, err = NewMongoStorage("127.0.0.1:27017", "cgrates_accounting_test", "", "") + accountingStorage, err = NewMongoStorage("127.0.0.1", "27017", "cgrates_accounting_test", "", "") if err != nil { log.Fatal(err) } diff --git a/engine/storage_mongo.go b/engine/storage_mongo.go index 49acda18a..149d38da4 100644 --- a/engine/storage_mongo.go +++ b/engine/storage_mongo.go @@ -60,7 +60,8 @@ type MongoStorage struct { db *mgo.Database } -func NewMongoStorage(address, db, user, pass string) (*MongoStorage, error) { +func NewMongoStorage(host, port, db, user, pass string) (*MongoStorage, error) { + address := fmt.Sprintf("%s:%s", host, port) if user != "" && pass != "" { address = fmt.Sprintf("%s:%s@%s", user, pass, address) } diff --git a/engine/storage_utils.go b/engine/storage_utils.go index 6319e92c8..dc19abe43 100644 --- a/engine/storage_utils.go +++ b/engine/storage_utils.go @@ -64,11 +64,9 @@ func ConfigureAccountingStorage(db_type, host, port, name, user, pass, marshaler host += ":" + port } d, err = NewRedisStorage(host, db_nb, pass, marshaler) - /* - case utils.MONGO: - d, err = NewMongoStorage(host, port, name, user, pass) - db = d.(AccountingStorage) - */ + case utils.MONGO: + d, err = NewMongoStorage(host, port, name, user, pass) + db = d.(AccountingStorage) default: err = errors.New("unknown db") } @@ -93,9 +91,9 @@ func ConfigureLogStorage(db_type, host, port, name, user, pass, marshaler string host += ":" + port } d, err = NewRedisStorage(host, db_nb, pass, marshaler) - case utils.MONGO: - d, err = NewMongoStorage(host, port, name, user, pass) */ + case utils.MONGO: + d, err = NewMongoStorage(host, port, name, user, pass) case utils.POSTGRES: d, err = NewPostgresStorage(host, port, name, user, pass, maxConn, maxIdleConn) case utils.MYSQL: @@ -116,6 +114,8 @@ func ConfigureLoadStorage(db_type, host, port, name, user, pass, marshaler strin d, err = NewPostgresStorage(host, port, name, user, pass, maxConn, maxIdleConn) case utils.MYSQL: d, err = NewMySQLStorage(host, port, name, user, pass, maxConn, maxIdleConn) + case utils.MONGO: + d, err = NewMongoStorage(host, port, name, user, pass) default: err = errors.New("unknown db") } @@ -132,6 +132,8 @@ func ConfigureCdrStorage(db_type, host, port, name, user, pass string, maxConn, d, err = NewPostgresStorage(host, port, name, user, pass, maxConn, maxIdleConn) case utils.MYSQL: d, err = NewMySQLStorage(host, port, name, user, pass, maxConn, maxIdleConn) + case utils.MONGO: + d, err = NewMongoStorage(host, port, name, user, pass) default: err = errors.New("unknown db") }