From 7b03c0675a447711bc6e50fdecc7b1020075dcc0 Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Fri, 21 Aug 2015 15:28:46 +0300 Subject: [PATCH] aliases in cgr-engine --- cmd/cgr-engine/cgr-engine.go | 58 +++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 58a6b7f9d..7fa4563bf 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -56,26 +56,27 @@ const ( ) var ( - cfgDir = flag.String("config_dir", utils.CONFIG_DIR, "Configuration directory path.") - version = flag.Bool("version", false, "Prints the application version.") - raterEnabled = flag.Bool("rater", false, "Enforce starting of the rater daemon overwriting config") - schedEnabled = flag.Bool("scheduler", false, "Enforce starting of the scheduler daemon .overwriting config") - cdrsEnabled = flag.Bool("cdrs", false, "Enforce starting of the cdrs daemon overwriting config") - pidFile = flag.String("pid", "", "Write pid file") - cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") - singlecpu = flag.Bool("singlecpu", false, "Run on single CPU core") - bal = balancer2go.NewBalancer() - exitChan = make(chan bool) - server = &engine.Server{} - cdrServer *engine.CdrServer - cdrStats engine.StatsInterface - scribeServer history.Scribe - pubSubServer engine.PublisherSubscriber - userServer engine.UserService - cfg *config.CGRConfig - sms []sessionmanager.SessionManager - smRpc *v1.SessionManagerV1 - err error + cfgDir = flag.String("config_dir", utils.CONFIG_DIR, "Configuration directory path.") + version = flag.Bool("version", false, "Prints the application version.") + raterEnabled = flag.Bool("rater", false, "Enforce starting of the rater daemon overwriting config") + schedEnabled = flag.Bool("scheduler", false, "Enforce starting of the scheduler daemon .overwriting config") + cdrsEnabled = flag.Bool("cdrs", false, "Enforce starting of the cdrs daemon overwriting config") + pidFile = flag.String("pid", "", "Write pid file") + cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") + singlecpu = flag.Bool("singlecpu", false, "Run on single CPU core") + bal = balancer2go.NewBalancer() + exitChan = make(chan bool) + server = &engine.Server{} + cdrServer *engine.CdrServer + cdrStats engine.StatsInterface + scribeServer history.Scribe + pubSubServer engine.PublisherSubscriber + aliasesServer engine.AliasService + userServer engine.UserService + cfg *config.CGRConfig + sms []sessionmanager.SessionManager + smRpc *v1.SessionManagerV1 + err error ) func cacheData(ratingDb engine.RatingStorage, accountDb engine.AccountingStorage, doneChan chan struct{}) { @@ -479,6 +480,11 @@ func main() { server.RpcRegisterName("PubSubV1", pubSubServer) } + if cfg.AliasesServerEnabled { + aliasesServer = engine.NewAliasHandler(accountDb) + server.RpcRegisterName("AliasesV1", aliasesServer) + } + if cfg.HistoryServerEnabled { scribeServer, err = history.NewFileScribe(cfg.HistoryDir, cfg.HistorySaveInterval) if err != nil { @@ -540,6 +546,18 @@ func main() { engine.SetPubSub(pubSubServer) }() wg.Add(1) + go func() { + defer wg.Done() + if cfg.RaterAliasesServer != "" && cfg.RaterAliasesServer != utils.INTERNAL { + if aliasesServer, err = engine.NewProxyAliases(cfg.RaterAliasesServer, cfg.ConnectAttempts, -1); err != nil { + engine.Logger.Crit(fmt.Sprintf(" Could not connect to the server, error: %s", err.Error())) + exitChan <- true + return + } + } + engine.SetAliasService(aliasesServer) + }() + wg.Add(1) go func() { defer wg.Done() if cfg.RaterUserServer != "" && cfg.RaterUserServer != utils.INTERNAL {