First Commit of Voltha-Go-Controller from Radisys
Change-Id: I8e2e908e7ab09a4fe3d86849da18b6d69dcf4ab0
diff --git a/internal/pkg/util/envutils/envutils.go b/internal/pkg/util/envutils/envutils.go
new file mode 100644
index 0000000..2c7d2ca
--- /dev/null
+++ b/internal/pkg/util/envutils/envutils.go
@@ -0,0 +1,123 @@
+/*
+* Copyright 2022-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 envutils provides the env parsing utility functions
+package envutils
+
+import (
+ "fmt"
+ "os"
+ "strconv"
+)
+
+// common constants
+const (
+ // common environment variables
+
+ KafkaAdapterHost = "KAFKA_ADAPTER_HOST"
+ KafkaAdapterPort = "KAFKA_ADAPTER_PORT"
+ KafkaClusterHost = "KAFKA_CLUSTER_HOST"
+ KafkaClusterPort = "KAFKA_CLUSTER_PORT"
+ KvStoreType = "KV_STORE_TYPE"
+ KvStoreTimeout = "KV_STORE_TIMEOUT"
+ KvStoreHost = "KV_STORE_HOST"
+ KvStorePort = "KV_STORE_PORT"
+ AdapterTopic = "ADAPTER_TOPIC"
+ CoreTopic = "CORE_TOPIC"
+ EventTopic = "EVENT_TOPIC"
+ LogLevel = "LOG_LEVEL"
+ OnuNumber = "ONU_NUMBER"
+ Banner = "BANNER"
+ DisplayVersionOnly = "DISPLAY_VERSION_ONLY"
+ ProbeHost = "PROBE_HOST"
+ ProbePort = "PROBE_PORT"
+ LiveProbeInterval = "LIVE_PROBE_INTERVAL"
+ NotLiveProbeInterval = "NOT_LIVE_PROBE_INTERVAL"
+ VolthaHost = "VOLTHA_HOST"
+ VolthaPort = "VOLTHA_PORT"
+ HostName = "HOST_NAME"
+
+ // openolt adapter environment variables
+
+ HeartbeatCheckInterval = "HEARTBEAT_CHECK_INTERVAL"
+ HeartbeatFailReportInterval = "HEARTBEAT_FAIL_REPORT_INTERVAL"
+ GrpcTimeoutInterval = "GRPC_TIMEOUT_INTERVAL"
+
+ // rwcore environment variables
+
+ RWCoreEndpoint = "RW_CORE_ENDPOINT"
+ GrpcHost = "GRPC_HOST"
+ GrpcPort = "GRPC_PORT"
+ AffinityRouterTopic = "AFFINITY_ROUTER_TOPIC"
+ InCompetingMode = "IN_COMPETING_MODE"
+ KVTxnKeyDelTime = "KV_TXN_KEY_DEL_TIME"
+ KVStoreDataPrefix = "KV_STORE_DATA_PREFIX"
+ LongRunningRequestTimeout = "LONG_RUNNING_REQ_TIMEOUT"
+ DefaultRequestTimeout = "DEFAULT_REQ_TIMEOUT"
+ DefaultCoreTimeout = "DEFAULT_CORE_TIMEOUT"
+ CoreBindingKey = "CORE_BINDING_KEY"
+ CorePairTopic = "CORE_PAIR_TOPIC"
+ MaxConnectionRetries = "MAX_CONNECTION_RETRIES"
+ ConnectionRetryInterval = "CONNECTION_RETRY_INTERVAL"
+
+ // vgc environment variables
+
+ DeviceListRefreshInterval = "DEVICE_LIST_REFRESH_INTERVAL" // in seconds
+ CPUProfile = "CPU_PROFILE"
+ MemProfile = "MEM_PROFILE"
+ VendorID = "VENDOR_ID"
+ DeviceSyncDuration = "DEVICE_SYNC_DURATION"
+ // openonu environment variables
+
+ OmciPacketCapture = "SAVE_OMCI_PACKET_CAPTURE"
+)
+
+// ParseStringEnvVariable reads the environment variable and returns env as string
+func ParseStringEnvVariable(envVarName string, defaultVal string) string {
+ envValue := os.Getenv(envVarName)
+ if envValue == "" {
+ fmt.Println("Environment variable " + envVarName + " undefined")
+ return defaultVal
+ }
+ return envValue
+}
+
+// ParseIntEnvVariable reads the environment variable and returns env as int64
+func ParseIntEnvVariable(envVarName string, defaultVal int64) int64 {
+ envValue := os.Getenv(envVarName)
+ if envValue == "" {
+ fmt.Println("Environment variable "+envVarName+" undefined", envVarName)
+ return defaultVal
+ }
+ returnVal, err := strconv.Atoi(envValue)
+ if err != nil {
+ fmt.Println("Unable to convert string to integer environment variable")
+ return defaultVal
+ }
+ return int64(returnVal)
+}
+
+// ParseBoolEnvVariable reads the environment variable and returns env as boolean
+func ParseBoolEnvVariable(envVarName string, defaultVal bool) bool {
+ envValue := os.Getenv(envVarName)
+ if envValue == "" {
+ fmt.Println("Environment variable " + envVarName + " undefined")
+ return defaultVal
+ }
+ if envValue == "true" || envValue == "True" {
+ return true
+ }
+ return false
+}