Removing fixed ssh timout on netconf session, if not otherwise specified it will default to INFINITE
Re-Adding down listener to thread upon session re-establishment. Enables re-opening every time.
Change-Id: I4c236cb5ff91a0a0fa6c5f70de79728415c2e63a
(cherry picked from commit 59227c30a404074a4aefa63d3b7ca70becf61da0)
diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java
index c7870b8..9a70597 100644
--- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java
+++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfSessionMinaImpl.java
@@ -224,10 +224,12 @@
deviceInfo.getDeviceId());
client = SshClient.setUpDefaultClient();
- client.getProperties().putIfAbsent(FactoryManager.IDLE_TIMEOUT,
- TimeUnit.SECONDS.toMillis(idleTimeout));
- client.getProperties().putIfAbsent(FactoryManager.NIO2_READ_TIMEOUT,
- TimeUnit.SECONDS.toMillis(idleTimeout + 15L));
+ if (idleTimeout != NetconfControllerImpl.netconfIdleTimeout) {
+ client.getProperties().putIfAbsent(FactoryManager.IDLE_TIMEOUT,
+ TimeUnit.SECONDS.toMillis(idleTimeout));
+ client.getProperties().putIfAbsent(FactoryManager.NIO2_READ_TIMEOUT,
+ TimeUnit.SECONDS.toMillis(idleTimeout + 15L));
+ }
client.start();
client.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
startSession();
@@ -294,6 +296,7 @@
streamHandler = new NetconfStreamThread(channel.getInvertedOut(), channel.getInvertedIn(),
channel.getInvertedErr(), deviceInfo,
new NetconfSessionDelegateImpl(), replies);
+ primaryListeners.forEach(l -> streamHandler.addDeviceEventListener(l));
} else {
throw new NetconfException("Failed to open channel with device " +
deviceInfo);
diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfStreamThread.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfStreamThread.java
index 343db0d..ab639e9 100644
--- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfStreamThread.java
+++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfStreamThread.java
@@ -251,7 +251,7 @@
int cInt = bufferReader.read();
if (cInt == -1) {
log.debug("Netconf device {} sent error char in session," +
- " will need to be reopend", netconfDeviceInfo);
+ " will need to be reopened", netconfDeviceInfo);
NetconfDeviceOutputEvent event = new NetconfDeviceOutputEvent(
NetconfDeviceOutputEvent.Type.SESSION_CLOSED,
null, null, Optional.of(-1), netconfDeviceInfo);