Remove netconf-config
[netconf.git] / apps / netconf-topology-singleton / src / test / java / org / opendaylight / netconf / topology / singleton / impl / MountPointEndToEndTest.java
index a5cee5177a9f50327d4f637e8916fee7a21758e9..ce76dc9c12281f2421bd4e1db7a6bd07fef196b0 100644 (file)
@@ -30,12 +30,9 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 import com.typesafe.config.ConfigFactory;
-import io.netty.util.concurrent.EventExecutor;
-import io.netty.util.concurrent.Future;
-import io.netty.util.concurrent.GlobalEventExecutor;
+import io.netty.util.Timer;
 import java.io.File;
 import java.util.Iterator;
 import java.util.List;
@@ -44,7 +41,6 @@ import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import org.apache.commons.io.FileUtils;
@@ -93,7 +89,7 @@ import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegist
 import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
 import org.opendaylight.mdsal.singleton.dom.impl.DOMClusterSingletonServiceProviderImpl;
 import org.opendaylight.netconf.api.CapabilityURN;
-import org.opendaylight.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.netconf.client.NetconfClientFactory;
 import org.opendaylight.netconf.client.mdsal.NetconfDeviceCapabilities;
 import org.opendaylight.netconf.client.mdsal.NetconfDeviceSchema;
 import org.opendaylight.netconf.client.mdsal.api.CredentialProvider;
@@ -107,19 +103,20 @@ import org.opendaylight.netconf.client.mdsal.impl.DefaultSchemaResourceManager;
 import org.opendaylight.netconf.topology.singleton.impl.utils.ClusteringRpcException;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySetup;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUtils;
-import org.opendaylight.netconf.topology.spi.DefaultNetconfClientConfigurationBuilderFactory;
 import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactory;
+import org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactoryImpl;
 import org.opendaylight.netconf.topology.spi.NetconfNodeUtils;
+import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231025.ConnectionOper.ConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231025.credentials.credentials.LoginPwUnencryptedBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev231025.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.credentials.credentials.LoginPwUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev240120.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.Keystore;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev231121.NetconfNodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.GetTopInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.GetTopOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.PutTopInputBuilder;
@@ -184,16 +181,24 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
     private static final String TEST_ROOT_DIRECTORY = "test-cache-root";
     private static final String TEST_DEFAULT_SUBDIR = "test-schema";
 
-    @Mock private RpcProviderService mockRpcProviderService;
-    @Mock private Registration mockRpcReg;
-    @Mock private NetconfClientDispatcher mockClientDispatcher;
-    @Mock private AAAEncryptionService mockEncryptionService;
-    @Mock private ScheduledExecutorService mockKeepaliveExecutor;
-    @Mock private DeviceActionFactory deviceActionFactory;
-    @Mock private CredentialProvider credentialProvider;
-    @Mock private SslHandlerFactoryProvider sslHandlerFactoryProvider;
-
-    @Mock private DOMMountPointListener masterMountPointListener;
+    @Mock
+    private RpcProviderService mockRpcProviderService;
+    @Mock
+    private Registration mockRpcReg;
+    @Mock
+    private NetconfClientFactory mockClientFactory;
+    @Mock
+    private AAAEncryptionService mockEncryptionService;
+    @Mock
+    private Timer mockTimer;
+    @Mock
+    private DeviceActionFactory deviceActionFactory;
+    @Mock
+    private CredentialProvider credentialProvider;
+    @Mock
+    private SslHandlerFactoryProvider sslHandlerFactoryProvider;
+    @Mock
+    private DOMMountPointListener masterMountPointListener;
     private final DOMMountPointService masterMountPointService = new DOMMountPointServiceImpl();
     private Rpcs.Normalized deviceRpcService;
 
@@ -205,9 +210,12 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
 
     private volatile SettableFuture<MasterSalFacade> masterSalFacadeFuture = SettableFuture.create();
 
-    @Mock private ClusterSingletonServiceProvider mockSlaveClusterSingletonServiceProvider;
-    @Mock private ClusterSingletonServiceRegistration mockSlaveClusterSingletonServiceReg;
-    @Mock private DOMMountPointListener slaveMountPointListener;
+    @Mock
+    private ClusterSingletonServiceProvider mockSlaveClusterSingletonServiceProvider;
+    @Mock
+    private ClusterSingletonServiceRegistration mockSlaveClusterSingletonServiceReg;
+    @Mock
+    private DOMMountPointListener slaveMountPointListener;
     private final DOMMountPointService slaveMountPointService = new DOMMountPointServiceImpl();
     private DataBroker slaveDataBroker;
     private ActorSystem slaveSystem;
@@ -216,7 +224,6 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
     private TransactionChain slaveTxChain;
 
     private NetconfClientConfigurationBuilderFactory builderFactory;
-    private final EventExecutor eventExecutor = GlobalEventExecutor.INSTANCE;
     private EffectiveModelContext deviceSchemaContext;
     private YangModuleInfo topModuleInfo;
     private QName putTopRpcSchemaPath;
@@ -227,11 +234,14 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
     private final ContainerNode getTopInput = ImmutableNodes.containerNode(GetTopInput.QNAME);
 
     private SchemaResourceManager resourceManager;
+    private NetconfTopologySchemaAssembler schemaAssembler;
 
     @Before
     public void setUp() throws Exception {
         deleteCacheDir();
 
+        schemaAssembler = new NetconfTopologySchemaAssembler(1, 1, 0, TimeUnit.SECONDS);
+
         resourceManager = new DefaultSchemaResourceManager(new DefaultYangParserFactory(), TEST_ROOT_DIRECTORY,
             TEST_DEFAULT_SUBDIR);
 
@@ -261,7 +271,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
             }
         };
 
-        builderFactory = new DefaultNetconfClientConfigurationBuilderFactory(mockEncryptionService, credentialProvider,
+        builderFactory = new NetconfClientConfigurationBuilderFactoryImpl(mockEncryptionService, credentialProvider,
             sslHandlerFactoryProvider);
 
         doReturn(mockRpcReg).when(mockRpcProviderService).registerRpcImplementations(any());
@@ -271,7 +281,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
         setupSlave();
 
         yangNodeInstanceId = bindingToNormalized.toYangInstanceIdentifier(NODE_INSTANCE_ID);
-        doReturn(mock(Future.class)).when(mockClientDispatcher).createClient(any());
+        doReturn(mock(ListenableFuture.class)).when(mockClientFactory).createClient(any());
 
         LOG.info("****** Setup complete");
     }
@@ -285,6 +295,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
         deleteCacheDir();
         TestKit.shutdownActorSystem(slaveSystem, true);
         TestKit.shutdownActorSystem(masterSystem, true);
+        schemaAssembler.close();
     }
 
     private void setupMaster() throws Exception {
@@ -307,10 +318,9 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
                 YangTextSchemaSource.class, 1));
 
         masterNetconfTopologyManager = new NetconfTopologyManager(BASE_SCHEMAS, masterDataBroker,
-                masterClusterSingletonServiceProvider, mockKeepaliveExecutor, MoreExecutors.directExecutor(),
-                masterSystem, eventExecutor, mockClientDispatcher, masterMountPointService,
-                mockEncryptionService, mockRpcProviderService, deviceActionFactory, resourceManager, builderFactory,
-                TOPOLOGY_ID, Uint16.ZERO) {
+                masterClusterSingletonServiceProvider, mockTimer, schemaAssembler, masterSystem,
+                mockClientFactory, masterMountPointService, mockEncryptionService, mockRpcProviderService,
+                deviceActionFactory, resourceManager, builderFactory, TOPOLOGY_ID, Uint16.ZERO) {
             @Override
             protected NetconfTopologyContext newNetconfTopologyContext(final NetconfTopologySetup setup,
                     final ServiceGroupIdentifier serviceGroupIdent, final Timeout actorResponseWaitTime,
@@ -344,10 +354,9 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
                 .registerClusterSingletonService(any());
 
         slaveNetconfTopologyManager = new NetconfTopologyManager(BASE_SCHEMAS, slaveDataBroker,
-                mockSlaveClusterSingletonServiceProvider, mockKeepaliveExecutor, MoreExecutors.directExecutor(),
-                slaveSystem, eventExecutor, mockClientDispatcher, slaveMountPointService,
-                mockEncryptionService, mockRpcProviderService, deviceActionFactory, resourceManager, builderFactory,
-                TOPOLOGY_ID, Uint16.ZERO) {
+                mockSlaveClusterSingletonServiceProvider, mockTimer, schemaAssembler, slaveSystem,
+                mockClientFactory, slaveMountPointService, mockEncryptionService, mockRpcProviderService,
+                deviceActionFactory, resourceManager, builderFactory, TOPOLOGY_ID, Uint16.ZERO) {
             @Override
             protected NetconfTopologyContext newNetconfTopologyContext(final NetconfTopologySetup setup,
                 final ServiceGroupIdentifier serviceGroupIdent, final Timeout actorResponseWaitTime,
@@ -365,6 +374,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
         slaveTxChain = slaveDataBroker.createTransactionChain(new TransactionChainListener() {
             @Override
             public void onTransactionChainSuccessful(final TransactionChain chain) {
+                // No-op
             }
 
             @Override