Updated NewCGRConfigFromPath to accept multiple urls

This commit is contained in:
Trial97
2019-03-14 13:12:36 +02:00
committed by Dan Christian Bogos
parent b42934d730
commit cb92297d03
2 changed files with 20 additions and 12 deletions

View File

@@ -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("<CGR-CFG> 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("<CGR-CFG> 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("<CGR-CFG> 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("<CGR-CFG> Error <%s> loading config from path: <%s>", err.Error(), urlPath))
return nil, err
}
}
if err := cfg.checkConfigSanity(); err != nil {
return nil, err

View File

@@ -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)
}