From 94f1bfcc93e46dc08f806e9a3b495abc9d9bf53d Mon Sep 17 00:00:00 2001 From: Oleg Mitsura Date: Tue, 5 Nov 2019 15:37:15 -0500 Subject: netconf retry disconnect() Issue-ID: CCSDK-1908 Signed-off-by: Oleg Mitsura Change-Id: I90ca822c042ec84fda717a152c4f699bacdd87ad --- .../functions/netconf/executor/core/NetconfSessionImpl.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'ms/blueprintsprocessor/functions/netconf-executor') diff --git a/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfSessionImpl.kt b/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfSessionImpl.kt index a0f653591..69b9d70bf 100644 --- a/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfSessionImpl.kt +++ b/ms/blueprintsprocessor/functions/netconf-executor/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/netconf/executor/core/NetconfSessionImpl.kt @@ -66,8 +66,15 @@ class NetconfSessionImpl(private val deviceInfo: DeviceInfo, private val rpcServ } override fun disconnect() { - if (rpcService.closeSession(false).status.equals( - RpcStatus.FAILURE, true)) { + var retryNum = 3 + while(rpcService.closeSession(false).status + .equals(RpcStatus.FAILURE, true) &&retryNum>0) { + log.error("disconnect: graceful disconnect failed, attempt $retryNum") + retryNum--; + } + //if we can't close the session, try to force terminate. + if(retryNum == 0) { + log.error("disconnect: trying to force-terminate the session.") rpcService.closeSession(true) } try { @@ -276,6 +283,7 @@ class NetconfSessionImpl(private val deviceInfo: DeviceInfo, private val rpcServ */ @Throws(IOException::class) private fun close() { + log.debug("close was called.") session.close() // Closes the socket which should interrupt the streamHandler channel.close() -- cgit 1.2.3-korg