VOL-1537 : Create the Alarm Framework in golang openolt adapter
Event manager is added to process indications comming from the
OLT and publish them as generic events on to the KAFKA bus which
could be device alarms or KPIs.
It depends on the updated events.proto which contains the defination
for the generic event gRPC message and the event proxy from the VOLTHA
core.
So the changes in voltha-proto needs to be merged first followed by the
changes in voltha-go and then voltha-openolt-adapter.
Change-Id: Ie38b2ea01bd738737522c018e65e685ee41589d5
diff --git a/adaptercore/openolt.go b/adaptercore/openolt.go
index ce501ef..abbc4e3 100644
--- a/adaptercore/openolt.go
+++ b/adaptercore/openolt.go
@@ -36,6 +36,7 @@
deviceHandlers map[string]*DeviceHandler
coreProxy *com.CoreProxy
adapterProxy *com.AdapterProxy
+ eventProxy *com.EventProxy
kafkaICProxy *kafka.InterContainerProxy
numOnus int
KVStoreHost string
@@ -46,7 +47,7 @@
}
//NewOpenOLT returns a new instance of OpenOLT
-func NewOpenOLT(ctx context.Context, kafkaICProxy *kafka.InterContainerProxy, coreProxy *com.CoreProxy, adapterProxy *com.AdapterProxy, onuNumber int, kvStoreHost string, kvStorePort int, KVStoreType string) *OpenOLT {
+func NewOpenOLT(ctx context.Context, kafkaICProxy *kafka.InterContainerProxy, coreProxy *com.CoreProxy, adapterProxy *com.AdapterProxy, eventProxy *com.EventProxy, onuNumber int, kvStoreHost string, kvStorePort int, KVStoreType string) *OpenOLT {
var openOLT OpenOLT
openOLT.exitChannel = make(chan int, 1)
openOLT.deviceHandlers = make(map[string]*DeviceHandler)
@@ -54,6 +55,7 @@
openOLT.numOnus = onuNumber
openOLT.coreProxy = coreProxy
openOLT.adapterProxy = adapterProxy
+ openOLT.eventProxy = eventProxy
openOLT.KVStoreHost = kvStoreHost
openOLT.KVStorePort = kvStorePort
openOLT.KVStoreType = KVStoreType
@@ -132,7 +134,7 @@
log.Infow("adopt-device", log.Fields{"deviceId": device.Id})
var handler *DeviceHandler
if handler = oo.getDeviceHandler(device.Id); handler == nil {
- handler := NewDeviceHandler(oo.coreProxy, oo.adapterProxy, device, oo)
+ handler := NewDeviceHandler(oo.coreProxy, oo.adapterProxy, oo.eventProxy, device, oo)
oo.addDeviceHandlerToMap(handler)
go handler.AdoptDevice(device)
// Launch the creation of the device topic