From cb92297d0361c675592b8b19cc85e94ca3c10469 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 14 Mar 2019 13:12:36 +0200 Subject: [PATCH] Updated NewCGRConfigFromPath to accept multiple urls --- config/config.go | 22 ++++++++++++---------- config/config_it_test.go | 10 ++++++++-- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/config/config.go b/config/config.go index 3946a0289..57a94414a 100755 --- a/config/config.go +++ b/config/config.go @@ -271,16 +271,18 @@ func loadConfigFromFolder(cfg *CGRConfig, cfgDir string) (*CGRConfig, error) { return cfg, nil } -func loadConfigFromHttp(cfg *CGRConfig, urlPath string) (*CGRConfig, error) { - if _, err := url.ParseRequestURI(urlPath); err != nil { - return nil, err - } - if cgrJsonCfg, err := NewCgrJsonCfgFromHttp(urlPath); err != nil { - utils.Logger.Err(fmt.Sprintf(" Error <%s> reading config from path: <%s>", err.Error(), urlPath)) - return nil, err - } else if err := cfg.loadFromJsonCfg(cgrJsonCfg); err != nil { - utils.Logger.Err(fmt.Sprintf(" Error <%s> loading config from path: <%s>", err.Error(), urlPath)) - return nil, err +func loadConfigFromHttp(cfg *CGRConfig, urlPaths string) (*CGRConfig, error) { + for _, urlPath := range strings.Split(urlPaths, utils.INFIELD_SEP) { + if _, err := url.ParseRequestURI(urlPath); err != nil { + return nil, err + } + if cgrJsonCfg, err := NewCgrJsonCfgFromHttp(urlPath); err != nil { + utils.Logger.Err(fmt.Sprintf(" Error <%s> reading config from path: <%s>", err.Error(), urlPath)) + return nil, err + } else if err := cfg.loadFromJsonCfg(cgrJsonCfg); err != nil { + utils.Logger.Err(fmt.Sprintf(" Error <%s> loading config from path: <%s>", err.Error(), urlPath)) + return nil, err + } } if err := cfg.checkConfigSanity(); err != nil { return nil, err diff --git a/config/config_it_test.go b/config/config_it_test.go index 4e34ad793..2aa26440b 100644 --- a/config/config_it_test.go +++ b/config/config_it_test.go @@ -21,6 +21,7 @@ package config import ( "net" + "os" "path" "reflect" "testing" @@ -49,8 +50,13 @@ func TestNewCgrJsonCfgFromHttp(t *testing.T) { } func TestNewCGRConfigFromPath(t *testing.T) { - addr := "https://raw.githubusercontent.com/cgrates/cgrates/master/data/conf/samples/tutmongo/cgrates.json" - expVal, err := NewCGRConfigFromPath(path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo")) + for key, val := range map[string]string{"LOGGER": "*syslog", "LOG_LEVEL": "6", "TLS_VERIFY": "false", "ROUND_DEC": "5", + "DB_ENCODING": "*msgpack", "TP_EXPORT_DIR": "/var/spool/cgrates/tpe", "FAILED_POSTS_DIR": "/var/spool/cgrates/failed_posts", + "DF_TENANT": "cgrates.org", "TIMEZONE": "Local"} { + os.Setenv(key, val) + } + addr := "https://raw.githubusercontent.com/cgrates/cgrates/master/data/conf/samples/multifiles/a.json;https://raw.githubusercontent.com/cgrates/cgrates/master/data/conf/samples/multifiles/b/b.json;https://raw.githubusercontent.com/cgrates/cgrates/master/data/conf/samples/multifiles/c.json;https://raw.githubusercontent.com/cgrates/cgrates/master/data/conf/samples/multifiles/d.json" + expVal, err := NewCGRConfigFromPath(path.Join("/usr", "share", "cgrates", "conf", "samples", "multifiles")) if err != nil { t.Fatal(err) }