Repository: telstra/open-kilda
Issue: flowHistory: stateBefore is showing new value instead of old one

**Steps to reproduce:**

1. create a flow
2. update the flow (i.e. sourceVlan 30 -> 40)

**Actual result:**
flow is updated and valid
but the `stateBefore` action in flowHistory is showing new value of vlan
```
{
                "type": "stateBefore",
                 ...
                "sourceVlan": 40,
```

**Expected result:**
The `stateBefore` section should show the old value of vlan
```
{
                "type": "stateBefore",
                 ...
                "sourceVlan": 30,
```

Changed files:
src-java/flowhs-topology/flowhs-storm-topology/src/main/java/org/openkilda/wfm/topology/flowhs/fsm/update/actions/CompleteFlowPathRemovalAction.java

diff --git a/src-java/flowhs-topology/flowhs-storm-topology/src/main/java/org/openkilda/wfm/topology/flowhs/fsm/update/actions/CompleteFlowPathRemovalAction.java b/src-java/flowhs-topology/flowhs-storm-topology/src/main/java/org/openkilda/wfm/topology/flowhs/fsm/update/actions/CompleteFlowPathRemovalAction.java
index 01250983f..cfc819fc2 100644
--- a/src-java/flowhs-topology/flowhs-storm-topology/src/main/java/org/openkilda/wfm/topology/flowhs/fsm/update/actions/CompleteFlowPathRemovalAction.java
+++ b/src-java/flowhs-topology/flowhs-storm-topology/src/main/java/org/openkilda/wfm/topology/flowhs/fsm/update/actions/CompleteFlowPathRemovalAction.java
@@ -25,6 +25,7 @@ import org.openkilda.wfm.topology.flowhs.fsm.update.FlowUpdateContext;
 import org.openkilda.wfm.topology.flowhs.fsm.update.FlowUpdateFsm;
 import org.openkilda.wfm.topology.flowhs.fsm.update.FlowUpdateFsm.Event;
 import org.openkilda.wfm.topology.flowhs.fsm.update.FlowUpdateFsm.State;
+import org.openkilda.wfm.topology.flowhs.mapper.RequestedFlowMapper;
 
 import lombok.extern.slf4j.Slf4j;
 import net.jodah.failsafe.RetryPolicy;
@@ -55,6 +56,7 @@ public class CompleteFlowPathRemovalAction extends
 
     private void removeFlowPaths(FlowUpdateFsm stateMachine) {
         Flow flow = getFlow(stateMachine.getFlowId());
+        Flow originalFlow = RequestedFlowMapper.INSTANCE.toFlow(stateMachine.getOriginalFlow());
 
         FlowPath oldPrimaryForward = flow.getPath(stateMachine.getOldPrimaryForwardPath()).orElse(null);
         FlowPath oldPrimaryReverse = flow.getPath(stateMachine.getOldPrimaryReversePath()).orElse(null);
@@ -70,16 +72,16 @@ public class CompleteFlowPathRemovalAction extends
                 FlowPathPair pathsToDelete =
                         FlowPathPair.builder().forward(oldPrimaryForward).reverse(oldPrimaryReverse).build();
                 deleteFlowPaths(pathsToDelete);
-                saveRemovalActionWithDumpToHistory(stateMachine, flow, pathsToDelete);
+                saveRemovalActionWithDumpToHistory(stateMachine, originalFlow, pathsToDelete);
             } else {
                 log.debug("Completing removal of the flow path {} (no reverse pair)", oldPrimaryForward);
                 deleteFlowPath(oldPrimaryForward);
-                saveRemovalActionWithDumpToHistory(stateMachine, flow, oldPrimaryForward);
+                saveRemovalActionWithDumpToHistory(stateMachine, originalFlow, oldPrimaryForward);
             }
         } else if (oldPrimaryReverse != null) {
             log.debug("Completing removal of the flow path {} (no forward pair)", oldPrimaryReverse);
             deleteFlowPath(oldPrimaryReverse);
-            saveRemovalActionWithDumpToHistory(stateMachine, flow, oldPrimaryReverse);
+            saveRemovalActionWithDumpToHistory(stateMachine, originalFlow, oldPrimaryReverse);
         }
 
         if (oldProtectedForward != null) {
@@ -88,16 +90,16 @@ public class CompleteFlowPathRemovalAction extends
                 FlowPathPair pathsToDelete =
                         FlowPathPair.builder().forward(oldProtectedForward).reverse(oldProtectedReverse).build();
                 deleteFlowPaths(pathsToDelete);
-                saveRemovalActionWithDumpToHistory(stateMachine, flow, pathsToDelete);
+                saveRemovalActionWithDumpToHistory(stateMachine, originalFlow, pathsToDelete);
             } else {
                 log.debug("Completing removal of the flow path {} (no reverse pair)", oldProtectedForward);
                 deleteFlowPath(oldProtectedForward);
-                saveRemovalActionWithDumpToHistory(stateMachine, flow, oldProtectedForward);
+                saveRemovalActionWithDumpToHistory(stateMachine, originalFlow, oldProtectedForward);
             }
         } else if (oldProtectedReverse != null) {
             log.debug("Completing removal of the flow path {} (no forward pair)", oldProtectedReverse);
             deleteFlowPath(oldProtectedReverse);
-            saveRemovalActionWithDumpToHistory(stateMachine, flow, oldProtectedReverse);
+            saveRemovalActionWithDumpToHistory(stateMachine, originalFlow, oldProtectedReverse);
         }
     }
 }