[VOL-2736]:host and port should be specified as a single argument not as two separate arguments
Change-Id: I14b59b4e42b1cf0821807cdb3dd6eef2094077da
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index b44d372..3a8d157 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -28,14 +28,11 @@
const (
EtcdStoreName = "etcd"
defaultInstanceid = "openOlt001"
- defaultKafkaadapterhost = "127.0.0.1"
- defaultKafkaadapterport = 9092
- defaultKafkaclusterhost = "127.0.0.1"
- defaultKafkaclusterport = 9094
+ defaultKafkaadapteraddress = "127.0.0.1:9092"
+ defaultKafkaclusteraddress = "127.0.0.1:9094"
defaultKvstoretype = EtcdStoreName
- defaultKvstoretimeout = 5 * time.Second //in seconds
- defaultKvstorehost = "127.0.0.1"
- defaultKvstoreport = 2379 // Consul = 8500; Etcd = 2379
+ defaultKvstoretimeout = 5 * time.Second
+ defaultKvstoreaddress = "127.0.0.1:2379" // Port: Consul = 8500; Etcd = 2379
defaultLoglevel = "WARN"
defaultBanner = false
defaultDisplayVersionOnly = false
@@ -43,8 +40,7 @@
defaultCoretopic = "rwcore"
defaultEventtopic = "voltha.events"
defaultOnunumber = 1
- defaultProbeHost = ""
- defaultProbePort = 8080
+ defaultProbeAddress = ":8080"
defaultLiveProbeInterval = 60 * time.Second
defaultNotLiveProbeInterval = 5 * time.Second // Probe more frequently when not alive
//defaultHearbeatFailReportInterval is the time in seconds the adapter will keep checking the hardware for heartbeat.
@@ -61,14 +57,11 @@
type AdapterFlags struct {
// Command line parameters
InstanceID string
- KafkaAdapterHost string
- KafkaAdapterPort int
- KafkaClusterHost string
- KafkaClusterPort int
+ KafkaAdapterAddress string
+ KafkaClusterAddress string
KVStoreType string
- KVStoreTimeout time.Duration // in seconds
- KVStoreHost string
- KVStorePort int
+ KVStoreTimeout time.Duration
+ KVStoreAddress string
Topic string
CoreTopic string
EventTopic string
@@ -76,8 +69,7 @@
OnuNumber int
Banner bool
DisplayVersionOnly bool
- ProbeHost string
- ProbePort int
+ ProbeAddress string
LiveProbeInterval time.Duration
NotLiveProbeInterval time.Duration
HeartbeatCheckInterval time.Duration
@@ -91,14 +83,11 @@
func NewAdapterFlags() *AdapterFlags {
var adapterFlags = AdapterFlags{ // Default values
InstanceID: defaultInstanceid,
- KafkaAdapterHost: defaultKafkaadapterhost,
- KafkaAdapterPort: defaultKafkaadapterport,
- KafkaClusterHost: defaultKafkaclusterhost,
- KafkaClusterPort: defaultKafkaclusterport,
+ KafkaAdapterAddress: defaultKafkaadapteraddress,
+ KafkaClusterAddress: defaultKafkaclusteraddress,
KVStoreType: defaultKvstoretype,
KVStoreTimeout: defaultKvstoretimeout,
- KVStoreHost: defaultKvstorehost,
- KVStorePort: defaultKvstoreport,
+ KVStoreAddress: defaultKvstoreaddress,
Topic: defaultTopic,
CoreTopic: defaultCoretopic,
EventTopic: defaultEventtopic,
@@ -106,8 +95,7 @@
OnuNumber: defaultOnunumber,
Banner: defaultBanner,
DisplayVersionOnly: defaultDisplayVersionOnly,
- ProbeHost: defaultProbeHost,
- ProbePort: defaultProbePort,
+ ProbeAddress: defaultProbeAddress,
LiveProbeInterval: defaultLiveProbeInterval,
NotLiveProbeInterval: defaultNotLiveProbeInterval,
HeartbeatCheckInterval: defaultHearbeatCheckInterval,
@@ -120,17 +108,11 @@
// ParseCommandArguments parses the arguments when running read-write adaptercore service
func (so *AdapterFlags) ParseCommandArguments() {
- help := fmt.Sprintf("Kafka - Adapter messaging host")
- flag.StringVar(&(so.KafkaAdapterHost), "kafka_adapter_host", defaultKafkaadapterhost, help)
+ help := fmt.Sprintf("Kafka - Adapter messaging address")
+ flag.StringVar(&(so.KafkaAdapterAddress), "kafka_adapter_address", defaultKafkaadapteraddress, help)
- help = fmt.Sprintf("Kafka - Adapter messaging port")
- flag.IntVar(&(so.KafkaAdapterPort), "kafka_adapter_port", defaultKafkaadapterport, help)
-
- help = fmt.Sprintf("Kafka - Cluster messaging host")
- flag.StringVar(&(so.KafkaClusterHost), "kafka_cluster_host", defaultKafkaclusterhost, help)
-
- help = fmt.Sprintf("Kafka - Cluster messaging port")
- flag.IntVar(&(so.KafkaClusterPort), "kafka_cluster_port", defaultKafkaclusterport, help)
+ help = fmt.Sprintf("Kafka - Cluster messaging address")
+ flag.StringVar(&(so.KafkaClusterAddress), "kafka_cluster_address", defaultKafkaclusteraddress, help)
help = fmt.Sprintf("Open OLT topic")
flag.StringVar(&(so.Topic), "adapter_topic", defaultTopic, help)
@@ -147,11 +129,8 @@
help = fmt.Sprintf("The default timeout when making a kv store request")
flag.DurationVar(&(so.KVStoreTimeout), "kv_store_request_timeout", defaultKvstoretimeout, help)
- help = fmt.Sprintf("KV store host")
- flag.StringVar(&(so.KVStoreHost), "kv_store_host", defaultKvstorehost, help)
-
- help = fmt.Sprintf("KV store port")
- flag.IntVar(&(so.KVStorePort), "kv_store_port", defaultKvstoreport, help)
+ help = fmt.Sprintf("KV store address")
+ flag.StringVar(&(so.KVStoreAddress), "kv_store_address", defaultKvstoreaddress, help)
help = fmt.Sprintf("Log level")
flag.StringVar(&(so.LogLevel), "log_level", defaultLoglevel, help)
@@ -166,10 +145,7 @@
flag.BoolVar(&(so.DisplayVersionOnly), "version", defaultDisplayVersionOnly, help)
help = fmt.Sprintf("The address on which to listen to answer liveness and readiness probe queries over HTTP.")
- flag.StringVar(&(so.ProbeHost), "probe_host", defaultProbeHost, help)
-
- help = fmt.Sprintf("The port on which to listen to answer liveness and readiness probe queries over HTTP.")
- flag.IntVar(&(so.ProbePort), "probe_port", defaultProbePort, help)
+ flag.StringVar(&(so.ProbeAddress), "probe_address", defaultProbeAddress, help)
help = fmt.Sprintf("Number of seconds for the default liveliness check")
flag.DurationVar(&(so.LiveProbeInterval), "live_probe_interval", defaultLiveProbeInterval, help)
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index 212e096..39775a0 100644
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -712,9 +712,8 @@
if err != nil {
return olterrors.NewErrAdapter("populate-device-info-failed", log.Fields{"device-id": dh.device.Id}, err)
}
- KVStoreHostPort := fmt.Sprintf("%s:%d", dh.openOLT.KVStoreHost, dh.openOLT.KVStorePort)
// Instantiate resource manager
- if dh.resourceMgr = rsrcMgr.NewResourceMgr(ctx, dh.device.Id, KVStoreHostPort, dh.openOLT.KVStoreType, dh.device.Type, deviceInfo); dh.resourceMgr == nil {
+ if dh.resourceMgr = rsrcMgr.NewResourceMgr(ctx, dh.device.Id, dh.openOLT.KVStoreAddress, dh.openOLT.KVStoreType, dh.device.Type, deviceInfo); dh.resourceMgr == nil {
return olterrors.ErrResourceManagerInstantiating
}
diff --git a/internal/pkg/core/openolt.go b/internal/pkg/core/openolt.go
index 354382a..36a609e 100644
--- a/internal/pkg/core/openolt.go
+++ b/internal/pkg/core/openolt.go
@@ -41,8 +41,7 @@
kafkaICProxy kafka.InterContainerProxy
config *config.AdapterFlags
numOnus int
- KVStoreHost string
- KVStorePort int
+ KVStoreAddress string
KVStoreType string
exitChannel chan int
HeartbeatCheckInterval time.Duration
@@ -64,8 +63,7 @@
openOLT.coreProxy = coreProxy
openOLT.adapterProxy = adapterProxy
openOLT.eventProxy = eventProxy
- openOLT.KVStoreHost = cfg.KVStoreHost
- openOLT.KVStorePort = cfg.KVStorePort
+ openOLT.KVStoreAddress = cfg.KVStoreAddress
openOLT.KVStoreType = cfg.KVStoreType
openOLT.HeartbeatCheckInterval = cfg.HeartbeatCheckInterval
openOLT.HeartbeatFailReportInterval = cfg.HeartbeatFailReportInterval
diff --git a/internal/pkg/core/openolt_test.go b/internal/pkg/core/openolt_test.go
index 9c9094f..704c0b5 100644
--- a/internal/pkg/core/openolt_test.go
+++ b/internal/pkg/core/openolt_test.go
@@ -48,8 +48,7 @@
eventProxy *com.EventProxy
kafkaICProxy kafka.InterContainerProxy
numOnus int
- KVStoreHost string
- KVStorePort int
+ KVStoreAddress string
KVStoreType string
exitChannel chan int
lockDeviceHandlersMap sync.RWMutex
@@ -74,8 +73,7 @@
eventProxy: testOlt.eventProxy,
kafkaICProxy: testOlt.kafkaICProxy,
numOnus: testOlt.numOnus,
- KVStoreHost: testOlt.KVStoreHost,
- KVStorePort: testOlt.KVStorePort,
+ KVStoreAddress: testOlt.KVStoreAddress,
KVStoreType: testOlt.KVStoreType,
exitChannel: testOlt.exitChannel,
}
@@ -109,12 +107,12 @@
configFlags *config.AdapterFlags
want *OpenOLT
}{
- {"newopenolt-1", &fields{}, &config.AdapterFlags{OnuNumber: 1, KVStorePort: 1, KVStoreType: "consul", KVStoreHost: "1.1.1.1"},
- &OpenOLT{numOnus: 1, KVStorePort: 1, KVStoreType: "consul", KVStoreHost: "1.1.1.1"}},
- {"newopenolt-2", &fields{}, &config.AdapterFlags{OnuNumber: 2, KVStorePort: 2, KVStoreType: "etcd", KVStoreHost: "2.2.2.2"},
- &OpenOLT{numOnus: 2, KVStorePort: 2, KVStoreType: "etcd", KVStoreHost: "2.2.2.2"}},
- {"newopenolt-3", &fields{}, &config.AdapterFlags{OnuNumber: 3, KVStorePort: 3, KVStoreType: "consul", KVStoreHost: "3.3.3.3"},
- &OpenOLT{numOnus: 3, KVStorePort: 3, KVStoreType: "consul", KVStoreHost: "3.3.3.3"}},
+ {"newopenolt-1", &fields{}, &config.AdapterFlags{OnuNumber: 1, KVStoreAddress: "1.1.1.1:1", KVStoreType: "consul"},
+ &OpenOLT{numOnus: 1, KVStoreAddress: "1.1.1.1:1", KVStoreType: "consul"}},
+ {"newopenolt-2", &fields{}, &config.AdapterFlags{OnuNumber: 2, KVStoreAddress: "2.2.2.2:2", KVStoreType: "etcd"},
+ &OpenOLT{numOnus: 2, KVStoreAddress: "2.2.2.2:2", KVStoreType: "etcd"}},
+ {"newopenolt-3", &fields{}, &config.AdapterFlags{OnuNumber: 3, KVStoreAddress: "3.3.3.3:3", KVStoreType: "consul"},
+ &OpenOLT{numOnus: 3, KVStoreAddress: "3.3.3.3:3", KVStoreType: "consul"}},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
diff --git a/internal/pkg/resourcemanager/resourcemanager.go b/internal/pkg/resourcemanager/resourcemanager.go
index 8f6271d..8ab03f0 100755
--- a/internal/pkg/resourcemanager/resourcemanager.go
+++ b/internal/pkg/resourcemanager/resourcemanager.go
@@ -24,7 +24,6 @@
"fmt"
"github.com/opencord/voltha-openolt-adapter/internal/pkg/olterrors"
"strconv"
- "strings"
"sync"
"time"
@@ -100,14 +99,12 @@
// OpenOltResourceMgr holds resource related information as provided below for each field
type OpenOltResourceMgr struct {
- DeviceID string // OLT device id
- HostAndPort string // Host and port of the kv store to connect to
- Args string // args
- KVStore *db.Backend // backend kv store connection handle
- DeviceType string
- Host string // Host ip of the kv store
- Port int // port of the kv store
- DevInfo *openolt.DeviceInfo // device information
+ DeviceID string // OLT device id
+ Address string // Host and port of the kv store to connect to
+ Args string // args
+ KVStore *db.Backend // backend kv store connection handle
+ DeviceType string
+ DevInfo *openolt.DeviceInfo // device information
// array of pon resource managers per interface technology
ResourceMgrs map[uint32]*ponrmgr.PONResourceManager
@@ -137,8 +134,7 @@
}
// SetKVClient sets the KV client and return a kv backend
-func SetKVClient(backend string, Host string, Port int, DeviceID string) *db.Backend {
- addr := Host + ":" + strconv.Itoa(Port)
+func SetKVClient(backend string, addr string, DeviceID string) *db.Backend {
// TODO : Make sure direct call to NewBackend is working fine with backend , currently there is some
// issue between kv store and backend , core is not calling NewBackend directly
kvClient, err := newKVClient(backend, addr, KvstoreTimeout)
@@ -150,8 +146,7 @@
kvbackend := &db.Backend{
Client: kvClient,
StoreType: backend,
- Host: Host,
- Port: Port,
+ Address: addr,
Timeout: KvstoreTimeout,
PathPrefix: fmt.Sprintf(BasePathKvStore, DeviceID)}
@@ -161,20 +156,16 @@
// NewResourceMgr init a New resource manager instance which in turn instantiates pon resource manager
// instances according to technology. Initializes the default resource ranges for all
// the resources.
-func NewResourceMgr(ctx context.Context, deviceID string, KVStoreHostPort string, kvStoreType string, deviceType string, devInfo *openolt.DeviceInfo) *OpenOltResourceMgr {
+func NewResourceMgr(ctx context.Context, deviceID string, KVStoreAddress string, kvStoreType string, deviceType string, devInfo *openolt.DeviceInfo) *OpenOltResourceMgr {
var ResourceMgr OpenOltResourceMgr
- logger.Debugf("Init new resource manager , host_port: %s, deviceid: %s", KVStoreHostPort, deviceID)
- ResourceMgr.HostAndPort = KVStoreHostPort
+ logger.Debugf("Init new resource manager , address: %s, deviceid: %s", KVStoreAddress, deviceID)
+ ResourceMgr.Address = KVStoreAddress
ResourceMgr.DeviceType = deviceType
ResourceMgr.DevInfo = devInfo
- IPPort := strings.Split(KVStoreHostPort, ":")
- ResourceMgr.Host = IPPort[0]
- ResourceMgr.Port, _ = strconv.Atoi(IPPort[1])
NumPONPorts := devInfo.GetPonPorts()
Backend := kvStoreType
- ResourceMgr.KVStore = SetKVClient(Backend, ResourceMgr.Host,
- ResourceMgr.Port, deviceID)
+ ResourceMgr.KVStore = SetKVClient(Backend, ResourceMgr.Address, deviceID)
if ResourceMgr.KVStore == nil {
logger.Error("Failed to setup KV store")
}
@@ -242,7 +233,7 @@
logger.Debugf("Device info technology %s", technology)
Ranges[technology] = TechRange
RsrcMgrsByTech[technology], err = ponrmgr.NewPONResourceManager(technology, deviceType, deviceID,
- Backend, ResourceMgr.Host, ResourceMgr.Port)
+ Backend, ResourceMgr.Address)
if err != nil {
logger.Errorf("Failed to create pon resource manager instance for technology %s", technology)
return nil
diff --git a/internal/pkg/resourcemanager/resourcemanager_test.go b/internal/pkg/resourcemanager/resourcemanager_test.go
index 2dd75ef..5b2ee29 100644
--- a/internal/pkg/resourcemanager/resourcemanager_test.go
+++ b/internal/pkg/resourcemanager/resourcemanager_test.go
@@ -70,12 +70,10 @@
// fields mocks OpenOltResourceMgr struct.
type fields struct {
DeviceID string
- HostAndPort string
+ Address string
Args string
KVStore *db.Backend
DeviceType string
- Host string
- Port int
DevInfo *openolt.DeviceInfo
ResourceMgrs map[uint32]*ponrmgr.PONResourceManager
NumOfPonPorts uint32
@@ -253,12 +251,10 @@
func testResMgrObject(testResMgr *fields) *OpenOltResourceMgr {
var rsrMgr = OpenOltResourceMgr{
DeviceID: testResMgr.DeviceID,
- HostAndPort: testResMgr.HostAndPort,
Args: testResMgr.Args,
KVStore: testResMgr.KVStore,
DeviceType: testResMgr.DeviceType,
- Host: testResMgr.Host,
- Port: testResMgr.Port,
+ Address: testResMgr.Address,
DevInfo: testResMgr.DevInfo,
ResourceMgrs: testResMgr.ResourceMgrs,
}
@@ -272,11 +268,11 @@
func TestNewResourceMgr(t *testing.T) {
type args struct {
- deviceID string
- KVStoreHostPort string
- kvStoreType string
- deviceType string
- devInfo *openolt.DeviceInfo
+ deviceID string
+ KVStoreAddress string
+ kvStoreType string
+ deviceType string
+ devInfo *openolt.DeviceInfo
}
tests := []struct {
name string
@@ -292,7 +288,7 @@
t.Run(tt.name, func(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
- if got := NewResourceMgr(ctx, tt.args.deviceID, tt.args.KVStoreHostPort, tt.args.kvStoreType, tt.args.deviceType, tt.args.devInfo); reflect.TypeOf(got) != reflect.TypeOf(tt.want) {
+ if got := NewResourceMgr(ctx, tt.args.deviceID, tt.args.KVStoreAddress, tt.args.kvStoreType, tt.args.deviceType, tt.args.devInfo); reflect.TypeOf(got) != reflect.TypeOf(tt.want) {
t.Errorf("NewResourceMgr() = %v, want %v", got, tt.want)
}
})
@@ -942,8 +938,7 @@
func TestSetKVClient(t *testing.T) {
type args struct {
backend string
- Host string
- Port int
+ address string
DeviceID string
}
tests := []struct {
@@ -951,12 +946,12 @@
args args
want *db.Backend
}{
- {"setKVClient-1", args{"consul", "1.1.1.1", 1, "olt1"}, &db.Backend{}},
- {"setKVClient-1", args{"etcd", "2.2.2.2", 2, "olt2"}, &db.Backend{}},
+ {"setKVClient-1", args{"consul", "1.1.1.1:1", "olt1"}, &db.Backend{}},
+ {"setKVClient-1", args{"etcd", "2.2.2.2:2", "olt2"}, &db.Backend{}},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- if got := SetKVClient(tt.args.backend, tt.args.Host, tt.args.Port, tt.args.DeviceID); reflect.TypeOf(got) != reflect.TypeOf(tt.want) {
+ if got := SetKVClient(tt.args.backend, tt.args.address, tt.args.DeviceID); reflect.TypeOf(got) != reflect.TypeOf(tt.want) {
t.Errorf("SetKVClient() = %v, want %v", got, tt.want)
}
})