[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: I9eee03edba9ae47ec09fc3b752082a740ee0efde
diff --git a/rw_core/core/device/logical_manager.go b/rw_core/core/device/logical_manager.go
index 17ffe9f..cde76ae 100644
--- a/rw_core/core/device/logical_manager.go
+++ b/rw_core/core/device/logical_manager.go
@@ -273,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 {
@@ -281,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")