Reuse NetconfTopologySetup 02/106802/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 4 Jul 2023 17:01:14 +0000 (19:01 +0200)
committerRobert Varga <nite@hq.sk>
Wed, 5 Jul 2023 00:01:51 +0000 (00:01 +0000)
NetconfTopologySetup pretty much all the context we need, there is just
no point in passing down individual services.

JIRA: NETCONF-1039
Change-Id: I21ec0fad9e267df06e5eb4dab11d2962feb2eee4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
apps/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeContext.java
apps/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyContext.java
apps/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManager.java

index dbbf12bdcb98a9a5d29115be921c969bf33ac604..19f360030d031ad45b18f359fe464c65246e7f4d 100644 (file)
@@ -15,14 +15,7 @@ import akka.dispatch.OnComplete;
 import akka.pattern.Patterns;
 import akka.util.Timeout;
 import com.google.common.annotations.VisibleForTesting;
-import io.netty.util.concurrent.EventExecutor;
-import java.util.concurrent.Executor;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.controller.config.threadpool.ThreadPool;
-import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
-import org.opendaylight.netconf.client.NetconfClientDispatcher;
-import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemas;
 import org.opendaylight.netconf.client.mdsal.api.DeviceActionFactory;
 import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
 import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager;
@@ -40,15 +33,9 @@ import org.slf4j.LoggerFactory;
 final class NetconfNodeContext implements AutoCloseable {
     private static final Logger LOG = LoggerFactory.getLogger(NetconfNodeContext.class);
 
-    private final NetconfClientDispatcher clientDispatcher;
-    private final EventExecutor eventExecutor;
     private final DeviceActionFactory deviceActionFactory;
     private final SchemaResourceManager schemaManager;
-    private final BaseNetconfSchemas baseSchemas;
     private final NetconfClientConfigurationBuilderFactory builderFactory;
-    private final ScheduledThreadPool keepaliveExecutor;
-    private final Executor processingExecutor;
-    private final DataBroker dataBroker;
     private final DOMMountPointService mountPointService;
     private final RemoteDeviceId remoteDeviceId;
     private final NetconfTopologySetup setup;
@@ -59,25 +46,16 @@ final class NetconfNodeContext implements AutoCloseable {
     private NetconfNodeManager netconfNodeManager;
     private NetconfNodeHandler nodeHandler;
 
-    NetconfNodeContext(final NetconfClientDispatcher clientDispatcher, final EventExecutor eventExecutor,
-            final ScheduledThreadPool keepaliveExecutor, final ThreadPool processingExecutor,
-            final SchemaResourceManager schemaManager, final DataBroker dataBroker,
+    NetconfNodeContext(final NetconfTopologySetup setup, final SchemaResourceManager schemaManager,
             final DOMMountPointService mountPointService, final NetconfClientConfigurationBuilderFactory builderFactory,
-            final DeviceActionFactory deviceActionFactory, final BaseNetconfSchemas baseSchemas,
-            final RemoteDeviceId remoteDeviceId, final NetconfTopologySetup setup,
+            final DeviceActionFactory deviceActionFactory, final RemoteDeviceId remoteDeviceId,
             final Timeout actorResponseWaitTime) {
-        this.clientDispatcher = requireNonNull(clientDispatcher);
-        this.eventExecutor = requireNonNull(eventExecutor);
-        this.keepaliveExecutor = requireNonNull(keepaliveExecutor);
-        this.processingExecutor = processingExecutor.getExecutor();
+        this.setup = requireNonNull(setup);
         this.schemaManager = requireNonNull(schemaManager);
-        this.dataBroker = requireNonNull(dataBroker);
         this.mountPointService = requireNonNull(mountPointService);
         this.builderFactory = requireNonNull(builderFactory);
         this.deviceActionFactory = deviceActionFactory;
-        this.baseSchemas = requireNonNull(baseSchemas);
         this.remoteDeviceId = requireNonNull(remoteDeviceId);
-        this.setup = requireNonNull(setup);
         this.actorResponseWaitTime = actorResponseWaitTime;
         registerNodeManager();
     }
@@ -163,9 +141,10 @@ final class NetconfNodeContext implements AutoCloseable {
         // Instantiate the handler ...
         masterSalFacade = createSalFacade(netconfNode.requireLockDatastore());
 
-        nodeHandler = new NetconfNodeHandler(clientDispatcher, eventExecutor, keepaliveExecutor.getExecutor(),
-            baseSchemas, schemaManager, processingExecutor, builderFactory, deviceActionFactory, masterSalFacade,
-            remoteDeviceId, configNode.getNodeId(), netconfNode, nodeOptional);
+        nodeHandler = new NetconfNodeHandler(setup.getNetconfClientDispatcher(), setup.getEventExecutor(),
+            setup.getKeepaliveExecutor(), setup.getBaseSchemas(), schemaManager, setup.getProcessingExecutor(),
+            builderFactory, deviceActionFactory, masterSalFacade, remoteDeviceId, configNode.getNodeId(), netconfNode,
+            nodeOptional);
         nodeHandler.connect();
     }
 
@@ -179,6 +158,6 @@ final class NetconfNodeContext implements AutoCloseable {
     @VisibleForTesting
     MasterSalFacade createSalFacade(final boolean lockDatastore) {
         return new MasterSalFacade(remoteDeviceId, setup.getActorSystem(), masterActorRef, actorResponseWaitTime,
-            mountPointService, dataBroker, lockDatastore);
+            mountPointService, setup.getDataBroker(), lockDatastore);
     }
 }
index 677e807314a4bee135c80334dc2b31ca262eee15..1b30f41375baf8908baeee994613569f5636b739 100644 (file)
@@ -12,16 +12,10 @@ import static java.util.Objects.requireNonNull;
 import akka.util.Timeout;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.util.concurrent.ListenableFuture;
-import io.netty.util.concurrent.EventExecutor;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
-import org.opendaylight.controller.config.threadpool.ThreadPool;
-import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
 import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
-import org.opendaylight.netconf.client.NetconfClientDispatcher;
-import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemas;
 import org.opendaylight.netconf.client.mdsal.api.DeviceActionFactory;
 import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
 import org.opendaylight.netconf.client.mdsal.api.SchemaResourceManager;
@@ -44,21 +38,16 @@ class NetconfTopologyContext implements ClusterSingletonService, AutoCloseable {
 
     private RemoteDeviceId remoteDeviceId;
 
-    NetconfTopologyContext(final NetconfClientDispatcher clientDispatcher,
-            final EventExecutor eventExecutor, final ScheduledThreadPool keepaliveExecutor,
-            final ThreadPool processingExecutor, final SchemaResourceManager schemaManager,
-            final DataBroker dataBroker, final DOMMountPointService mountPointService,
-            final NetconfClientConfigurationBuilderFactory builderFactory,
-            final DeviceActionFactory deviceActionFactory, final BaseNetconfSchemas baseSchemas,
-            final Timeout actorResponseWaitTime, final ServiceGroupIdentifier serviceGroupIdent,
-            final NetconfTopologySetup setup) {
+    NetconfTopologyContext(final SchemaResourceManager schemaManager,
+            final DOMMountPointService mountPointService, final NetconfClientConfigurationBuilderFactory builderFactory,
+            final DeviceActionFactory deviceActionFactory, final Timeout actorResponseWaitTime,
+            final ServiceGroupIdentifier serviceGroupIdent, final NetconfTopologySetup setup) {
         this.serviceGroupIdent = requireNonNull(serviceGroupIdent);
         remoteDeviceId = NetconfNodeUtils.toRemoteDeviceId(setup.getNode().getNodeId(),
                 setup.getNode().augmentation(NetconfNode.class));
 
-        topologySingleton = new NetconfNodeContext(clientDispatcher,
-                eventExecutor, keepaliveExecutor, processingExecutor, schemaManager, dataBroker, mountPointService,
-                builderFactory, deviceActionFactory, baseSchemas, remoteDeviceId, setup, actorResponseWaitTime);
+        topologySingleton = new NetconfNodeContext(setup, schemaManager, mountPointService, builderFactory,
+            deviceActionFactory, remoteDeviceId, actorResponseWaitTime);
     }
 
     @VisibleForTesting
index 228c94b73017e5a25c0badb54c3009f8d130214f..1568e43c60ced697a52799e4a7100e2d3e67000b 100644 (file)
@@ -82,9 +82,7 @@ public class NetconfTopologyManager
     private final DOMRpcProviderService rpcProviderRegistry;
     private final DOMActionProviderService actionProviderRegistry;
     private final ClusterSingletonServiceProvider clusterSingletonServiceProvider;
-    private final ScheduledThreadPool keepaliveExecutor;
     private final ScheduledExecutorService keepaliveExecutorService;
-    private final ThreadPool processingExecutor;
     private final Executor processingExecutorService;
     private final ActorSystem actorSystem;
     private final EventExecutor eventExecutor;
@@ -121,9 +119,7 @@ public class NetconfTopologyManager
         this.rpcProviderRegistry = requireNonNull(rpcProviderRegistry);
         actionProviderRegistry = requireNonNull(actionProviderService);
         this.clusterSingletonServiceProvider = requireNonNull(clusterSingletonServiceProvider);
-        this.keepaliveExecutor = keepaliveExecutor;
         keepaliveExecutorService = keepaliveExecutor.getExecutor();
-        this.processingExecutor = processingExecutor;
         processingExecutorService = processingExecutor.getExecutor();
         actorSystem = requireNonNull(actorSystemProvider).getActorSystem();
         this.eventExecutor = requireNonNull(eventExecutor);
@@ -230,13 +226,8 @@ public class NetconfTopologyManager
     protected NetconfTopologyContext newNetconfTopologyContext(final NetconfTopologySetup setup,
             final ServiceGroupIdentifier serviceGroupIdent, final Timeout actorResponseWaitTime,
             final DeviceActionFactory deviceActionFact) {
-        return new NetconfTopologyContext(setup.getNetconfClientDispatcher(),
-                setup.getEventExecutor(), keepaliveExecutor,
-                processingExecutor, resourceManager,
-                dataBroker, mountPointService,
-                builderFactory, deviceActionFactory,
-                baseSchemas, actorResponseWaitTime,
-                serviceGroupIdent, setup);
+        return new NetconfTopologyContext(resourceManager, mountPointService, builderFactory, deviceActionFactory,
+            actorResponseWaitTime, serviceGroupIdent, setup);
     }
 
     @Override