[VOL-2835] Using different topic per ONU device
Change-Id: I3e55064292f28f9bf39ad6bc75fd5758f5313317
diff --git a/rw_core/core/device_agent.go b/rw_core/core/device_agent.go
index 69391fb..dccd271 100755
--- a/rw_core/core/device_agent.go
+++ b/rw_core/core/device_agent.go
@@ -254,15 +254,16 @@
// First figure out which adapter will handle this device type. We do it at this stage as allow devices to be
// pre-provisioned with the required adapter not registered. At this stage, since we need to communicate
// with the adapter then we need to know the adapter that will handle this request
- adapterName, err := agent.adapterMgr.getAdapterName(cloned.Type)
+ adapterName, err := agent.adapterMgr.getAdapterType(cloned.Type)
if err != nil {
return err
}
cloned.Adapter = adapterName
if cloned.AdminState == voltha.AdminState_ENABLED {
- logger.Debugw("device-already-enabled", log.Fields{"device-id": agent.deviceID})
- return nil
+ logger.Warnw("device-already-enabled", log.Fields{"device-id": agent.deviceID})
+ err = status.Error(codes.FailedPrecondition, fmt.Sprintf("cannot-enable-an-already-enabled-device: %s ", cloned.Id))
+ return err
}
if cloned.AdminState == voltha.AdminState_DELETED {
@@ -1665,14 +1666,18 @@
}
device := agent.getDeviceWithoutLock()
- adapterName, err := agent.adapterMgr.getAdapterName(device.Type)
- if err != nil {
- agent.requestQueue.RequestComplete()
- return nil, err
+
+ if device.Adapter == "" {
+ adapterName, err := agent.adapterMgr.getAdapterType(device.Type)
+ if err != nil {
+ agent.requestQueue.RequestComplete()
+ return nil, err
+ }
+
+ device.Adapter = adapterName
}
// Send request to the adapter
- device.Adapter = adapterName
ch, err := agent.adapterProxy.startOmciTest(ctx, device, omcitestrequest)
agent.requestQueue.RequestComplete()
if err != nil {