Search in sources :

Example 1 with NetconfOperationServiceFactory

use of org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory in project netconf by opendaylight.

the class AggregatedNetconfOperationServiceFactory method registerCapabilityListener.

@Override
public synchronized AutoCloseable registerCapabilityListener(final CapabilityListener listener) {
    final Map<NetconfOperationServiceFactory, AutoCloseable> regs = new HashMap<>();
    for (final NetconfOperationServiceFactory factory : factories) {
        final AutoCloseable reg = factory.registerCapabilityListener(listener);
        regs.put(factory, reg);
    }
    listeners.add(listener);
    return () -> {
        synchronized (AggregatedNetconfOperationServiceFactory.this) {
            listeners.remove(listener);
            CloseableUtil.closeAll(regs.values());
            for (final Map.Entry<NetconfOperationServiceFactory, AutoCloseable> reg : regs.entrySet()) {
                registrations.remove(reg.getKey(), reg.getValue());
            }
        }
    };
}
Also used : ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) NetconfOperationServiceFactory(org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory)

Example 2 with NetconfOperationServiceFactory

use of org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory in project netconf by opendaylight.

the class NetconfDeviceSimulator method createDispatcher.

private NetconfServerDispatcherImpl createDispatcher(final Set<Capability> capabilities, final SchemaSourceProvider<YangTextSchemaSource> sourceProvider) {
    final Set<Capability> transformedCapabilities = new HashSet<>(Collections2.transform(capabilities, input -> {
        if (sendFakeSchema) {
            sendFakeSchema = false;
            return new FakeCapability((YangModuleCapability) input);
        } else {
            return input;
        }
    }));
    transformedCapabilities.add(new BasicCapability("urn:ietf:params:netconf:capability:candidate:1.0"));
    final NetconfMonitoringService monitoringService1 = new DummyMonitoringService(transformedCapabilities);
    final SessionIdProvider idProvider = new SessionIdProvider();
    final NetconfOperationServiceFactory aggregatedNetconfOperationServiceFactory = createOperationServiceFactory(sourceProvider, transformedCapabilities, monitoringService1, idProvider);
    final Set<String> serverCapabilities = configuration.getCapabilities();
    final NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new TesttoolNegotiationFactory(hashedWheelTimer, aggregatedNetconfOperationServiceFactory, idProvider, configuration.getGenerateConfigsTimeout(), monitoringService1, serverCapabilities);
    final ServerChannelInitializer serverChannelInitializer = new ServerChannelInitializer(serverNegotiatorFactory);
    return new NetconfServerDispatcherImpl(serverChannelInitializer, nettyThreadgroup, nettyThreadgroup);
}
Also used : Configuration(org.opendaylight.netconf.test.tool.config.Configuration) SettableOperationProvider(org.opendaylight.netconf.test.tool.customrpc.SettableOperationProvider) KeyPairProvider(org.opendaylight.netconf.shaded.sshd.common.keyprovider.KeyPairProvider) NetconfMonitoringOperationService(org.opendaylight.netconf.test.tool.monitoring.NetconfMonitoringOperationService) LoggerFactory(org.slf4j.LoggerFactory) Collections2(com.google.common.collect.Collections2) ThreadUtils(org.opendaylight.netconf.shaded.sshd.common.util.threads.ThreadUtils) SshProxyServerConfiguration(org.opendaylight.netconf.ssh.SshProxyServerConfiguration) LocalAddress(io.netty.channel.local.LocalAddress) ServerChannelInitializer(org.opendaylight.netconf.impl.ServerChannelInitializer) NetconfMonitoringService(org.opendaylight.netconf.api.monitoring.NetconfMonitoringService) SchemaSourceCache(org.opendaylight.netconf.test.tool.schemacache.SchemaSourceCache) Capability(org.opendaylight.netconf.api.capability.Capability) Module(org.opendaylight.yangtools.yang.model.api.Module) Set(java.util.Set) NetconfServerDispatcherImpl(org.opendaylight.netconf.impl.NetconfServerDispatcherImpl) DefaultOperationsCreator(org.opendaylight.netconf.test.tool.operations.DefaultOperationsCreator) YangModuleCapability(org.opendaylight.netconf.api.capability.YangModuleCapability) InetSocketAddress(java.net.InetSocketAddress) ModuleLike(org.opendaylight.yangtools.yang.model.api.ModuleLike) NioEventLoopGroup(io.netty.channel.nio.NioEventLoopGroup) Executors(java.util.concurrent.Executors) SchemaSourceRepresentation(org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation) List(java.util.List) SshProxyServerConfigurationBuilder(org.opendaylight.netconf.ssh.SshProxyServerConfigurationBuilder) Revision(org.opendaylight.yangtools.yang.common.Revision) PotentialSchemaSource(org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource) HashedWheelTimer(io.netty.util.HashedWheelTimer) AsynchronousChannelGroup(java.nio.channels.AsynchronousChannelGroup) Optional(java.util.Optional) NetconfMonitoringOperationServiceFactory(org.opendaylight.netconf.test.tool.monitoring.NetconfMonitoringOperationServiceFactory) SshProxyServer(org.opendaylight.netconf.ssh.SshProxyServer) SuppressFBWarnings(edu.umd.cs.findbugs.annotations.SuppressFBWarnings) ThreadFactoryBuilder(com.google.common.util.concurrent.ThreadFactoryBuilder) YangTextSchemaSource(org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource) OperationsProvider(org.opendaylight.netconf.test.tool.operations.OperationsProvider) SettableOperationRpcProvider(org.opendaylight.netconf.test.tool.rpchandler.SettableOperationRpcProvider) Submodule(org.opendaylight.yangtools.yang.model.api.Submodule) SharedSchemaRepository(org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository) BindException(java.net.BindException) NetconfServerSessionNegotiatorFactory(org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) SessionIdProvider(org.opendaylight.netconf.impl.SessionIdProvider) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) ExecutorService(java.util.concurrent.ExecutorService) SchemaSourceProvider(org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider) AggregatedNetconfOperationServiceFactory(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory) Logger(org.slf4j.Logger) SourceIdentifier(org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier) TextToIRTransformer(org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer) IOException(java.io.IOException) EffectiveModelContext(org.opendaylight.yangtools.yang.model.api.EffectiveModelContext) BasicCapability(org.opendaylight.netconf.api.capability.BasicCapability) Inet4Address(java.net.Inet4Address) UnknownHostException(java.net.UnknownHostException) ChannelFuture(io.netty.channel.ChannelFuture) Channel(io.netty.channel.Channel) ExecutionException(java.util.concurrent.ExecutionException) Futures(com.google.common.util.concurrent.Futures) RevisionSourceIdentifier(org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier) Closeable(java.io.Closeable) NetconfOperationServiceFactory(org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory) FilesystemSchemaSourceCache(org.opendaylight.yangtools.yang.model.repo.fs.FilesystemSchemaSourceCache) SchemaSourceListener(org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceListener) Capability(org.opendaylight.netconf.api.capability.Capability) YangModuleCapability(org.opendaylight.netconf.api.capability.YangModuleCapability) BasicCapability(org.opendaylight.netconf.api.capability.BasicCapability) SessionIdProvider(org.opendaylight.netconf.impl.SessionIdProvider) BasicCapability(org.opendaylight.netconf.api.capability.BasicCapability) YangModuleCapability(org.opendaylight.netconf.api.capability.YangModuleCapability) NetconfServerDispatcherImpl(org.opendaylight.netconf.impl.NetconfServerDispatcherImpl) AggregatedNetconfOperationServiceFactory(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory) NetconfOperationServiceFactory(org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory) NetconfMonitoringService(org.opendaylight.netconf.api.monitoring.NetconfMonitoringService) NetconfServerSessionNegotiatorFactory(org.opendaylight.netconf.impl.NetconfServerSessionNegotiatorFactory) ServerChannelInitializer(org.opendaylight.netconf.impl.ServerChannelInitializer) HashSet(java.util.HashSet)

Example 3 with NetconfOperationServiceFactory

use of org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory in project netconf by opendaylight.

the class NetconfDeviceSimulator method createOperationServiceFactory.

private NetconfOperationServiceFactory createOperationServiceFactory(final SchemaSourceProvider<YangTextSchemaSource> sourceProvider, final Set<Capability> transformedCapabilities, final NetconfMonitoringService monitoringService1, final SessionIdProvider idProvider) {
    final AggregatedNetconfOperationServiceFactory aggregatedNetconfOperationServiceFactory = new AggregatedNetconfOperationServiceFactory();
    final NetconfOperationServiceFactory operationProvider;
    if (configuration.isMdSal()) {
        LOG.info("using MdsalOperationProvider.");
        operationProvider = new MdsalOperationProvider(idProvider, transformedCapabilities, schemaContext, sourceProvider);
    } else if (configuration.isXmlConfigurationProvided()) {
        LOG.info("using SimulatedOperationProvider.");
        operationProvider = new SimulatedOperationProvider(idProvider, transformedCapabilities, Optional.ofNullable(configuration.getNotificationFile()), Optional.ofNullable(configuration.getInitialConfigXMLFile()));
    } else {
        LOG.info("using OperationsProvider.");
        operationProvider = new OperationsProvider(idProvider, transformedCapabilities, configuration.getOperationsCreator() != null ? configuration.getOperationsCreator() : DefaultOperationsCreator.getDefaultOperationServiceCreator(idProvider.getCurrentSessionId()));
    }
    final NetconfMonitoringOperationServiceFactory monitoringService = new NetconfMonitoringOperationServiceFactory(new NetconfMonitoringOperationService(monitoringService1));
    aggregatedNetconfOperationServiceFactory.onAddNetconfOperationServiceFactory(operationProvider);
    aggregatedNetconfOperationServiceFactory.onAddNetconfOperationServiceFactory(monitoringService);
    if (configuration.getRpcConfigFile() != null) {
        final SettableOperationProvider settableService = new SettableOperationProvider(configuration.getRpcConfigFile());
        aggregatedNetconfOperationServiceFactory.onAddNetconfOperationServiceFactory(settableService);
    } else {
        final SettableOperationRpcProvider settableService = new SettableOperationRpcProvider(configuration.getRpcHandler());
        aggregatedNetconfOperationServiceFactory.onAddNetconfOperationServiceFactory(settableService);
    }
    return aggregatedNetconfOperationServiceFactory;
}
Also used : NetconfMonitoringOperationService(org.opendaylight.netconf.test.tool.monitoring.NetconfMonitoringOperationService) SettableOperationRpcProvider(org.opendaylight.netconf.test.tool.rpchandler.SettableOperationRpcProvider) AggregatedNetconfOperationServiceFactory(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory) OperationsProvider(org.opendaylight.netconf.test.tool.operations.OperationsProvider) NetconfMonitoringOperationServiceFactory(org.opendaylight.netconf.test.tool.monitoring.NetconfMonitoringOperationServiceFactory) SettableOperationProvider(org.opendaylight.netconf.test.tool.customrpc.SettableOperationProvider) AggregatedNetconfOperationServiceFactory(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory) NetconfOperationServiceFactory(org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory)

Aggregations

NetconfOperationServiceFactory (org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory)3 AggregatedNetconfOperationServiceFactory (org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory)2 Collections2 (com.google.common.collect.Collections2)1 Futures (com.google.common.util.concurrent.Futures)1 ThreadFactoryBuilder (com.google.common.util.concurrent.ThreadFactoryBuilder)1 SuppressFBWarnings (edu.umd.cs.findbugs.annotations.SuppressFBWarnings)1 Channel (io.netty.channel.Channel)1 ChannelFuture (io.netty.channel.ChannelFuture)1 LocalAddress (io.netty.channel.local.LocalAddress)1 NioEventLoopGroup (io.netty.channel.nio.NioEventLoopGroup)1 HashedWheelTimer (io.netty.util.HashedWheelTimer)1 Closeable (java.io.Closeable)1 IOException (java.io.IOException)1 BindException (java.net.BindException)1 Inet4Address (java.net.Inet4Address)1 InetSocketAddress (java.net.InetSocketAddress)1 UnknownHostException (java.net.UnknownHostException)1 AsynchronousChannelGroup (java.nio.channels.AsynchronousChannelGroup)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1