diff --git a/cmd/controller/config/config.go b/cmd/controller/config/config.go deleted file mode 100644 index 034e5a3..0000000 --- a/cmd/controller/config/config.go +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-FileCopyrightText: 2022-present Intel Corporation -// -// SPDX-License-Identifier: Apache-2.0 - -package Config - -type Config struct { - Info *Info `yaml:"info"` - Logger *Logger `yaml:"logger"` - Configuration *Configuration `yaml:"configuration"` -} - -type Info struct { - Version string `yaml:"version,omitempty"` - Description string `yaml:"description,omitempty"` - HttpVersion int `yaml:"http-version,omitempty"` -} - -type Logger struct { - LogLevel string `yaml:"level,omitempty"` -} - -type Configuration struct { - OnosApiServer ServerAddr `yaml:"onosApiServer,omitempty"` - RocEndPoint ServerAddr `yaml:"rocEndPoint,omitempty"` - MetricFuncEndPoint ServerAddr `yaml:"metricFuncEndPoint,omitempty"` -} - -type ServerAddr struct { - Addr string `yaml:"addr,omitempty"` // IP used to run the server in the node. - Port int `yaml:"port,omitempty"` - PollInterval int `yaml:"pollInterval,omitempty"` -} - -type Urls struct { - Uri string `yaml:"uri,omitempty"` - Port int `yaml:"port,omitempty"` -} diff --git a/cmd/controller/config/config.yaml b/cmd/controller/config/config.yaml deleted file mode 100644 index 420cd15..0000000 --- a/cmd/controller/config/config.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-FileCopyrightText: 2022-present Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -info: - version: 1.0.0 - description: Controller Pod initial local configuration - -logger: - level: debug - -configuration: - onosApiServer: - addr: "onosapp" - port: 9301 - rocEndPoint: - addr: "aether-roc-umbrella-aether-roc-gui-v2-1-external.aether-roc.svc" - port: 31194 - metricFuncEndPoint: - addr: "metricfunc.omec.svc" - port: 5001 - diff --git a/cmd/controller/controller.go b/cmd/controller/controller.go index ccc59e9..7d5ccbb 100644 --- a/cmd/controller/controller.go +++ b/cmd/controller/controller.go @@ -18,14 +18,13 @@ import ( "strings" "time" - CConfig "github.com/omec-project/metricfunc/cmd/controller/config" + "github.com/omec-project/metricfunc/config" "github.com/omec-project/metricfunc/internal/metricdata" "github.com/omec-project/metricfunc/logger" "golang.org/x/net/http2" - "gopkg.in/yaml.v2" ) -var ControllerConfig CConfig.Config +var ControllerConfig config.Config var client *http.Client //creating for testing @@ -59,25 +58,10 @@ type SiteInfo struct { SimCardDetails []SimCard `yaml:"sim-card,omitempty" json:"sim-card,omitempty"` } -func InitConfigFactory(f string) error { +func InitControllerConfig(CConfig *config.Config) error { + ControllerConfig = *CConfig //Read provided config - fmt.Printf("Controller has started with configuration file [%v]", f) - - if content, err := ioutil.ReadFile(f); err != nil { - logger.ControllerLog.Errorln("Readfile failed called ", err) - return err - } else { - ControllerConfig = CConfig.Config{} - - if yamlErr := yaml.Unmarshal(content, &ControllerConfig); yamlErr != nil { - logger.ControllerLog.Errorln("yaml parsing failed ", yamlErr) - return yamlErr - } - } - if ControllerConfig.Configuration == nil { - logger.ControllerLog.Errorln("Configuration Parsing Failed ", ControllerConfig.Configuration) - return nil - } + fmt.Printf("Controller configuration") //set http client if ControllerConfig.Info.HttpVersion == 2 { diff --git a/cmd/metricfunc/metricfunc.go b/cmd/metricfunc/metricfunc.go index d18a133..91f2b4f 100644 --- a/cmd/metricfunc/metricfunc.go +++ b/cmd/metricfunc/metricfunc.go @@ -38,7 +38,6 @@ func main() { //Read provided config cfgFilePtr := flag.String("metrics", "../../config/config.yaml", "is a config file") - controllerCfgFilePtr := flag.String("cfg", "./config/config.yaml", "is a config file") flag.Parse() logger.AppLog.Infof("Metricfunction has started with configuration file [%v]", *cfgFilePtr) @@ -73,19 +72,21 @@ func main() { //Start Prometheus client go promclient.StartPrometheusClient(&cfg.Configuration.PrometheusServer) - //controller - rogueIpChan := make(chan controller.RogueIPs, 100) - controller.InitConfigFactory(*controllerCfgFilePtr) - onosClient := controller.OnosService{ - OnosServiceUrl: "http://" + controller.ControllerConfig.Configuration.OnosApiServer.Addr + ":" + - strconv.Itoa(controller.ControllerConfig.Configuration.OnosApiServer.Port), - PollInterval: controller.ControllerConfig.Configuration.OnosApiServer.PollInterval, - } + if cfg.Configuration.ControllerFlag { + //controller + rogueIpChan := make(chan controller.RogueIPs, 100) + controller.InitControllerConfig(&cfg) + onosClient := controller.OnosService{ + OnosServiceUrl: "http://" + cfg.Configuration.OnosApiServer.Addr + ":" + + strconv.Itoa(cfg.Configuration.OnosApiServer.Port), + PollInterval: cfg.Configuration.OnosApiServer.PollInterval, + } - controller.RogueChannel = rogueIpChan + controller.RogueChannel = rogueIpChan - go onosClient.GetRogueIPs(rogueIpChan) - go controller.RogueIPHandler(rogueIpChan) + go onosClient.GetRogueIPs(rogueIpChan) + go controller.RogueIPHandler(rogueIpChan) + } //Go Pprofiling debugProfPort := cfg.Configuration.DebugProfile.Port diff --git a/config/config.go b/config/config.go index fdd9de0..d79290f 100644 --- a/config/config.go +++ b/config/config.go @@ -13,6 +13,7 @@ type Config struct { type Info struct { Version string `yaml:"version,omitempty"` Description string `yaml:"description,omitempty"` + HttpVersion int `yaml:"http-version,omitempty"` } type Logger struct { @@ -20,16 +21,21 @@ type Logger struct { } type Configuration struct { - NfStreams []NFStream `yaml:"nfStreams,omitempty"` - AnalyticsStream *AnalyticsStream `yaml:"analyticsStream,omitempty"` - ApiServer ServerAddr `yaml:"apiServer,omitempty"` - PrometheusServer ServerAddr `yaml:"prometheusServer,omitempty"` - DebugProfile ServerAddr `yaml:"debugProfileServer,omitempty"` + NfStreams []NFStream `yaml:"nfStreams,omitempty"` + AnalyticsStream *AnalyticsStream `yaml:"analyticsStream,omitempty"` + ApiServer ServerAddr `yaml:"apiServer,omitempty"` + PrometheusServer ServerAddr `yaml:"prometheusServer,omitempty"` + DebugProfile ServerAddr `yaml:"debugProfileServer,omitempty"` + OnosApiServer ServerAddr `yaml:"onosApiServer,omitempty"` + RocEndPoint ServerAddr `yaml:"rocEndPoint,omitempty"` + MetricFuncEndPoint ServerAddr `yaml:"metricFuncEndPoint,omitempty"` + ControllerFlag bool `yaml:"controllerFlag,omitempty"` } type ServerAddr struct { - Addr string `yaml:"addr,omitempty"` // IP used to run the server in the node. - Port int `yaml:"port,omitempty"` + Addr string `yaml:"addr,omitempty"` // IP used to run the server in the node. + Port int `yaml:"port,omitempty"` + PollInterval int `yaml:"pollInterval,omitempty"` } type Urls struct { diff --git a/config/config.yaml b/config/config.yaml index abd6d98..842b08c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -37,4 +37,13 @@ configuration: debugProfileServer: addr: "metricfunc" port: 5001 + onosApiServer: + addr: "onosapp" + port: 9301 + rocEndPoint: + addr: "aether-roc-umbrella-aether-roc-gui-v2-1-external.aether-roc.svc" + port: 31194 + metricFuncEndPoint: + addr: "metricfunc.omec.svc" + port: 5001