[VOL-3678] First implementation of the BBSim-sadis-server
Change-Id: I5077a8f861f4cc6af9759f31a4a415042c05eba3
diff --git a/internal/utils/config.go b/internal/utils/config.go
new file mode 100644
index 0000000..19a91a9
--- /dev/null
+++ b/internal/utils/config.go
@@ -0,0 +1,65 @@
+/*
+ * 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
+}
diff --git a/internal/utils/utils.go b/internal/utils/utils.go
new file mode 100644
index 0000000..1ffdf6c
--- /dev/null
+++ b/internal/utils/utils.go
@@ -0,0 +1,28 @@
+/*
+ * 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 "os"
+
+// GetHostName returns host name
+func GetHostName() string {
+ hostname := os.Getenv("HOSTNAME")
+ if len(hostname) < 1 {
+ return "unknown"
+ }
+ return hostname
+}