Clean up SSH server subsystem handling 04/108404/9
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 13 Oct 2023 21:12:03 +0000 (23:12 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 14 Oct 2023 00:11:20 +0000 (02:11 +0200)
commit55ae31a6b28e51a2a120fc7fbd50a7f31f9e4bdb
treeaa8203b2987092b968af8b7a7d0de52d11356835
parentd901d1c6fb1adb2aa88639437c49d26efd3bba5e
Clean up SSH server subsystem handling

SSH transport should not report a connection until it has established
the expected transport channel.

This patch reworks the API to instantiation and internal wiring, so that
we invoke TransportChannelListener only once the subsystem has been
allocated.

This has the nice side-effect of reducing shaded.ssh package
proliferation, as things just end up being better encapsualted.

JIRA: NETCONF-1106
Change-Id: Ifcfc3a99d1fa323b105c87724c34f9bba018b78a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
23 files changed:
apps/netconf-nb/src/main/java/org/opendaylight/netconf/northbound/SshServerTransport.java
apps/netconf-nb/src/main/java/org/opendaylight/netconf/northbound/TcpServerTransport.java
netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSession.java
protocol/netconf-server/pom.xml
protocol/netconf-server/src/main/java/org/opendaylight/netconf/server/BaseServerTransport.java [deleted file]
protocol/netconf-server/src/main/java/org/opendaylight/netconf/server/NetconfServerFactoryImpl.java
protocol/netconf-server/src/main/java/org/opendaylight/netconf/server/NetconfSubsystem.java [deleted file]
protocol/netconf-server/src/main/java/org/opendaylight/netconf/server/NetconfSubsystemFactory.java [deleted file]
protocol/netconf-server/src/main/java/org/opendaylight/netconf/server/ServerTransportInitializer.java [moved from protocol/netconf-server/src/main/java/org/opendaylight/netconf/server/BaseTransportChannelListener.java with 50% similarity]
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/OutboundChannelHandler.java
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/SSHClient.java
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/SSHServer.java
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/SSHTransportStack.java
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/SSHTransportStackFactory.java
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportChannelSession.java [new file with mode: 0644]
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportChannelSessionFactory.java [new file with mode: 0644]
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportClientSubsystem.java
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportServerSession.java [new file with mode: 0644]
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportServerSessionFactory.java [new file with mode: 0644]
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportServerSubsystem.java [new file with mode: 0644]
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportSshServer.java
transport/transport-ssh/src/main/java/org/opendaylight/netconf/transport/ssh/TransportUtils.java
transport/transport-ssh/src/test/java/org/opendaylight/netconf/transport/ssh/SshClientServerTest.java