Eliminate NetconfCallHomeTlsConfiguration 04/105804/5
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 3 May 2023 02:54:08 +0000 (04:54 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 3 May 2023 11:30:31 +0000 (13:30 +0200)
This is a rather huge anti-pattern: configuration should be dynamic
somehow. Factor the defaults out of blueprint into Java code so it can
be evolved further.

JIRA: NETCONF-949
Change-Id: Ie07c5f7aa64643d4d890bd9c4cf72d8a17db4d13
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
apps/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/tls/NetconfCallHomeTlsService.java
apps/callhome-provider/src/main/resources/OSGI-INF/blueprint/callhome-topology.xml

index 54a7a97ad0d5d9fd0ad3babb0db73ef80f470950..19338192f41d62f44ff4895e8369e51af7ebaf03 100644 (file)
@@ -31,12 +31,17 @@ public class NetconfCallHomeTlsService implements AutoCloseable {
 
     private NetconfCallHomeTlsServer server;
 
-    public NetconfCallHomeTlsService(final Configuration config,
-                                     final DataBroker dataBroker,
+    public NetconfCallHomeTlsService(final DataBroker dataBroker, final TlsAllowedDevicesMonitor allowedDevicesMonitor,
+            final CallHomeNetconfSubsystemListener subsystemListener, final EventLoopGroup bossGroup,
+            final EventLoopGroup workerGroup) {
+        this(dataBroker, allowedDevicesMonitor, subsystemListener, bossGroup, workerGroup, defaultTlsConfiguration());
+    }
+
+    public NetconfCallHomeTlsService(final DataBroker dataBroker,
                                      final TlsAllowedDevicesMonitor allowedDevicesMonitor,
                                      final CallHomeNetconfSubsystemListener subsystemListener,
                                      final EventLoopGroup bossGroup,
-                                     final EventLoopGroup workerGroup) {
+                                     final EventLoopGroup workerGroup, final Configuration config) {
         this.config = requireNonNull(config);
         this.subsystemListener = requireNonNull(subsystemListener);
         this.bossGroup = requireNonNull(bossGroup);
@@ -64,6 +69,16 @@ public class NetconfCallHomeTlsService implements AutoCloseable {
         LOG.info("Initializing Call Home TLS server instance completed successfuly");
     }
 
+    // FIXME: convert to OSGi/MD-SAL configuration
+    private static Configuration defaultTlsConfiguration() {
+        final var conf = new Configuration();
+        conf.setHost("0.0.0.0");
+        conf.setPort(4335);
+        conf.setTimeout(10_000);
+        conf.setMaxConnections(64);
+        return conf;
+    }
+
     @Override
     public void close() {
         server.stop();
index ad1ef563a8e609c54688d4843a06e5593d4db2b5..fe84d172a3e096d6d57af5bedafb37bf4afb8ecb 100644 (file)
         <argument ref="deviceActionFactory"/>
     </bean>
 
-    <!-- Configuration for NetConf Call-Home TLS -->
-    <bean id="netconfCallHomeTlsConfiguration" class="org.opendaylight.netconf.callhome.mount.tls.Configuration">
-        <property name="host" value="0.0.0.0" />
-        <property name="port" value="4335" />
-        <property name="timeout" value="10000" />
-        <property name="maxConnections" value="64" />
-    </bean>
-
     <bean id="netconfCallHomeService" class="org.opendaylight.netconf.callhome.mount.tls.NetconfCallHomeTlsService"
           init-method="init"
           destroy-method="close">
-        <argument ref="netconfCallHomeTlsConfiguration" />
         <argument ref="dataBroker" />
         <argument ref="allowedDevicesMonitor" />
         <argument ref="callhomeDispatcher" />