use of org.opendaylight.netconf.client.NetconfClientDispatcherImpl in project netconf by opendaylight.
the class NetconfDeviceCommunicatorTest method testNetconfDeviceReconnectInCommunicator.
/**
* Test whether reconnect is scheduled properly.
*/
@Test
public void testNetconfDeviceReconnectInCommunicator() {
final RemoteDevice<NetconfSessionPreferences, NetconfMessage, NetconfDeviceCommunicator> device = mock(RemoteDevice.class);
final TimedReconnectStrategy timedReconnectStrategy = new TimedReconnectStrategy(GlobalEventExecutor.INSTANCE, 10000, 0, 1.0, null, 100L, null);
final ReconnectStrategy reconnectStrategy = spy(new ReconnectStrategy() {
@Override
@Deprecated
public int getConnectTimeout() throws Exception {
return timedReconnectStrategy.getConnectTimeout();
}
@Override
@Deprecated
public Future<Void> scheduleReconnect(final Throwable cause) {
return timedReconnectStrategy.scheduleReconnect(cause);
}
@Override
@Deprecated
public void reconnectSuccessful() {
timedReconnectStrategy.reconnectSuccessful();
}
});
final EventLoopGroup group = new NioEventLoopGroup();
final Timer time = new HashedWheelTimer();
try {
final NetconfDeviceCommunicator listener = new NetconfDeviceCommunicator(new RemoteDeviceId("test", InetSocketAddress.createUnresolved("localhost", 22)), device, 10);
final NetconfReconnectingClientConfiguration cfg = NetconfReconnectingClientConfigurationBuilder.create().withAddress(new InetSocketAddress("localhost", 65000)).withReconnectStrategy(reconnectStrategy).withConnectStrategyFactory(() -> reconnectStrategy).withAuthHandler(new LoginPasswordHandler("admin", "admin")).withConnectionTimeoutMillis(10000).withProtocol(NetconfClientConfiguration.NetconfClientProtocol.SSH).withSessionListener(listener).build();
listener.initializeRemoteConnection(new NetconfClientDispatcherImpl(group, group, time), cfg);
verify(reconnectStrategy, timeout(TimeUnit.MINUTES.toMillis(4)).times(101)).scheduleReconnect(any(Throwable.class));
} finally {
time.stop();
group.shutdownGracefully();
}
}
use of org.opendaylight.netconf.client.NetconfClientDispatcherImpl in project lighty-netconf-simulator by PANTHEONtech.
the class ToasterDeviceTest method setUpClass.
@BeforeAll
public static void setUpClass() {
deviceSimulator = new Main();
deviceSimulator.start(new String[] { DEVICE_SIMULATOR_PORT + "" }, false, false);
nettyGroup = new NioEventLoopGroup(1, new DefaultThreadFactory(NetconfClientDispatcher.class));
dispatcher = new NetconfClientDispatcherImpl(nettyGroup, nettyGroup, new HashedWheelTimer());
}
use of org.opendaylight.netconf.client.NetconfClientDispatcherImpl in project lighty-netconf-simulator by PANTHEONtech.
the class DeviceTest method setUpClass.
@BeforeAll
public static void setUpClass() throws InterruptedException, ExecutionException, TimeoutException {
deviceSimulator = new Main();
deviceSimulator.start(new String[] { "--starting-port", String.valueOf(DEVICE_STARTING_PORT), "--thread-pool-size", String.valueOf(THREAD_POOL_SIZE), "--device-count", String.valueOf(DEVICE_COUNT) }, true, false);
nettyGroup = new NioEventLoopGroup(THREAD_POOL_SIZE, new DefaultThreadFactory(NetconfClientDispatcher.class));
NetconfClientDispatcherImpl dispatcher = new NetconfClientDispatcherImpl(nettyGroup, nettyGroup, new HashedWheelTimer());
for (int port = DEVICE_STARTING_PORT; port < DEVICE_STARTING_PORT + DEVICE_COUNT; port++) {
final SimpleNetconfClientSessionListener sessionListener = new SimpleNetconfClientSessionListener();
NetconfClientSession session = dispatcher.createClient(createSHHConfig(sessionListener, port)).get(TimeoutUtil.TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
NETCONF_CLIENT_SESSIONS.add(session);
SESSION_LISTENERS.add(sessionListener);
}
}
use of org.opendaylight.netconf.client.NetconfClientDispatcherImpl in project lighty-netconf-simulator by PANTHEONtech.
the class DeviceTest method setUpClass.
@BeforeAll
public static void setUpClass() {
deviceSimulator = new Main();
deviceSimulator.start(new String[] { DEVICE_SIMULATOR_PORT + "" }, false, false);
nettyGroup = new NioEventLoopGroup(1, new DefaultThreadFactory(NetconfClientDispatcher.class));
dispatcher = new NetconfClientDispatcherImpl(nettyGroup, nettyGroup, new HashedWheelTimer());
}
Aggregations