VOL-4511: Fix logical Meters are not deleted from the kv store after olt
device delete some times - part 3
- Delay logical device deletion from model until logical meters are cleared
- During meter updates have additional checks to see if the logical device
exists in model.
Change-Id: I09788b6cdc00779c5f9f5de0e691de79608262fb
diff --git a/rw_core/core/device/logical_agent_meter.go b/rw_core/core/device/logical_agent_meter.go
index a82052a..d6e949a 100644
--- a/rw_core/core/device/logical_agent_meter.go
+++ b/rw_core/core/device/logical_agent_meter.go
@@ -59,9 +59,11 @@
}
defer agent.requestQueue.RequestComplete()
- // If the logical-device-agent is stopped, return
if agent.stopped {
- logger.Warnw(ctx, "logical-agent-stopped-not-handling-meter", log.Fields{"logical-device-id": agent.logicalDeviceID})
+ logger.Warnw(ctx, "logical-device-already-stopped-not-handling-meter", log.Fields{"logical-device-id": agent.logicalDeviceID})
+ return nil
+ } else if _, err := agent.ldeviceMgr.getLogicalDeviceFromModel(ctx, agent.logicalDeviceID); err != nil {
+ logger.Warnw(ctx, "logical-device-already-removed-not-handling-meter", log.Fields{"logical-device-id": agent.logicalDeviceID})
return nil
}