summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/netconfnode-state-service/provider
diff options
context:
space:
mode:
authorMichael Dürre <michael.duerre@highstreet-technologies.com>2020-03-25 08:35:03 +0100
committerMichael Dürre <michael.duerre@highstreet-technologies.com>2020-03-25 08:35:16 +0100
commita5e2f5a7f1c71954215615a58c1364c7bfe785bd (patch)
treeee9363dc1040e7774a569111b76042759a7ef394 /sdnr/wt/netconfnode-state-service/provider
parentbc9425a00d19b75b149fbbf0c4ea7345de8721d5 (diff)
fix connection state machine
fixed state handlers for netconf nodes Issue-ID: SDNC-1134 Signed-off-by: Michael Dürre <michael.duerre@highstreet-technologies.com> Change-Id: Ibd63e84e4cc891a03ef5bd499760804a8cb89e93
Diffstat (limited to 'sdnr/wt/netconfnode-state-service/provider')
-rw-r--r--sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java21
-rw-r--r--sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java4
2 files changed, 14 insertions, 11 deletions
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java
index 041ab9a23..adced6b33 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/impl/NetconfNodeStateServiceImpl.java
@@ -460,7 +460,7 @@ public class NetconfNodeStateServiceImpl implements NetconfNodeStateService, Rpc
// enterConnected state.after == connected
// => Here create or update by checking root.getDataBefore() != null
- boolean connectedBefore, connectedAfter;
+ boolean connectedBefore, connectedAfter, created=false;
NetconfNode nNodeAfter = getNetconfNode(root.getDataAfter());
connectedAfter = isConnected(nNodeAfter);
if (root.getDataBefore() != null) {
@@ -470,6 +470,7 @@ public class NetconfNodeStateServiceImpl implements NetconfNodeStateService, Rpc
} else {
// It is a create
connectedBefore = false;
+ created = true;
}
LOG.info(
@@ -477,14 +478,16 @@ public class NetconfNodeStateServiceImpl implements NetconfNodeStateService, Rpc
nodeId, connectedBefore, connectedAfter,
getClusteredConnectionStatus(nNodeAfter), isCluster);
+ if(created) {
+ netconfNodeStateListenerList.forEach(item -> {
+ try {
+ item.onCreated(nodeId, nNodeAfter);
+ } catch (Exception e) {
+ LOG.info("Exception during onCreated listener call", e);
+ }
+ });
+ }
if (!connectedBefore && connectedAfter) {
- netconfNodeStateListenerList.forEach(item -> {
- try {
- item.onCreated(nodeId, nNodeAfter);
- } catch (Exception e) {
- LOG.info("Exception during onCreated listener call", e);
- }
- });
enterConnectedState(nodeId, nNodeAfter);
} else {
LOG.debug("State change {} {}", connectedBefore, connectedAfter);
@@ -534,7 +537,7 @@ public class NetconfNodeStateServiceImpl implements NetconfNodeStateService, Rpc
@Override
public void onDataTreeChanged(@NonNull Collection<DataTreeModification<Node>> changes) {
LOG.info("L1 TreeChange enter changes:{}", changes.size());
- onDataTreeChangedHandler(changes);
+ new Thread( () -> onDataTreeChangedHandler(changes)).start();
LOG.info("L1 TreeChange leave");
}
}
diff --git a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java
index 372d41225..5427c0339 100644
--- a/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java
+++ b/sdnr/wt/netconfnode-state-service/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/netconfnodestateservice/test/TestNetconfNodeStateService.java
@@ -179,7 +179,7 @@ public class TestNetconfNodeStateService {
@SuppressWarnings("unchecked")
@Test
- public void test5OnConnect() {
+ public void test5OnConnect() throws InterruptedException {
System.out.println("Test5: On Connect");
NetconfNodeBuilder netconfNodeBuilder = new NetconfNodeBuilder();
netconfNodeBuilder.setConnectionStatus(ConnectionStatus.Connected);
@@ -208,7 +208,7 @@ public class TestNetconfNodeStateService {
Collection<DataTreeModification<Node>> changes = Arrays.asList(ntn);
dataBrokerNetconf.sendClusteredChanges(changes);
dataBrokerNetconf.sendChanges(changes);
-
+ Thread.sleep(300);
//verify that it was called one time and nodeId is the expected
ArgumentCaptor<NetconfAccessor> varArgs = ArgumentCaptor.forClass(NetconfAccessor.class);
verify(nCL).onEnterConnected(varArgs.capture());