[ONOS-7755] Apply initial cluster configuration on ClusterStore activation to avoid INSTANCE_DEACTIVATED events when applied by ClusterManager

Change-Id: I5e17c293fe40d9941184f4e67b1955bc7bbb76d3
diff --git a/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java b/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java
index 56ea048..820092f 100644
--- a/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java
+++ b/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java
@@ -100,7 +100,6 @@
         store.setDelegate(delegate);
         eventDispatcher.addSink(ClusterEvent.class, listenerRegistry);
         clusterMetadataService.addListener(metadataListener);
-        processMetadata(clusterMetadataService.getClusterMetadata());
         log.info("Started");
     }
 
diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/DistributedClusterStore.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/DistributedClusterStore.java
index 408c13a..374abf2 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/DistributedClusterStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/impl/DistributedClusterStore.java
@@ -175,6 +175,8 @@
         heartbeatFuture = heartbeatScheduler.scheduleWithFixedDelay(this::heartbeat, 0,
                 heartbeatInterval, TimeUnit.MILLISECONDS);
 
+        clusterMetadataService.getClusterMetadata().getNodes().forEach(this::addNode);
+
         log.info("Started");
     }
 
diff --git a/core/store/dist/src/test/java/org/onosproject/store/cluster/impl/DistributedClusterStoreTest.java b/core/store/dist/src/test/java/org/onosproject/store/cluster/impl/DistributedClusterStoreTest.java
index e651288..7890838 100644
--- a/core/store/dist/src/test/java/org/onosproject/store/cluster/impl/DistributedClusterStoreTest.java
+++ b/core/store/dist/src/test/java/org/onosproject/store/cluster/impl/DistributedClusterStoreTest.java
@@ -104,6 +104,9 @@
     @Test
     public void addNodes() {
         clusterStore.setDelegate(delegate);
+        nodes = clusterStore.getNodes();
+        assertThat(nodes.size(), is(1));
+
         assertThat(clusterStore.hasDelegate(), is(true));
         clusterStore.addNode(NID1, IP1, PORT1);
         clusterStore.addNode(NID2, IP2, PORT2);
@@ -119,7 +122,7 @@
         assertThat(clusterStore.getState(clusterStore.getLocalNode().id()),
                 is(ControllerNode.State.ACTIVE));
         nodes = clusterStore.getNodes();
-        assertThat(nodes.size(), is(2));
+        assertThat(nodes.size(), is(3));
         clusterStore.markFullyStarted(true);
 
         clusterStore.unsetDelegate(delegate);