mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 10:06:24 +05:00
add ConfigHook for external config modification
Add ConfigHook variable allowing external packages to modify config after logger init but before services start.
This commit is contained in:
committed by
Dan Christian Bogos
parent
cafa0a195e
commit
0bf255c8fb
@@ -18,8 +18,12 @@ along with this program. If not, see <https://www.gnu.org/licenses/>
|
|||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "github.com/cgrates/cgrates/services"
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/cgrates/cgrates/services"
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
services.RunCGREngine()
|
services.RunCGREngine(os.Args[1:])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,9 @@ var (
|
|||||||
logLevel = cgrEngineFlags.Int(utils.LogLevelCfg, -1, "Log level (0=emergency to 7=debug)")
|
logLevel = cgrEngineFlags.Int(utils.LogLevelCfg, -1, "Log level (0=emergency to 7=debug)")
|
||||||
setVersions = cgrEngineFlags.Bool(utils.SetVersionsCgr, false, "Overwrite database versions (equivalent to cgr-migrator -exec=*set_versions)")
|
setVersions = cgrEngineFlags.Bool(utils.SetVersionsCgr, false, "Overwrite database versions (equivalent to cgr-migrator -exec=*set_versions)")
|
||||||
|
|
||||||
|
// ConfigHook allows external packages to modify config after logger init.
|
||||||
|
ConfigHook func(cfg *config.CGRConfig) error
|
||||||
|
|
||||||
cfg *config.CGRConfig
|
cfg *config.CGRConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -275,8 +278,8 @@ func singnalHandler(shdWg *sync.WaitGroup, shdChan *utils.SyncedChan) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunCGREngine() {
|
func RunCGREngine(args []string) {
|
||||||
cgrEngineFlags.Parse(os.Args[1:])
|
cgrEngineFlags.Parse(args)
|
||||||
vers, err := utils.GetCGRVersion()
|
vers, err := utils.GetCGRVersion()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("<%s> error received: <%s>, exiting!", utils.InitS, err.Error())
|
log.Fatalf("<%s> error received: <%s>, exiting!", utils.InitS, err.Error())
|
||||||
@@ -359,6 +362,12 @@ func RunCGREngine() {
|
|||||||
}
|
}
|
||||||
utils.Logger.SetLogLevel(lgLevel)
|
utils.Logger.SetLogLevel(lgLevel)
|
||||||
|
|
||||||
|
if ConfigHook != nil {
|
||||||
|
if err := ConfigHook(cfg); err != nil {
|
||||||
|
log.Fatalf("ConfigHook failed: %s", err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if *printConfig {
|
if *printConfig {
|
||||||
cfgJSON := utils.ToIJSON(cfg.AsMapInterface(cfg.GeneralCfg().RSRSep))
|
cfgJSON := utils.ToIJSON(cfg.AsMapInterface(cfg.GeneralCfg().RSRSep))
|
||||||
utils.Logger.Info(fmt.Sprintf("Configuration loaded from %q:\n%s", *cfgPath, cfgJSON))
|
utils.Logger.Info(fmt.Sprintf("Configuration loaded from %q:\n%s", *cfgPath, cfgJSON))
|
||||||
|
|||||||
Reference in New Issue
Block a user