[VOL-4445] Correct error type to proceed with deletion with half route
ALso moving deletion of logical device and meters to correct place in transitions.go
Change-Id: I91242ae9611792a1aeb7ac9ebd6116a5fe820392
diff --git a/rw_core/core/device/logical_manager.go b/rw_core/core/device/logical_manager.go
index 7ed5f8c..e663632 100644
--- a/rw_core/core/device/logical_manager.go
+++ b/rw_core/core/device/logical_manager.go
@@ -104,6 +104,7 @@
}
func (ldMgr *LogicalManager) deleteLogicalDeviceAgent(logicalDeviceID string) {
+ logger.Debugw(context.Background(), "delete-logical-device-agent", log.Fields{"logical-device-id": logicalDeviceID})
ldMgr.logicalDeviceAgents.Delete(logicalDeviceID)
}
@@ -272,6 +273,10 @@
return errors.New("device-not-root")
}
logDeviceID := device.ParentId
+ if err := ldMgr.deleteAllLogicalMeters(ctx, logDeviceID); err != nil {
+ // Just log the error. The logical device or port may already have been deleted before this callback is invoked.
+ logger.Warnw(ctx, "delete-logical-meters-error", log.Fields{"device-id": logDeviceID, "error": err})
+ }
if agent := ldMgr.getLogicalDeviceAgent(ctx, logDeviceID); agent != nil {
// Stop the logical device agent
if err := agent.stop(ctx); err != nil {
@@ -280,6 +285,8 @@
}
//Remove the logical device agent from the Map
ldMgr.deleteLogicalDeviceAgent(logDeviceID)
+ } else {
+ logger.Warnw(ctx, "no-logical-device-agent-on-deletion", log.Fields{"device-id": logDeviceID})
}
logger.Debug(ctx, "deleting-logical-device-ends")