From 23ae4632fe7f079d4c70621755e292216b24708d Mon Sep 17 00:00:00 2001 From: arberkatellari Date: Mon, 1 Jul 2024 13:30:18 +0200 Subject: [PATCH] Add print_config flags to cgr-loader and cgr-migrator --- cmd/cgr-loader/cgr-loader.go | 8 ++++++-- cmd/cgr-loader/flags_test.go | 6 ++++++ cmd/cgr-migrator/cgr-migrator.go | 9 +++++++-- cmd/cgr-migrator/cgr-migrator_test.go | 5 +++++ 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/cmd/cgr-loader/cgr-loader.go b/cmd/cgr-loader/cgr-loader.go index 85cec4ec1..477805167 100644 --- a/cmd/cgr-loader/cgr-loader.go +++ b/cmd/cgr-loader/cgr-loader.go @@ -41,7 +41,8 @@ var ( dfltCfg = config.CgrConfig() cfgPath = cgrLoaderFlags.String(utils.CfgPathCgr, utils.EmptyString, "Configuration directory path.") - dataDBType = cgrLoaderFlags.String(utils.DataDBTypeCgr, dfltCfg.DataDbCfg().Type, + printConfig = cgrLoaderFlags.Bool(utils.PrintCfgCgr, false, "Print the configuration object in JSON format") + dataDBType = cgrLoaderFlags.String(utils.DataDBTypeCgr, dfltCfg.DataDbCfg().Type, "The type of the DataDB database <*redis|*mongo>") dataDBHost = cgrLoaderFlags.String(utils.DataDBHostCgr, dfltCfg.DataDbCfg().Host, "The DataDb host to connect to.") @@ -402,7 +403,10 @@ func main() { if *dryRun { // We were just asked to parse the data, not saving it return } - + if *printConfig { + cfgJSON := utils.ToIJSON(ldrCfg.AsMapInterface(ldrCfg.GeneralCfg().RSRSep)) + log.Printf("Configuration loaded from %q:\n%s", *cfgPath, cfgJSON) + } if *remove { if err = tpReader.RemoveFromDatabase(*verbose, *disableReverse); err != nil { log.Fatal("Could not delete from database: ", err) diff --git a/cmd/cgr-loader/flags_test.go b/cmd/cgr-loader/flags_test.go index 168cf0255..6a97b8004 100644 --- a/cmd/cgr-loader/flags_test.go +++ b/cmd/cgr-loader/flags_test.go @@ -30,6 +30,12 @@ func TestCGRLoaderFlags(t *testing.T) { t.Errorf("Expected /etc/cgrates, received %+v", *cfgPath) } + if err := cgrLoaderFlags.Parse([]string{"-print_config", "true"}); err != nil { + t.Fatal(err) + } else if *printConfig != true { + t.Errorf("Expected true, received %+v", *printConfig) + } + if err := cgrLoaderFlags.Parse([]string{"-datadb_type", "*redis"}); err != nil { t.Error(err) } else if *dataDBType != "*redis" { diff --git a/cmd/cgr-migrator/cgr-migrator.go b/cmd/cgr-migrator/cgr-migrator.go index 38216008f..003950632 100644 --- a/cmd/cgr-migrator/cgr-migrator.go +++ b/cmd/cgr-migrator/cgr-migrator.go @@ -44,8 +44,8 @@ var ( dfltCfg = config.NewDefaultCGRConfig() cfgPath = cgrMigratorFlags.String(utils.CfgPathCgr, utils.EmptyString, "Configuration directory path.") - - exec = cgrMigratorFlags.String(utils.ExecCgr, utils.EmptyString, "fire up automatic migration "+ + printConfig = cgrMigratorFlags.Bool(utils.PrintCfgCgr, false, "Print the configuration object in JSON format") + exec = cgrMigratorFlags.String(utils.ExecCgr, utils.EmptyString, "fire up automatic migration "+ "<*set_versions|*cost_details|*accounts|*actions|*action_triggers|*action_plans|*shared_groups|*filters|*stordb|*datadb>") version = cgrMigratorFlags.Bool(utils.VersionCgr, false, "prints the application version") @@ -404,6 +404,11 @@ func main() { mgrCfg.MigratorCgrCfg().OutStorDBPort == mgrCfg.MigratorCgrCfg().OutDataDBPort && mgrCfg.MigratorCgrCfg().OutStorDBName == mgrCfg.MigratorCgrCfg().OutDataDBName + if *printConfig { + cfgJSON := utils.ToIJSON(mgrCfg.AsMapInterface(mgrCfg.GeneralCfg().RSRSep)) + log.Printf("Configuration loaded from %q:\n%s", *cfgPath, cfgJSON) + } + m, err := migrator.NewMigrator(dmIN, dmOUT, storDBIn, storDBOut, *dryRun, sameDataDB, sameStorDB, sameOutDB) diff --git a/cmd/cgr-migrator/cgr-migrator_test.go b/cmd/cgr-migrator/cgr-migrator_test.go index 392db6b12..917fed65a 100644 --- a/cmd/cgr-migrator/cgr-migrator_test.go +++ b/cmd/cgr-migrator/cgr-migrator_test.go @@ -31,6 +31,11 @@ func TestFlags(t *testing.T) { } else if *cfgPath != "true" { t.Errorf("Expected true received:%v ", *cfgPath) } + if err := cgrMigratorFlags.Parse([]string{"-print_config", "true"}); err != nil { + t.Fatal(err) + } else if *printConfig != true { + t.Errorf("Expected true, received %+v", *printConfig) + } if err := cgrMigratorFlags.Parse([]string{"-exec", "true"}); err != nil { t.Fatal(err) } else if *exec != "true" {