From f6002500e8558156409c6a361673203ec06d92e0 Mon Sep 17 00:00:00 2001 From: abousselmi <bousselmi.ayoub@yahoo.fr> Date: Sun, 3 May 2020 15:40:22 +0200 Subject: [PATCH] Create a separate webui config factory This separates the configuration of WebUI for UDR's. WebUI has now its own config factory which loads the webuicfg.conf config file. --- backend/factory/config_config.go | 10 +++++++ backend/factory/config_configuration.go | 9 +++++++ backend/factory/config_info.go | 10 +++++++ backend/factory/config_mongodb.go | 10 +++++++ backend/factory/factory.go | 36 +++++++++++++++++++++++++ backend/webui_service/webui_init.go | 10 +++---- 6 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 backend/factory/config_config.go create mode 100644 backend/factory/config_configuration.go create mode 100644 backend/factory/config_info.go create mode 100644 backend/factory/config_mongodb.go create mode 100644 backend/factory/factory.go diff --git a/backend/factory/config_config.go b/backend/factory/config_config.go new file mode 100644 index 0000000..ad2b0fc --- /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 0000000..c4e67ca --- /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 0000000..fd25984 --- /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 0000000..105508b --- /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 0000000..317d45a --- /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 26b48cb..cbe8a6e 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) -- GitLab