| /* |
| * Copyright 2020-present Open Networking Foundation |
| |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package utils |
| |
| import ( |
| "flag" |
| "fmt" |
| "github.com/opencord/voltha-lib-go/v4/pkg/log" |
| ) |
| |
| const ( |
| defaultLogLevel = "WARN" |
| defaultLogFormat = "json" // or "console" |
| defaultBBsimSadisPort = 50074 |
| ) |
| |
| type ConfigFlags struct { |
| LogLevel string |
| LogFormat string |
| Kubeconfig string |
| BBsimSadisPort int |
| } |
| |
| func NewConfigFlags() *ConfigFlags { |
| flags := &ConfigFlags{ |
| LogLevel: defaultLogLevel, |
| LogFormat: defaultLogFormat, |
| Kubeconfig: "", |
| BBsimSadisPort: defaultBBsimSadisPort, |
| } |
| return flags |
| } |
| |
| func (cf *ConfigFlags) ParseCommandArguments() { |
| help := fmt.Sprintf("Log level (debug, infor, warn, error)") |
| flag.StringVar(&(cf.LogLevel), "log_level", defaultLogLevel, help) |
| |
| help = fmt.Sprintf("Log format (json or console) ") |
| logFormat := flag.String("log_format", defaultLogFormat, help) |
| |
| flag.StringVar(&(cf.Kubeconfig), "kubeconfig", "", "Absolute path to the kubeconfig file") |
| flag.IntVar(&(cf.BBsimSadisPort), "bbsim_sadis_port", defaultBBsimSadisPort, "The port on which BBSim exposes the Sadis server") |
| |
| flag.Parse() |
| |
| if *logFormat != log.CONSOLE && *logFormat != log.JSON { |
| panic(fmt.Sprintf("log_format is invalid, allowed values are: %s, %s", log.JSON, log.CONSOLE)) |
| } |
| |
| cf.LogFormat = *logFormat |
| } |