[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")