X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fmd%2Fsal%2Fconnector%2Fnetconf%2FNetconfConnectorModule.java;h=55a1fbfe486a03f033ba961586675cb21beea2d6;hb=03abf047ba966c53f4901d36ae5198156d66dc05;hp=2a556c9be41c235aee2fb76ff8b712ffe33c6761;hpb=b2d4575c4425e3b3d5aeaf1190e01e5d5a5286aa;p=controller.git diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java index 2a556c9be4..55a1fbfe48 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java @@ -10,6 +10,7 @@ package org.opendaylight.controller.config.yang.md.sal.connector.netconf; import io.netty.channel.EventLoopGroup; +import io.netty.util.concurrent.GlobalEventExecutor; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -17,7 +18,12 @@ import java.net.InetSocketAddress; import javax.net.ssl.SSLContext; import org.opendaylight.controller.netconf.client.NetconfClientDispatcher; +import org.opendaylight.controller.netconf.client.NetconfSshClientDispatcher; +import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler; +import org.opendaylight.controller.netconf.util.handler.ssh.authentication.LoginPassword; import org.opendaylight.controller.sal.connect.netconf.NetconfDevice; +import org.opendaylight.protocol.framework.ReconnectStrategy; +import org.opendaylight.protocol.framework.TimedReconnectStrategy; import org.osgi.framework.BundleContext; import static com.google.common.base.Preconditions.*; @@ -59,6 +65,8 @@ public final class NetconfConnectorModule extends org.opendaylight.controller.co String addressValue = getAddress(); + int attemptMsTimeout = 60*1000; + int connectionAttempts = 5; /* * Uncomment after Switch to IP Address if(getAddress().getIpv4Address() != null) { @@ -68,15 +76,25 @@ public final class NetconfConnectorModule extends org.opendaylight.controller.co } */ + ReconnectStrategy strategy = new TimedReconnectStrategy(GlobalEventExecutor.INSTANCE, attemptMsTimeout, 1000, 1.0, null, + Long.valueOf(connectionAttempts), null); + + + device.setStrategy(strategy); + InetAddress addr = InetAddresses.forString(addressValue); InetSocketAddress socketAddress = new InetSocketAddress(addr , getPort().intValue()); device.setSocketAddress(socketAddress); EventLoopGroup bossGroup = getBossThreadGroupDependency(); EventLoopGroup workerGroup = getWorkerThreadGroupDependency(); - Optional maybeContext = Optional.absent(); - NetconfClientDispatcher dispatcher = new NetconfClientDispatcher(maybeContext , bossGroup, workerGroup); - + NetconfClientDispatcher dispatcher = null; + if(getTcpOnly()) { + dispatcher = new NetconfClientDispatcher( bossGroup, workerGroup); + } else { + AuthenticationHandler authHandler = new LoginPassword(getUsername(),getPassword()); + dispatcher = new NetconfSshClientDispatcher(authHandler , bossGroup, workerGroup); + } getDomRegistryDependency().registerProvider(device, bundleContext); device.start(dispatcher);