diff --git a/backend/factory/config_config.go b/backend/factory/config_config.go new file mode 100644 index 0000000000000000000000000000000000000000..ad2b0fc04a84fbffc44211659fc976050a00be0b --- /dev/null +++ b/backend/factory/config_config.go @@ -0,0 +1,10 @@ +/* + * WebUI Configuration Factory + */ + +package factory + +type Config struct { + Info *Info `yaml:"info"` + Configuration *Configuration `yaml:"configuration"` +} diff --git a/backend/factory/config_configuration.go b/backend/factory/config_configuration.go new file mode 100644 index 0000000000000000000000000000000000000000..c4e67caa035559aad0822310edf92d079435b7a6 --- /dev/null +++ b/backend/factory/config_configuration.go @@ -0,0 +1,9 @@ +/* + * WebUI Configuration Factory + */ + +package factory + +type Configuration struct { + Mongodb *Mongodb `yaml:"mongodb"` +} diff --git a/backend/factory/config_info.go b/backend/factory/config_info.go new file mode 100644 index 0000000000000000000000000000000000000000..fd259843a4c8b2d1ca6ea740507b30aee89f9401 --- /dev/null +++ b/backend/factory/config_info.go @@ -0,0 +1,10 @@ +/* + * WebUI Configuration Factory + */ + +package factory + +type Info struct { + Version string `yaml:"version,omitempty"` + Description string `yaml:"description,omitempty"` +} diff --git a/backend/factory/config_mongodb.go b/backend/factory/config_mongodb.go new file mode 100644 index 0000000000000000000000000000000000000000..105508b5a5b16931754d44682b8a4433debc4bf6 --- /dev/null +++ b/backend/factory/config_mongodb.go @@ -0,0 +1,10 @@ +/* + * WebUI Configuration Factory + */ + +package factory + +type Mongodb struct { + Name string `yaml:"name"` + Url string `yaml:"url"` +} diff --git a/backend/factory/factory.go b/backend/factory/factory.go new file mode 100644 index 0000000000000000000000000000000000000000..317d45a7fbe921e6e29ca7a77a5a5bfbffa1ecb1 --- /dev/null +++ b/backend/factory/factory.go @@ -0,0 +1,36 @@ +/* + * WebUI Configuration Factory + */ + +package factory + +import ( + "fmt" + "io/ioutil" + + "gopkg.in/yaml.v2" + + "free5gc/webconsole/backend/logger" +) + +var WebUIConfig Config + +func checkErr(err error) { + if err != nil { + err = fmt.Errorf("[Configuration] %s", err.Error()) + logger.AppLog.Fatal(err) + } +} + +// TODO: Support configuration update from REST api +func InitConfigFactory(f string) { + content, err := ioutil.ReadFile(f) + checkErr(err) + + WebUIConfig = Config{} + + err = yaml.Unmarshal([]byte(content), &WebUIConfig) + checkErr(err) + + logger.InitLog.Infof("Successfully initialize configuration %s", f) +} diff --git a/backend/webui_service/webui_init.go b/backend/webui_service/webui_init.go index 26b48cbd758536f5a0ebc5c5b607dbb9dfe08e8a..cbe8a6e3aa7f14a672f7df56b8801200aa098719 100644 --- a/backend/webui_service/webui_init.go +++ b/backend/webui_service/webui_init.go @@ -7,7 +7,7 @@ import ( "free5gc/lib/MongoDBLibrary" "free5gc/lib/path_util" "free5gc/src/app" - "free5gc/src/udr/factory" + "free5gc/webconsole/backend/factory" "free5gc/webconsole/backend/WebUI" "free5gc/webconsole/backend/logger" "free5gc/webconsole/backend/webui_context" @@ -59,8 +59,8 @@ func (*WEBUI) Initialize(c *cli.Context) { if config.webuicfg != "" { factory.InitConfigFactory(config.webuicfg) } else { - DefaultUdrConfigPath := path_util.Gofree5gcPath("free5gc/config/webuicfg.conf") - factory.InitConfigFactory(DefaultUdrConfigPath) + DefaultWebUIConfigPath := path_util.Gofree5gcPath("free5gc/config/webuicfg.conf") + factory.InitConfigFactory(DefaultWebUIConfigPath) } initLog.Traceln("WEBUI debug level(string):", app.ContextSelf().Logger.WEBUI.DebugLevel) @@ -90,8 +90,8 @@ func (webui *WEBUI) FilterCli(c *cli.Context) (args []string) { } func (webui *WEBUI) Start() { - // get config file info from UdrConfig - mongodb := factory.UdrConfig.Configuration.Mongodb + // get config file info from WebUIConfig + mongodb := factory.WebUIConfig.Configuration.Mongodb // Connect to MongoDB MongoDBLibrary.SetMongoDB(mongodb.Name, mongodb.Url)