VOL-2180 code changes for context addition
Integrating InterContainerProxy interface changes
Change-Id: Ia20c5ac3093b7845acf80cce801ec0c1d90c125f
diff --git a/adaptercore/openolt.go b/adaptercore/openolt.go
index cfa3299..15e8aae 100644
--- a/adaptercore/openolt.go
+++ b/adaptercore/openolt.go
@@ -39,7 +39,7 @@
coreProxy adapterif.CoreProxy
adapterProxy adapterif.AdapterProxy
eventProxy adapterif.EventProxy
- kafkaICProxy *kafka.InterContainerProxy
+ kafkaICProxy kafka.InterContainerProxy
config *config.AdapterFlags
numOnus int
KVStoreHost string
@@ -53,7 +53,7 @@
}
//NewOpenOLT returns a new instance of OpenOLT
-func NewOpenOLT(ctx context.Context, kafkaICProxy *kafka.InterContainerProxy,
+func NewOpenOLT(ctx context.Context, kafkaICProxy kafka.InterContainerProxy,
coreProxy adapterif.CoreProxy, adapterProxy adapterif.AdapterProxy,
eventProxy adapterif.EventProxy, cfg *config.AdapterFlags) *OpenOLT {
var openOLT OpenOLT
@@ -128,7 +128,8 @@
//createDeviceTopic returns
func (oo *OpenOLT) createDeviceTopic(device *voltha.Device) error {
log.Infow("create-device-topic", log.Fields{"deviceId": device.Id})
- deviceTopic := kafka.Topic{Name: oo.kafkaICProxy.DefaultTopic.Name + "_" + device.Id}
+ defaultTopic := oo.kafkaICProxy.GetDefaultTopic()
+ deviceTopic := kafka.Topic{Name: defaultTopic.Name + "_" + device.Id}
// TODO for the offset
if err := oo.kafkaICProxy.SubscribeWithDefaultRequestHandler(deviceTopic, 0); err != nil {
log.Infow("create-device-topic-failed", log.Fields{"deviceId": device.Id, "error": err})
@@ -139,6 +140,7 @@
// Adopt_device creates a new device handler if not present already and then adopts the device
func (oo *OpenOLT) Adopt_device(device *voltha.Device) error {
+ ctx := context.Background()
if device == nil {
log.Warn("device-is-nil")
return errors.New("nil-device")
@@ -148,7 +150,7 @@
if handler = oo.getDeviceHandler(device.Id); handler == nil {
handler := NewDeviceHandler(oo.coreProxy, oo.adapterProxy, oo.eventProxy, device, oo)
oo.addDeviceHandlerToMap(handler)
- go handler.AdoptDevice(device)
+ go handler.AdoptDevice(ctx, device)
// Launch the creation of the device topic
// go oo.createDeviceTopic(device)
}
@@ -206,6 +208,7 @@
//Reconcile_device unimplemented
func (oo *OpenOLT) Reconcile_device(device *voltha.Device) error {
+ ctx := context.Background()
if device == nil {
log.Warn("device-is-nil")
return errors.New("nil-device")
@@ -216,7 +219,7 @@
handler := NewDeviceHandler(oo.coreProxy, oo.adapterProxy, oo.eventProxy, device, oo)
oo.addDeviceHandlerToMap(handler)
handler.transitionMap = NewTransitionMap(handler)
- handler.transitionMap.Handle(DeviceInit)
+ handler.transitionMap.Handle(ctx, DeviceInit)
}
return nil
}
@@ -265,8 +268,9 @@
//Delete_device unimplemented
func (oo *OpenOLT) Delete_device(device *voltha.Device) error {
log.Infow("delete-device", log.Fields{"deviceId": device.Id})
+ ctx := context.Background()
if handler := oo.getDeviceHandler(device.Id); handler != nil {
- if err := handler.DeleteDevice(device); err != nil {
+ if err := handler.DeleteDevice(ctx, device); err != nil {
log.Errorw("failed-to-handle-delete-device", log.Fields{"device-id": device.Id})
}
oo.deleteDeviceHandlerToMap(handler)
@@ -289,8 +293,9 @@
//Update_flows_incrementally updates (add/remove) the flows on a given device
func (oo *OpenOLT) Update_flows_incrementally(device *voltha.Device, flows *openflow_13.FlowChanges, groups *openflow_13.FlowGroupChanges, flowMetadata *voltha.FlowMetadata) error {
log.Debugw("Update_flows_incrementally", log.Fields{"deviceId": device.Id, "flows": flows, "flowMetadata": flowMetadata})
+ ctx := context.Background()
if handler := oo.getDeviceHandler(device.Id); handler != nil {
- return handler.UpdateFlowsIncrementally(device, flows, groups, flowMetadata)
+ return handler.UpdateFlowsIncrementally(ctx, device, flows, groups, flowMetadata)
}
log.Errorw("Update_flows_incrementally failed-device-handler-not-set", log.Fields{"deviceId": device.Id})
return errors.New("device-handler-not-set")
@@ -304,8 +309,9 @@
//Receive_packet_out sends packet out to the device
func (oo *OpenOLT) Receive_packet_out(deviceID string, egressPortNo int, packet *openflow_13.OfpPacketOut) error {
log.Debugw("Receive_packet_out", log.Fields{"deviceId": deviceID, "egress_port_no": egressPortNo, "pkt": packet})
+ ctx := context.Background()
if handler := oo.getDeviceHandler(deviceID); handler != nil {
- return handler.PacketOut(egressPortNo, packet)
+ return handler.PacketOut(ctx, egressPortNo, packet)
}
log.Errorw("Receive_packet_out failed-device-handler-not-set", log.Fields{"deviceId": deviceID, "egressport": egressPortNo, "packet": packet})
return errors.New("device-handler-not-set")