ONOS-3763 Change flow state to PENDING_ADD when retrying

Will emit a RULE_UPDATE event if the state is changed.
Update unit test accordingly.

Change-Id: Ie84778c62f52f15b7636d41db246814145e73f77
diff --git a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/NewDistributedFlowRuleStore.java b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/NewDistributedFlowRuleStore.java
index 99dec1d..662a7eb 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/NewDistributedFlowRuleStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/NewDistributedFlowRuleStore.java
@@ -526,6 +526,19 @@
     }
 
     @Override
+    public FlowRuleEvent pendingFlowRule(FlowEntry rule) {
+        if (mastershipService.isLocalMaster(rule.deviceId())) {
+            StoredFlowEntry stored = flowTable.getFlowEntry(rule);
+            if (stored != null &&
+                    stored.state() != FlowEntryState.PENDING_ADD) {
+                stored.setState(FlowEntryState.PENDING_ADD);
+                return new FlowRuleEvent(Type.RULE_UPDATED, rule);
+            }
+        }
+        return null;
+    }
+
+    @Override
     public FlowRuleEvent addOrUpdateFlowRule(FlowEntry rule) {
         NodeId master = mastershipService.getMasterFor(rule.deviceId());
         if (Objects.equals(local, master)) {