Fix prefix shard configuration update handling 09/75409/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 22 Aug 2018 16:48:30 +0000 (18:48 +0200)
committerRobert Varga <nite@hq.sk>
Thu, 23 Aug 2018 13:07:00 +0000 (13:07 +0000)
If the list of shards is completely deleted, we end up jumping
into an empty method -- obviously missing updates. This codepath
is really shared, as DataTreeCandidateNode resolves recursively,
creating apropriate delta for children.

Change-Id: I6a70421a5ca405830a1012798f302b390b7aa2f0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 3dc48592696e6a4535c0e125c1e23dbc62bc9091)

opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigUpdateHandler.java

index ac209e3c6dbd532d0febb1f286610ee577874096..7777c9e57ad26d15753c732e38d5d31430cbbaf2 100644 (file)
@@ -97,21 +97,19 @@ public class PrefixedShardConfigUpdateHandler {
             switch (candidate.getRootNode().getModificationType()) {
                 case UNMODIFIED:
                     break;
-                case SUBTREE_MODIFIED:
                 case APPEARED:
-                case WRITE:
-                    resolveWrite(candidate.getRootNode());
-                    break;
                 case DELETE:
                 case DISAPPEARED:
-                    resolveDelete(candidate.getRootNode());
+                case SUBTREE_MODIFIED:
+                case WRITE:
+                    resolveModifiedRoot(candidate.getRootNode());
                     break;
                 default:
                     break;
             }
         }
 
-        private void resolveWrite(final DataTreeCandidateNode rootNode) {
+        private void resolveModifiedRoot(final DataTreeCandidateNode rootNode) {
 
             LOG.debug("{}: New config received {}", logName, rootNode);
             LOG.debug("{}: Data after: {}", logName, rootNode.getDataAfter());
@@ -183,10 +181,6 @@ public class PrefixedShardConfigUpdateHandler {
             handlingActor.tell(message, noSender());
         }
 
-        private void resolveDelete(final DataTreeCandidateNode rootNode) {
-
-        }
-
         @Override
         public String toString() {
             return "ShardConfigHandler [logName=" + logName + ", handlingActor=" + handlingActor + "]";