blob: 17d270ba880d71d88d05912edb351a8c16e84a09 [file] [log] [blame]
Girish Gowdru0c588b22019-04-23 23:24:56 -04001/*
2 * Copyright 2018-present Open Networking Foundation
3
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7
8 * http://www.apache.org/licenses/LICENSE-2.0
9
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Girish Gowdru6a80bbd2019-07-02 07:36:09 -070016
17//Package config provides the Log, kvstore, Kafka configuration
Girish Gowdru0c588b22019-04-23 23:24:56 -040018package config
19
20import (
21 "flag"
22 "fmt"
23 "github.com/opencord/voltha-go/common/log"
24 "os"
25)
26
27// Open OLT default constants
28const (
Matt Jeanneretf880eb62019-07-16 20:08:03 -040029 EtcdStoreName = "etcd"
30 defaultInstanceid = "openOlt001"
31 defaultKafkaadapterhost = "127.0.0.1"
32 defaultKafkaadapterport = 9092
33 defaultKafkaclusterhost = "127.0.0.1"
34 defaultKafkaclusterport = 9094
35 defaultKvstoretype = EtcdStoreName
36 defaultKvstoretimeout = 5 //in seconds
37 defaultKvstorehost = "127.0.0.1"
38 defaultKvstoreport = 2379 // Consul = 8500; Etcd = 2379
39 defaultLoglevel = 0
40 defaultBanner = false
41 defaultDisplayVersionOnly = false
42 defaultTopic = "openolt"
43 defaultCoretopic = "rwcore"
44 defaultOnunumber = 1
Girish Gowdru0c588b22019-04-23 23:24:56 -040045)
46
47// AdapterFlags represents the set of configurations used by the read-write adaptercore service
48type AdapterFlags struct {
49 // Command line parameters
Matt Jeanneretf880eb62019-07-16 20:08:03 -040050 InstanceID string
51 KafkaAdapterHost string
52 KafkaAdapterPort int
53 KafkaClusterHost string
54 KafkaClusterPort int
55 KVStoreType string
56 KVStoreTimeout int // in seconds
57 KVStoreHost string
58 KVStorePort int
59 Topic string
60 CoreTopic string
61 LogLevel int
62 OnuNumber int
63 Banner bool
64 DisplayVersionOnly bool
Girish Gowdru0c588b22019-04-23 23:24:56 -040065}
66
67func init() {
Girish Gowdru6a80bbd2019-07-02 07:36:09 -070068 _, _ = log.AddPackage(log.JSON, log.WarnLevel, nil)
Girish Gowdru0c588b22019-04-23 23:24:56 -040069}
70
Girish Gowdru6a80bbd2019-07-02 07:36:09 -070071// NewAdapterFlags returns a new RWCore config
Girish Gowdru0c588b22019-04-23 23:24:56 -040072func NewAdapterFlags() *AdapterFlags {
73 var adapterFlags = AdapterFlags{ // Default values
Matt Jeanneretf880eb62019-07-16 20:08:03 -040074 InstanceID: defaultInstanceid,
75 KafkaAdapterHost: defaultKafkaadapterhost,
76 KafkaAdapterPort: defaultKafkaadapterport,
77 KafkaClusterHost: defaultKafkaclusterhost,
78 KafkaClusterPort: defaultKafkaclusterport,
79 KVStoreType: defaultKvstoretype,
80 KVStoreTimeout: defaultKvstoretimeout,
81 KVStoreHost: defaultKvstorehost,
82 KVStorePort: defaultKvstoreport,
83 Topic: defaultTopic,
84 CoreTopic: defaultCoretopic,
85 LogLevel: defaultLoglevel,
86 OnuNumber: defaultOnunumber,
87 Banner: defaultBanner,
88 DisplayVersionOnly: defaultDisplayVersionOnly,
Girish Gowdru0c588b22019-04-23 23:24:56 -040089 }
90 return &adapterFlags
91}
92
93// ParseCommandArguments parses the arguments when running read-write adaptercore service
94func (so *AdapterFlags) ParseCommandArguments() {
95
Girish Gowdru6a80bbd2019-07-02 07:36:09 -070096 help := fmt.Sprintf("Kafka - Adapter messaging host")
97 flag.StringVar(&(so.KafkaAdapterHost), "kafka_adapter_host", defaultKafkaadapterhost, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -040098
99 help = fmt.Sprintf("Kafka - Adapter messaging port")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700100 flag.IntVar(&(so.KafkaAdapterPort), "kafka_adapter_port", defaultKafkaadapterport, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400101
102 help = fmt.Sprintf("Kafka - Cluster messaging host")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700103 flag.StringVar(&(so.KafkaClusterHost), "kafka_cluster_host", defaultKafkaclusterhost, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400104
105 help = fmt.Sprintf("Kafka - Cluster messaging port")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700106 flag.IntVar(&(so.KafkaClusterPort), "kafka_cluster_port", defaultKafkaclusterport, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400107
108 help = fmt.Sprintf("Open OLT topic")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700109 flag.StringVar(&(so.Topic), "adapter_topic", defaultTopic, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400110
111 help = fmt.Sprintf("Core topic")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700112 flag.StringVar(&(so.CoreTopic), "core_topic", defaultCoretopic, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400113
114 help = fmt.Sprintf("KV store type")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700115 flag.StringVar(&(so.KVStoreType), "kv_store_type", defaultKvstoretype, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400116
117 help = fmt.Sprintf("The default timeout when making a kv store request")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700118 flag.IntVar(&(so.KVStoreTimeout), "kv_store_request_timeout", defaultKvstoretimeout, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400119
120 help = fmt.Sprintf("KV store host")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700121 flag.StringVar(&(so.KVStoreHost), "kv_store_host", defaultKvstorehost, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400122
123 help = fmt.Sprintf("KV store port")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700124 flag.IntVar(&(so.KVStorePort), "kv_store_port", defaultKvstoreport, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400125
126 help = fmt.Sprintf("Log level")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700127 flag.IntVar(&(so.LogLevel), "log_level", defaultLoglevel, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400128
129 help = fmt.Sprintf("Number of ONUs")
Girish Gowdru6a80bbd2019-07-02 07:36:09 -0700130 flag.IntVar(&(so.OnuNumber), "onu_number", defaultOnunumber, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400131
132 help = fmt.Sprintf("Show startup banner log lines")
Matt Jeanneretf880eb62019-07-16 20:08:03 -0400133 flag.BoolVar(&(so.Banner), "banner", defaultBanner, help)
134
135 help = fmt.Sprintf("Show version information and exit")
136 flag.BoolVar(&(so.DisplayVersionOnly), "version", defaultDisplayVersionOnly, help)
Girish Gowdru0c588b22019-04-23 23:24:56 -0400137
138 flag.Parse()
139
140 containerName := getContainerInfo()
141 if len(containerName) > 0 {
142 so.InstanceID = containerName
143 }
144
145}
146
147func getContainerInfo() string {
148 return os.Getenv("HOSTNAME")
149}