summaryrefslogtreecommitdiffstats
path: root/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfModule.groovy
diff options
context:
space:
mode:
Diffstat (limited to 'infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfModule.groovy')
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfModule.groovy45
1 files changed, 31 insertions, 14 deletions
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfModule.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfModule.groovy
index e1f8901c7..29eeae301 100644
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfModule.groovy
+++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfModule.groovy
@@ -46,63 +46,77 @@ import static InmemoryDOMDataBrokerProvider.OPERATIONAL
class NetconfModule extends PrivateModule {
+
+ public static final String HONEYCOMB_NETCONF = "honeycomb-netconf"
+ public static final String HONEYCOMB_NETCONF_MAPPER_AGGR = "netconf-mapper-aggregator"
+ public static final String HONEYCOMB_NETCONF_MAPPER_NOTIF = "netconf-mapper-notification"
+ public static final String HONEYCOMB_NETCONF_MAPPER_CORE = "netconf-mapper-honeycomb"
+ public static final String HONEYCOMB_NETCONF_MAPPER_OPER = "netconf-mapper-monitoring"
+
@Override
protected void configure() {
+ // Create inmemory data store for HONEYCOMB_NETCONF config metadata
bind(InMemoryDOMDataStore)
.annotatedWith(Names.named(CONFIG))
.toProvider(new DataStoreProvider(type: LogicalDatastoreType.CONFIGURATION, name: CONFIG))
.in(Singleton)
+ // Create inmemory data store for HONEYCOMB_NETCONF operational metadata
bind(InMemoryDOMDataStore)
.annotatedWith(Names.named(OPERATIONAL))
.toProvider(new DataStoreProvider(type: LogicalDatastoreType.OPERATIONAL, name: OPERATIONAL))
.in(Singleton)
+ // Wrap datastores as DOMDataBroker
bind(DOMDataBroker).toProvider(InmemoryDOMDataBrokerProvider).in(Singleton)
+ // Wrap DOMDataBroker as BA data broker
bind(DataBroker)
- .annotatedWith(Names.named("netconf"))
+ .annotatedWith(Names.named(HONEYCOMB_NETCONF))
.toProvider(BindingDataBrokerProvider)
.in(Singleton)
- expose(DataBroker).annotatedWith(Names.named("netconf"))
+ expose(DataBroker).annotatedWith(Names.named(HONEYCOMB_NETCONF))
+
+ // Wrap BA data broker as BindingAwareBroker (requied by HONEYCOMB_NETCONF)
bind(BindingAwareBroker)
- .annotatedWith(Names.named("netconf"))
+ .annotatedWith(Names.named(HONEYCOMB_NETCONF))
.toProvider(NetconfBindingBrokerProvider)
.in(Singleton)
- // Mirror of org.opendaylight.controller.config.yang.config.netconf.northbound.impl.NetconfMapperAggregatorModule
+ // Create netconf operation service factory aggregator to aggregate different services
def factory = new AggregatedNetconfOperationServiceFactory()
bind(NetconfOperationServiceFactory)
- .annotatedWith(Names.named("netconf-mapper-aggregator"))
+ .annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_AGGR))
.toInstance(factory)
bind(NetconfOperationServiceFactoryListener).toInstance(factory)
- // Mirror of org.opendaylight.controller.config.yang.netconf.northbound.notification.impl.NetconfNotificationManagerModule
+ // Create netconf notification manager
def manager = new NetconfNotificationManager()
bind(NetconfNotificationCollector).toInstance(manager)
bind(NetconfNotificationRegistry).toInstance(manager)
bind(NetconfNotificationListener).toInstance(manager)
- // Netconf notification part
+ // Netconf notification service factory
bind(NetconfOperationServiceFactory)
- .annotatedWith(Names.named("netconf-mapper-notification"))
+ .annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_NOTIF))
.toProvider(NetconfNotificationMapperProvider)
.in(Singleton)
- expose(NetconfOperationServiceFactory).annotatedWith(Names.named("netconf-mapper-notification"))
+ expose(NetconfOperationServiceFactory).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_NOTIF))
// Netconf core part - mapping between Honeycomb and Netconf
bind(NetconfOperationServiceFactory)
- .annotatedWith(Names.named("netconf-mapper-honeycomb"))
+ .annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_CORE))
.toProvider(NetconfMdsalMapperProvider)
.in(Singleton)
- expose(NetconfOperationServiceFactory).annotatedWith(Names.named("netconf-mapper-honeycomb"))
+ expose(NetconfOperationServiceFactory).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_CORE))
- // Netconf monitoring part
+ // Netconf monitoring service factory
bind(NetconfMonitoringService).toProvider(NetconfMonitoringServiceProvider).in(Singleton)
bind(NetconfOperationServiceFactory)
- .annotatedWith(Names.named("netconf-mapper-monitoring"))
+ .annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_OPER))
.toProvider(NetconfMonitoringMapperProvider)
.in(Singleton)
- expose(NetconfOperationServiceFactory).annotatedWith(Names.named("netconf-mapper-monitoring"))
+ expose(NetconfOperationServiceFactory).annotatedWith(Names.named(HONEYCOMB_NETCONF_MAPPER_OPER))
+ // Create HC notification manager + HC2Netconf translator
bind(NotificationCollector).toProvider(HoneycombNotificationManagerProvider).in(Singleton)
bind(HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf)
.toProvider(HoneycombNotification2NetconfProvider)
@@ -112,6 +126,9 @@ class NetconfModule extends PrivateModule {
configureServer()
}
+ /**
+ * Provide HONEYCOMB_NETCONF TCP and SSH servers
+ */
def configureServer() {
bind(NioEventLoopGroup).toProvider(NettyThreadGroupProvider).in(Singleton)
bind(Timer).toProvider(NettyTimerProvider).in(Singleton)