Fix prefix shard configuration update handling 10/75410/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 22 Aug 2018 16:48:30 +0000 (18:48 +0200)
committerRobert Varga <nite@hq.sk>
Fri, 31 Aug 2018 07:58:59 +0000 (07:58 +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 0fdd25b736d4e28dc641de5bcbfc4fa1e793e9b9..1e66728aa4272f39439432c619cfd888faa2714c 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 + "]";