From d022ca8d078e1731435bf3e69a9a1ff85e7e0c63 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Thu, 11 Aug 2016 15:37:28 +0200 Subject: HONEYCOMB-21 Vpp-integration minimal distribution Change-Id: I1a44028ae38c3ab70aa3a7b173cd0c81c820378a Signed-off-by: Maros Marsalek --- infra/minimal-distribution/Readme.adoc | 16 --- infra/minimal-distribution/logs/honeycomb.log | 115 +++++++++++++++++++++ infra/minimal-distribution/pom.xml | 2 +- .../java/io/fd/honeycomb/infra/distro/Main.java | 12 +-- .../data/ConfigAndOperationalPipelineModule.groovy | 37 +++++-- .../infra/distro/data/DataTreeProvider.groovy | 14 ++- .../distro/data/HoneycombDOMBrokerProvider.groovy | 8 +- .../data/HoneycombDOMDataBrokerProvider.groovy | 2 - .../HoneycombNotificationManagerProvider.groovy | 3 - .../infra/distro/data/NotificationModule.groovy | 45 -------- .../distro/data/PersistingDataTreeProvider.groovy | 70 +++++++++++++ .../data/context/ContextPipelineModule.groovy | 27 ++++- .../context/RealtimeMappingContextProvider.groovy | 40 +++++++ .../initializer/InitializerPipelineModule.groovy | 13 +-- .../ModifiableDTDelegInitProvider.groovy | 49 +++++++++ .../PersistedFileInitializerProvider.groovy | 2 +- .../HoneycombNotification2NetconfProvider.groovy | 4 +- .../netconf/NetconfBindingBrokerProvider.groovy | 2 +- .../netconf/NetconfMdsalMapperProvider.groovy | 2 - .../infra/distro/netconf/NetconfModule.groovy | 26 ++--- .../netconf/NetconfMonitoringMapperProvider.groovy | 2 +- .../NetconfMonitoringReaderFactoryProvider.groovy | 2 +- .../NetconfMonitoringServiceProvider.groovy | 2 +- .../NetconfNotificationMapperProvider.groovy | 4 +- ...etconfNotificationsReaderFactoryProvider.groovy | 2 +- .../netconf/NetconfServerDispatcherProvider.groovy | 2 +- .../infra/distro/restconf/RestconfProvider.groovy | 4 +- .../distro/schema/YangBindingProviderModule.groovy | 3 +- .../honeycomb-minimal-resources/WEB-INF/web.xml | 94 ----------------- .../config/WEB-INF/web.xml | 110 ++++++++++++++++++++ infra/pom.xml | 5 +- .../translate/util/RealtimeMappingContext.java | 87 ++++++++++++++++ .../rev160406/RealtimeMappingContextModule.java | 63 +---------- 33 files changed, 564 insertions(+), 305 deletions(-) delete mode 100644 infra/minimal-distribution/Readme.adoc create mode 100644 infra/minimal-distribution/logs/honeycomb.log delete mode 100644 infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/NotificationModule.groovy create mode 100644 infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.groovy create mode 100644 infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.groovy create mode 100644 infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.groovy delete mode 100644 infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/WEB-INF/web.xml create mode 100644 infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml create mode 100644 infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/RealtimeMappingContext.java (limited to 'infra') diff --git a/infra/minimal-distribution/Readme.adoc b/infra/minimal-distribution/Readme.adoc deleted file mode 100644 index 5606b2d2f..000000000 --- a/infra/minimal-distribution/Readme.adoc +++ /dev/null @@ -1,16 +0,0 @@ -= Honeycomb minimal distribution -This is a minimal, statically wired distribution of Honeycomb. It wires all the dependencies from Opendaylight with -Honeycomb infrastructure code in order to provide a lightweight runnable distribution utilizing Google's guice for DI. - -It is lightweight because: - -1. Not using ODL's config subsystem -2. Not using ODL's global (clustered) MD-SAL -3. Wiring only minimal necessary subset of ODL components together - -== How to build&use -Regular maven build (install) creates an ${project.artifactId}-${project.version}-infra.zip (or tar.gz) that can be -unpacked and HC can be started using honeycomb.sh script - -== How to run from IntelliJ -Just mark the src/config folder as resources root and you should be able to run Main from Intellij \ No newline at end of file diff --git a/infra/minimal-distribution/logs/honeycomb.log b/infra/minimal-distribution/logs/honeycomb.log new file mode 100644 index 000000000..942161f55 --- /dev/null +++ b/infra/minimal-distribution/logs/honeycomb.log @@ -0,0 +1,115 @@ +2016-08-12 13:17:37.976 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting honeycomb +2016-08-12 13:19:29.097 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting honeycomb +2016-08-12 13:21:01.988 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting honeycomb +2016-08-12 13:21:02.748 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: ModuleInfoBackedCtxProvider{writerFactories=[org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.general.entity.rev150820.$YangModelBindingProvider@4f2613d1, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.spi.entity.ownership.service.rev150810.$YangModelBindingProvider@773f7880, org.opendaylight.yang.gen.v1.instance.identifier.patch.module.rev151121.$YangModelBindingProvider@4c51bb7, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.rest.connector.rev140724.$YangModelBindingProvider@5b080f3a, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.sal.restconf.service.rev150708.$YangModelBindingProvider@665e9289, org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.$YangModelBindingProvider@2756c0a7, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.binding.impl.rev131028.$YangModelBindingProvider@71984c3, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.binding.rev131028.$YangModelBindingProvider@277f7dd3, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.$YangModelBindingProvider@470a696f, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.$YangModelBindingProvider@2b491fee, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.$YangModelBindingProvider@5ddabb18, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.inmemory.datastore.provider.rev140617.$YangModelBindingProvider@50eca7c6, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.$YangModelBindingProvider@376a312c, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.rev131019.$YangModelBindingProvider@5ef0d29e, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.$YangModelBindingProvider@3ce3db41, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.$YangModelBindingProvider@e260766, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.netconf.northbound.impl.rev150112.$YangModelBindingProvider@4275c20c, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.$YangModelBindingProvider@40258c2f, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.$YangModelBindingProvider@16f7b4af, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.netconf.northbound.rev150114.$YangModelBindingProvider@58bf8650, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.north.mapper.rev150114.$YangModelBindingProvider@4ba534b0, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.notification.rev150806.$YangModelBindingProvider@2cb3d0f7, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.$YangModelBindingProvider@6a66a204, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.$YangModelBindingProvider@42f3156d, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.$YangModelBindingProvider@24bdb479, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.notification.impl.rev150807.$YangModelBindingProvider@2c7d121c, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.protocol.framework.rev140313.$YangModelBindingProvider@419a20a6, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.ssh.rev150114.$YangModelBindingProvider@10fde30a, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.netconf.auth.rev150715.$YangModelBindingProvider@346939bf, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.threadpool.rev130409.$YangModelBindingProvider@74e47444, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.rev131119.$YangModelBindingProvider@39dcf4b0, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.mdsal.notification.rev150803.$YangModelBindingProvider@46f699d5, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.mdsal.monitoring.rev150218.$YangModelBindingProvider@768ccdc5, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.mdsal.mapper.rev150114.$YangModelBindingProvider@659eef7, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.tcp.rev150423.$YangModelBindingProvider@1c9f0a20, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.spi.config.dom.store.rev140617.$YangModelBindingProvider@7db82169, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.common.rev131028.$YangModelBindingProvider@3276732, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.spi.operational.dom.store.rev140617.$YangModelBindingProvider@19fe4644, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.dom.rev131028.$YangModelBindingProvider@7383eae2, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.$YangModelBindingProvider@24fb6a80, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.impl.rev160411.$YangModelBindingProvider@6722db6e, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.api.rev160411.$YangModelBindingProvider@7a48e6e2, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.translate.api.rev160406.$YangModelBindingProvider@5049d8b2, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.$YangModelBindingProvider@2a3591c5, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.translate.utils.rev160406.$YangModelBindingProvider@107ed6fc, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.$YangModelBindingProvider@2e029d61, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.notification.api.rev160601.$YangModelBindingProvider@132ddbab, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.init.rev160407.$YangModelBindingProvider@5bf22f18, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.$YangModelBindingProvider@28276e50, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.$YangModelBindingProvider@675d8c96, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.notification.impl.rev160601.$YangModelBindingProvider@63648ee9]} +2016-08-12 13:21:03.276 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.schema.SerializerProvider(org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext@1a78dacd) +2016-08-12 13:21:04.048 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider(org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext@1a78dacd) +2016-08-12 13:21:04.058 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataTreeProvider$ConfigDataTreeProvider() +2016-08-12 13:21:04.088 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.PersistingDataTreeProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:21:04.116 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.config.WriterRegistryProvider([]) +2016-08-12 13:21:04.147 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataTreeProvider$ContextDataTreeProvider() +2016-08-12 13:21:04.147 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.PersistingDataTreeProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:21:04.148 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.context.ModifiableDTMgrProvider(io.fd.honeycomb.data.impl.PersistingDataTreeAdapter@574b7f4a) +2016-08-12 13:21:04.151 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.context.HoneycombContextDOMDataBrokerProvider(io.fd.honeycomb.data.impl.ModifiableDataTreeManager@57cb70be) +2016-08-12 13:21:04.158 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider(io.fd.honeycomb.data.impl.DataBroker@5981f4a6, org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@63dfada0) +2016-08-12 13:21:04.164 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.ModifiableDTDelegProvider(org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@63dfada0, io.fd.honeycomb.data.impl.PersistingDataTreeAdapter@427ae189, io.fd.honeycomb.translate.util.write.registry.FlatWriterRegistryBuilder@16a9eb2e, org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@76332405) +2016-08-12 13:21:04.183 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataStoreProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, config, CONFIGURATION) +2016-08-12 13:21:04.204 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataStoreProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, operational, OPERATIONAL) +2016-08-12 13:21:04.204 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.InmemoryDOMDataBrokerProvider(org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore@4fa822ad, org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore@597f0937) +2016-08-12 13:21:04.238 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider(org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker@4fd05028, org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@63dfada0) +2016-08-12 13:21:04.240 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMonitoringReaderFactoryProvider(org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@7b81616b) +2016-08-12 13:21:04.245 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfNotificationsReaderFactoryProvider(org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@7b81616b) +2016-08-12 13:21:04.248 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.oper.ReaderRegistryProvider([org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.NetconfMonitoringReaderModule$NetconfMonitoringReaderFactory@4b5a078a, io.fd.honeycomb.infra.distro.netconf.NetconfNotificationsReaderFactoryProvider$1@39909d1a]) +2016-08-12 13:21:04.295 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.oper.ReadableDTDelegProvider(org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@63dfada0, io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.translate.util.read.registry.CompositeReaderRegistryBuilder@4a8e6e89, org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@76332405) +2016-08-12 13:21:04.323 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb configuration: io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin) +2016-08-12 13:21:04.324 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting RESTCONF +2016-08-12 13:21:04.336 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.HoneycombDOMDataBrokerProvider(io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator@69f0b0f4, io.fd.honeycomb.data.impl.ReadableDataTreeDelegator@66933239) +2016-08-12 13:21:04.341 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DOMNotificationServiceProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:21:04.365 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.HoneycombDOMBrokerProvider(io.fd.honeycomb.data.impl.DataBroker@60a19573, io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter@44a085e5) +2016-08-12 13:21:04.373 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.restconf.RestconfProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.impl.NorthboundFacadeHoneycombDOMBroker@64f981e2) +2016-08-12 13:21:04.585 CEST [Web socket server on port PortNumber [_value=7779]] INFO o.o.n.s.s.w.WebSocketServer - Web socket server started at port 7779. +2016-08-12 13:21:05.332 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting NETCONF +2016-08-12 13:21:05.334 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMdsalMapperProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66, org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext@1a78dacd, io.fd.honeycomb.impl.NorthboundFacadeHoneycombDOMBroker@64f981e2) +2016-08-12 13:21:05.370 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfBindingBrokerProvider(org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@7b81616b) +2016-08-12 13:21:05.375 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfNotificationMapperProvider(org.opendaylight.netconf.notifications.impl.NetconfNotificationManager@614df0a4, org.opendaylight.netconf.notifications.impl.NetconfNotificationManager@614df0a4, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.NetconfBindingBrokerModule$FakeBindingAwareBroker@3830f918, org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@7b81616b, org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66) +2016-08-12 13:21:05.515 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMonitoringServiceProvider(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66) +2016-08-12 13:21:05.529 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMonitoringMapperProvider(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.NetconfBindingBrokerModule$FakeBindingAwareBroker@3830f918, org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66, org.opendaylight.netconf.impl.osgi.NetconfMonitoringServiceImpl@496cc217) +2016-08-12 13:21:05.666 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NettyTimerProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:21:05.683 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NettyThreadGroupProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:21:05.702 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfServerDispatcherProvider(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66, org.opendaylight.netconf.impl.osgi.NetconfMonitoringServiceImpl@496cc217, io.netty.util.HashedWheelTimer@36d582cb, io.netty.channel.nio.NioEventLoopGroup@6c2a95d5) +2016-08-12 13:21:05.728 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfTcpServerProvider(org.opendaylight.netconf.impl.NetconfServerDispatcherImpl@14e750c5, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:21:05.785 CEST [nioEventLoopGroup-4-1] INFO i.f.h.i.d.n.NetconfTcpServerProvider - Netconf TCP endpoint started successfully at /127.0.0.1:7777 +2016-08-12 13:21:05.804 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfSshServerProvider(org.opendaylight.netconf.impl.NetconfServerDispatcherImpl@14e750c5, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.netty.channel.nio.NioEventLoopGroup@6c2a95d5) +2016-08-12 13:21:06.447 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.HoneycombNotificationManagerProvider(org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter@44a085e5, [], org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@63dfada0) +2016-08-12 13:21:06.466 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.HoneycombNotification2NetconfProvider(org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter@44a085e5, io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.notification.impl.HoneycombNotificationCollector@1c9975a8, org.opendaylight.netconf.notifications.impl.NetconfNotificationManager@614df0a4) +2016-08-12 13:21:06.489 CEST [nioEventLoopGroup-4-2] INFO i.f.h.i.d.n.NetconfSshServerProvider - Netconf SSH endpoint started successfully at /0.0.0.0:2831 +2016-08-12 13:21:06.497 CEST [main] INFO i.f.h.i.d.n.HoneycombNotification2NetconfProvider - Exposing NETCONF notification stream: honeycomb +2016-08-12 13:21:06.499 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully! +2016-08-12 13:21:06.499 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Initializing configuration +2016-08-12 13:21:06.505 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.initializer.PersistedFileInitializerProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.data.impl.DataBroker@5981f4a6) +2016-08-12 13:21:06.514 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.initializer.PersistedFileInitializerProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.data.impl.DataBroker@60a19573) +2016-08-12 13:21:06.515 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.initializer.InitializerRegistryProvider(io.fd.honeycomb.data.init.RestoringInitializer@49665f92, io.fd.honeycomb.data.init.RestoringInitializer@b68932b, []) +2016-08-12 13:21:06.519 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Config initialization started +2016-08-12 13:21:06.543 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Persisted context restored successfully +2016-08-12 13:21:06.544 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Configuration initialized successfully +2016-08-12 13:21:06.555 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Persisted configuration restored successfully +2016-08-12 13:21:06.556 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Honeycomb initialized +2016-08-12 13:21:06.556 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Configuration initialized successfully +2016-08-12 13:21:06.556 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully! +2016-08-12 13:27:32.452 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting honeycomb +2016-08-12 13:29:00.304 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting honeycomb +2016-08-12 13:29:01.098 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: ModuleInfoBackedCtxProvider{writerFactories=[org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.general.entity.rev150820.$YangModelBindingProvider@4f2613d1, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.spi.entity.ownership.service.rev150810.$YangModelBindingProvider@773f7880, org.opendaylight.yang.gen.v1.instance.identifier.patch.module.rev151121.$YangModelBindingProvider@4c51bb7, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.rest.connector.rev140724.$YangModelBindingProvider@5b080f3a, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.sal.restconf.service.rev150708.$YangModelBindingProvider@665e9289, org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.$YangModelBindingProvider@2756c0a7, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.binding.impl.rev131028.$YangModelBindingProvider@71984c3, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.binding.rev131028.$YangModelBindingProvider@277f7dd3, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.$YangModelBindingProvider@470a696f, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.rpc.context.rev130617.$YangModelBindingProvider@2b491fee, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.$YangModelBindingProvider@5ddabb18, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.inmemory.datastore.provider.rev140617.$YangModelBindingProvider@50eca7c6, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.remote.rev140114.$YangModelBindingProvider@376a312c, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.restconf.rev131019.$YangModelBindingProvider@5ef0d29e, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.$YangModelBindingProvider@3ce3db41, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.$YangModelBindingProvider@e260766, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.netconf.northbound.impl.rev150112.$YangModelBindingProvider@4275c20c, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.$YangModelBindingProvider@40258c2f, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.$YangModelBindingProvider@16f7b4af, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.netconf.northbound.rev150114.$YangModelBindingProvider@58bf8650, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.north.mapper.rev150114.$YangModelBindingProvider@4ba534b0, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.notification.rev150806.$YangModelBindingProvider@2cb3d0f7, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.$YangModelBindingProvider@6a66a204, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.$YangModelBindingProvider@42f3156d, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.$YangModelBindingProvider@24bdb479, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.notification.impl.rev150807.$YangModelBindingProvider@2c7d121c, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.protocol.framework.rev140313.$YangModelBindingProvider@419a20a6, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.ssh.rev150114.$YangModelBindingProvider@10fde30a, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.netconf.auth.rev150715.$YangModelBindingProvider@346939bf, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.threadpool.rev130409.$YangModelBindingProvider@74e47444, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netty.rev131119.$YangModelBindingProvider@39dcf4b0, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.mdsal.notification.rev150803.$YangModelBindingProvider@46f699d5, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.mdsal.monitoring.rev150218.$YangModelBindingProvider@768ccdc5, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.mdsal.mapper.rev150114.$YangModelBindingProvider@659eef7, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.netconf.northbound.tcp.rev150423.$YangModelBindingProvider@1c9f0a20, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.spi.config.dom.store.rev140617.$YangModelBindingProvider@7db82169, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.common.rev131028.$YangModelBindingProvider@3276732, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.core.spi.operational.dom.store.rev140617.$YangModelBindingProvider@19fe4644, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.dom.rev131028.$YangModelBindingProvider@7383eae2, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.$YangModelBindingProvider@24fb6a80, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.impl.rev160411.$YangModelBindingProvider@6722db6e, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.api.rev160411.$YangModelBindingProvider@7a48e6e2, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.translate.api.rev160406.$YangModelBindingProvider@5049d8b2, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.$YangModelBindingProvider@2a3591c5, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.translate.utils.rev160406.$YangModelBindingProvider@107ed6fc, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.$YangModelBindingProvider@2e029d61, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.notification.api.rev160601.$YangModelBindingProvider@132ddbab, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.init.rev160407.$YangModelBindingProvider@5bf22f18, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.$YangModelBindingProvider@28276e50, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.$YangModelBindingProvider@675d8c96, org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.notification.impl.rev160601.$YangModelBindingProvider@63648ee9]} +2016-08-12 13:29:01.680 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.schema.SerializerProvider(org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext@1a78dacd) +2016-08-12 13:29:02.472 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider(org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext@1a78dacd) +2016-08-12 13:29:02.479 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataTreeProvider$ConfigDataTreeProvider() +2016-08-12 13:29:02.513 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.PersistingDataTreeProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:29:02.539 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.config.WriterRegistryProvider([]) +2016-08-12 13:29:02.567 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataTreeProvider$ContextDataTreeProvider() +2016-08-12 13:29:02.567 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.PersistingDataTreeProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:29:02.568 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.context.ModifiableDTMgrProvider(io.fd.honeycomb.data.impl.PersistingDataTreeAdapter@44065156) +2016-08-12 13:29:02.571 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.context.HoneycombContextDOMDataBrokerProvider(io.fd.honeycomb.data.impl.ModifiableDataTreeManager@43f9dd56) +2016-08-12 13:29:02.577 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider(io.fd.honeycomb.data.impl.DataBroker@54db056b, org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@d5af0a5) +2016-08-12 13:29:02.583 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.ModifiableDTDelegProvider(org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@d5af0a5, io.fd.honeycomb.data.impl.PersistingDataTreeAdapter@4784efd9, io.fd.honeycomb.translate.util.write.registry.FlatWriterRegistryBuilder@3fba233d, org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@427ae189) +2016-08-12 13:29:02.605 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataStoreProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, config, CONFIGURATION) +2016-08-12 13:29:02.626 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DataStoreProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, operational, OPERATIONAL) +2016-08-12 13:29:02.627 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.InmemoryDOMDataBrokerProvider(org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore@3662bdff, org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore@1bb15351) +2016-08-12 13:29:02.665 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider(org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker@7c112f5f, org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@d5af0a5) +2016-08-12 13:29:02.667 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMonitoringReaderFactoryProvider(org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@439e3cb4) +2016-08-12 13:29:02.671 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfNotificationsReaderFactoryProvider(org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@439e3cb4) +2016-08-12 13:29:02.674 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.oper.ReaderRegistryProvider([org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.NetconfMonitoringReaderModule$NetconfMonitoringReaderFactory@36c281ed, io.fd.honeycomb.infra.distro.netconf.NetconfNotificationsReaderFactoryProvider$1@4bd5849e]) +2016-08-12 13:29:02.725 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.oper.ReadableDTDelegProvider(org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@d5af0a5, io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.translate.util.read.registry.CompositeReaderRegistryBuilder@1e1b061, org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@427ae189) +2016-08-12 13:29:02.741 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb configuration: io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin) +2016-08-12 13:29:02.742 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting RESTCONF +2016-08-12 13:29:02.750 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.HoneycombDOMDataBrokerProvider(io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator@2b5c4f17, io.fd.honeycomb.data.impl.ReadableDataTreeDelegator@6ca8fcf3) +2016-08-12 13:29:02.757 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.DOMNotificationServiceProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:29:02.777 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.HoneycombDOMBrokerProvider(io.fd.honeycomb.data.impl.DataBroker@60d6fdd4, io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter@66f28a1f) +2016-08-12 13:29:02.784 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.restconf.RestconfProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.impl.NorthboundFacadeHoneycombDOMBroker@59c70ceb) +2016-08-12 13:29:03.036 CEST [Web socket server on port PortNumber [_value=7779]] INFO o.o.n.s.s.w.WebSocketServer - Web socket server started at port 7779. +2016-08-12 13:29:03.767 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Starting NETCONF +2016-08-12 13:29:03.770 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMdsalMapperProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66, org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext@1a78dacd, io.fd.honeycomb.impl.NorthboundFacadeHoneycombDOMBroker@59c70ceb) +2016-08-12 13:29:03.803 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfBindingBrokerProvider(org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@439e3cb4) +2016-08-12 13:29:03.806 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfNotificationMapperProvider(org.opendaylight.netconf.notifications.impl.NetconfNotificationManager@614df0a4, org.opendaylight.netconf.notifications.impl.NetconfNotificationManager@614df0a4, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.NetconfBindingBrokerModule$FakeBindingAwareBroker@58feb6b0, org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter@439e3cb4, org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66) +2016-08-12 13:29:03.957 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMonitoringServiceProvider(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66) +2016-08-12 13:29:03.972 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfMonitoringMapperProvider(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycomb.impl.rev141210.NetconfBindingBrokerModule$FakeBindingAwareBroker@58feb6b0, org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66, org.opendaylight.netconf.impl.osgi.NetconfMonitoringServiceImpl@2ca54da9) +2016-08-12 13:29:04.105 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NettyTimerProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:29:04.118 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NettyThreadGroupProvider(io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:29:04.151 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfServerDispatcherProvider(org.opendaylight.netconf.impl.osgi.AggregatedNetconfOperationServiceFactory@1199fe66, org.opendaylight.netconf.impl.osgi.NetconfMonitoringServiceImpl@2ca54da9, io.netty.util.HashedWheelTimer@226d5af0, io.netty.channel.nio.NioEventLoopGroup@527937d0) +2016-08-12 13:29:04.193 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfTcpServerProvider(org.opendaylight.netconf.impl.NetconfServerDispatcherImpl@7911cc15, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin)) +2016-08-12 13:29:04.255 CEST [nioEventLoopGroup-4-1] INFO i.f.h.i.d.n.NetconfTcpServerProvider - Netconf TCP endpoint started successfully at /127.0.0.1:7777 +2016-08-12 13:29:04.255 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.NetconfSshServerProvider(org.opendaylight.netconf.impl.NetconfServerDispatcherImpl@7911cc15, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.netty.channel.nio.NioEventLoopGroup@527937d0) +2016-08-12 13:29:04.922 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.data.HoneycombNotificationManagerProvider(org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter@66f28a1f, [], org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec@d5af0a5) +2016-08-12 13:29:04.944 CEST [nioEventLoopGroup-4-2] INFO i.f.h.i.d.n.NetconfSshServerProvider - Netconf SSH endpoint started successfully at /0.0.0.0:2831 +2016-08-12 13:29:04.945 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.netconf.HoneycombNotification2NetconfProvider(org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter@66f28a1f, io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.notification.impl.HoneycombNotificationCollector@58a7a58d, org.opendaylight.netconf.notifications.impl.NetconfNotificationManager@614df0a4) +2016-08-12 13:29:04.968 CEST [main] INFO i.f.h.i.d.n.HoneycombNotification2NetconfProvider - Exposing NETCONF notification stream: honeycomb +2016-08-12 13:29:04.972 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully! +2016-08-12 13:29:04.973 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Initializing configuration +2016-08-12 13:29:04.981 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.initializer.PersistedFileInitializerProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.data.impl.DataBroker@54db056b) +2016-08-12 13:29:04.991 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.initializer.PersistedFileInitializerProvider(io.fd.honeycomb.infra.distro.schema.SchemaServiceProvider$StaticSchemaService@23f86d8a, io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration(peristContextPath:persist/context/data.json, persistedContextRestorationType:Merge, peristConfigPath:persist/config/data.json, persistedConfigRestorationType:Merge, notificationServiceQueueDepth:1, restconfWebsocketPort:7779, restconfPort:8181, restconfRootPath:/restconf, netconfNettyThreads:Optional[2], netconfTcpBindingAddress:Optional[127.0.0.1], netconfTcpBindingPort:Optional[7777], netconfSshBindingAddress:0.0.0.0, netconfSshBindingPort:2831, netconfNotificationStreamName:honeycomb, username:admin, password:admin), io.fd.honeycomb.data.impl.DataBroker@60d6fdd4) +2016-08-12 13:29:04.993 CEST [main] INFO i.f.h.infra.distro.ProviderTrait - Providing: io.fd.honeycomb.infra.distro.initializer.InitializerRegistryProvider(io.fd.honeycomb.data.init.RestoringInitializer@195cbf5e, io.fd.honeycomb.data.init.RestoringInitializer@4cb82b09, []) +2016-08-12 13:29:04.998 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Config initialization started +2016-08-12 13:29:05.025 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Persisted context restored successfully +2016-08-12 13:29:05.026 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Configuration initialized successfully +2016-08-12 13:29:05.043 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Persisted configuration restored successfully +2016-08-12 13:29:05.044 CEST [main] INFO i.f.h.i.d.i.InitializerRegistryProvider - Honeycomb initialized +2016-08-12 13:29:05.044 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Configuration initialized successfully +2016-08-12 13:29:05.045 CEST [main] INFO io.fd.honeycomb.infra.distro.Main - Honeycomb started successfully! diff --git a/infra/minimal-distribution/pom.xml b/infra/minimal-distribution/pom.xml index 8d284b340..43f7a1100 100644 --- a/infra/minimal-distribution/pom.xml +++ b/infra/minimal-distribution/pom.xml @@ -19,7 +19,7 @@ io.fd.honeycomb.common minimal-distribution-parent 1.0.0-SNAPSHOT - ../../common/minimal-distro-parent + ../../common/minimal-distribution-parent 4.0.0 diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java index d715c592d..ff85cd2a7 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java @@ -38,7 +38,6 @@ import io.fd.honeycomb.infra.distro.netconf.NetconfTcpServerProvider; import io.fd.honeycomb.infra.distro.restconf.RestconfModule; import io.fd.honeycomb.infra.distro.schema.SchemaModule; import io.fd.honeycomb.infra.distro.schema.YangBindingProviderModule; -import io.fd.honeycomb.infra.distro.data.NotificationModule; import java.util.List; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; import org.opendaylight.netconf.sal.rest.api.RestConnector; @@ -54,7 +53,6 @@ public final class Main { // Infra new YangBindingProviderModule(), new SchemaModule(), - new NotificationModule(), new ConfigAndOperationalPipelineModule(), new ContextPipelineModule(), new InitializerPipelineModule(), @@ -69,7 +67,7 @@ public final class Main { init(BASE_MODULES); } - public static void init(final List modules) { + public static Injector init(final List modules) { LOG.info("Starting honeycomb"); Injector injector = Guice.createInjector(modules); @@ -88,11 +86,11 @@ public final class Main { LOG.info("Starting NETCONF"); injector.getInstance( - Key.get(NetconfOperationServiceFactory.class, Names.named(NetconfModule.NETCONF_MAPPER_HONEYCOMB))); + Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-honeycomb"))); injector.getInstance( - Key.get(NetconfOperationServiceFactory.class, Names.named(NetconfModule.NETCONF_MAPPER_NOTIFICATION))); + Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-notification"))); injector.getInstance( - Key.get(NetconfOperationServiceFactory.class, Names.named(NetconfModule.NETCONF_MAPPER_MONITORING))); + Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-monitoring"))); if (cfgAttributes.isNetconfTcpServerEnabled()) { injector.getInstance(NetconfTcpServerProvider.NetconfTcpServer.class); @@ -112,5 +110,7 @@ public final class Main { } LOG.info("Honeycomb started successfully!"); + + return injector; } } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.groovy index 01ec8c16a..ede905d06 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/ConfigAndOperationalPipelineModule.groovy @@ -31,34 +31,42 @@ import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder import org.opendaylight.controller.md.sal.binding.api.DataBroker import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker +import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter +import org.opendaylight.controller.sal.core.api.Broker import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree @Slf4j class ConfigAndOperationalPipelineModule extends PrivateModule { protected void configure() { - // Expose registries + // Expose registries for plugin reader/writer factories bind(ModifiableWriterRegistryBuilder).toProvider(WriterRegistryProvider).in(Singleton) expose(ModifiableWriterRegistryBuilder) bind(ModifiableReaderRegistryBuilder).toProvider(ReaderRegistryProvider).in(Singleton) expose(ModifiableReaderRegistryBuilder) - def dataTreeProvider = new DataTreeProvider.ConfigDataTreeProvider() - bind(DataTree).annotatedWith(Names.named("honeycomb-config")).toProvider(dataTreeProvider).in(Singleton) + // Non persisting data tree + bind(DataTree) + .annotatedWith(Names.named("honeycomb-config-nopersist")) + .toProvider(DataTreeProvider.ConfigDataTreeProvider) + .in(Singleton) + expose(DataTree).annotatedWith(Names.named("honeycomb-config-nopersist")) + // Persisting data tree wrapper + bind(DataTree) + .annotatedWith(Names.named("honeycomb-config")) + .toProvider(PersistingDataTreeProvider.ConfigPersistingDataTreeProvider) + .in(Singleton) expose(DataTree).annotatedWith(Names.named("honeycomb-config")) bind(ModifiableDataManager).toProvider(ModifiableDTDelegProvider).in(Singleton) - bind(ReadableDataManager) - .annotatedWith(Names.named("honeycomb-operational")) - .toProvider(ReadableDTDelegProvider).in(Singleton) - // Expose reader for initializer - expose(ReadableDataManager).annotatedWith(Names.named("honeycomb-operational")) + bind(ReadableDataManager).toProvider(ReadableDTDelegProvider).in(Singleton) + expose(ReadableDataManager) def domBrokerProvider = new HoneycombDOMDataBrokerProvider() - bind(DOMDataBroker).annotatedWith(Names.named("honeycomb-config")).toProvider(domBrokerProvider).in(Singleton) +// bind(DOMDataBroker).annotatedWith(Names.named("honeycomb-config")).toProvider(domBrokerProvider).in(Singleton) // Bind also without annotation for easy private injection bind(DOMDataBroker).toProvider(domBrokerProvider).in(Singleton) - expose(DOMDataBroker).annotatedWith(Names.named("honeycomb-config")) + bind(DataBroker).annotatedWith(Names.named("honeycomb-config")).toProvider(BindingDataBrokerProvider).in(Singleton) expose(DataBroker).annotatedWith(Names.named("honeycomb-config")) @@ -67,5 +75,14 @@ class ConfigAndOperationalPipelineModule extends PrivateModule { .toProvider(PersistedFileInitializerProvider.PersistedConfigInitializerProvider) .in(Singleton) expose(DataTreeInitializer).annotatedWith(Names.named("honeycomb-config")) + + configureNotifications() + } + + protected void configureNotifications() { + bind(DOMNotificationRouter).toProvider(DOMNotificationServiceProvider).in(Singleton) + expose(DOMNotificationRouter) + bind(Broker).toProvider(HoneycombDOMBrokerProvider).in(Singleton) + expose(Broker) } } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.groovy index 6915a3cec..bf1f562ec 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/DataTreeProvider.groovy @@ -19,16 +19,13 @@ package io.fd.honeycomb.infra.distro.data import com.google.inject.Inject import groovy.transform.ToString import groovy.util.logging.Slf4j -import io.fd.honeycomb.data.impl.PersistingDataTreeAdapter -import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration import io.fd.honeycomb.infra.distro.ProviderTrait +import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration import org.opendaylight.controller.sal.core.api.model.SchemaService import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory -import java.nio.file.Paths - @Slf4j @ToString abstract class DataTreeProvider extends ProviderTrait { @@ -41,19 +38,20 @@ abstract class DataTreeProvider extends ProviderTrait { def create() { def delegate = InMemoryDataTreeFactory.getInstance().create(getType()) delegate.setSchemaContext(schemaService.getGlobalContext()) - new PersistingDataTreeAdapter(delegate, schemaService, Paths.get(getPath())) + delegate } - abstract String getPath() abstract TreeType getType() + @Slf4j + @ToString static class ConfigDataTreeProvider extends DataTreeProvider { - String getPath() { config.peristConfigPath } TreeType getType() { TreeType.CONFIGURATION } } + @Slf4j + @ToString static class ContextDataTreeProvider extends DataTreeProvider { - String getPath() { config.peristContextPath } TreeType getType() { TreeType.OPERATIONAL } } } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMBrokerProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMBrokerProvider.groovy index 2b275f7ff..5dc98cded 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMBrokerProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMBrokerProvider.groovy @@ -17,13 +17,12 @@ package io.fd.honeycomb.infra.distro.data import com.google.inject.Inject -import com.google.inject.name.Named import groovy.transform.ToString import groovy.util.logging.Slf4j import io.fd.honeycomb.impl.NorthboundFacadeHoneycombDOMBroker import io.fd.honeycomb.infra.distro.ProviderTrait import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker -import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService +import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter import org.opendaylight.controller.sal.core.api.Broker import org.opendaylight.controller.sal.core.api.model.SchemaService @@ -32,13 +31,12 @@ import org.opendaylight.controller.sal.core.api.model.SchemaService class HoneycombDOMBrokerProvider extends ProviderTrait { @Inject - @Named("honeycomb-config") +// @Named("honeycomb-config") DOMDataBroker domDataBroker @Inject SchemaService schemaService @Inject - @Named("honeycomb") - DOMNotificationService domNotificationService + DOMNotificationRouter domNotificationService def create() { new NorthboundFacadeHoneycombDOMBroker(domDataBroker, schemaService, domNotificationService) } } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.groovy index e91054b3b..a2fec2a60 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombDOMDataBrokerProvider.groovy @@ -17,7 +17,6 @@ package io.fd.honeycomb.infra.distro.data import com.google.inject.Inject -import com.google.inject.name.Named import groovy.transform.ToString import groovy.util.logging.Slf4j import io.fd.honeycomb.data.ModifiableDataManager @@ -34,7 +33,6 @@ class HoneycombDOMDataBrokerProvider extends ProviderTrait { ModifiableDataManager modDataManager @Inject - @Named("honeycomb-operational") ReadableDataManager readDataManager def create() { diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.groovy index f150691a8..473112341 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/HoneycombNotificationManagerProvider.groovy @@ -17,7 +17,6 @@ package io.fd.honeycomb.infra.distro.data import com.google.inject.Inject -import com.google.inject.name.Named import groovy.transform.ToString import groovy.util.logging.Slf4j import io.fd.honeycomb.infra.distro.ProviderTrait @@ -29,7 +28,6 @@ import io.fd.honeycomb.notification.impl.NotificationProducerTracker import org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter - /** * Mirror of org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.notification.impl.rev160601.HoneycombNotificationManagerModule */ @@ -38,7 +36,6 @@ import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter class HoneycombNotificationManagerProvider extends ProviderTrait { @Inject - @Named("honeycomb") DOMNotificationRouter notificationRouter @Inject(optional = true) Set notificationProducers = [] diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/NotificationModule.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/NotificationModule.groovy deleted file mode 100644 index 4836a0fbe..000000000 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/NotificationModule.groovy +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.infra.distro.data - -import com.google.inject.AbstractModule -import com.google.inject.Singleton -import com.google.inject.name.Names -import groovy.util.logging.Slf4j -import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService -import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter -import org.opendaylight.controller.sal.core.api.Broker - -@Slf4j -class NotificationModule extends AbstractModule { - - protected void configure() { - def provider = new DOMNotificationServiceProvider() - bind(DOMNotificationService) - .annotatedWith(Names.named("honeycomb")) - .toProvider(provider) - .in(Singleton) - bind(DOMNotificationRouter) - .annotatedWith(Names.named("honeycomb")) - .toProvider(provider) - .in(Singleton) - bind(Broker) - .annotatedWith(Names.named("honeycomb")) - .toProvider(HoneycombDOMBrokerProvider) - .in(Singleton) - } -} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.groovy new file mode 100644 index 000000000..753963309 --- /dev/null +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/PersistingDataTreeProvider.groovy @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fd.honeycomb.infra.distro.data + +import com.google.inject.Inject +import com.google.inject.name.Named +import groovy.transform.ToString +import groovy.util.logging.Slf4j +import io.fd.honeycomb.data.impl.PersistingDataTreeAdapter +import io.fd.honeycomb.infra.distro.ProviderTrait +import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration +import org.opendaylight.controller.sal.core.api.model.SchemaService +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree +import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType + +import java.nio.file.Paths + +@Slf4j +@ToString +abstract class PersistingDataTreeProvider extends ProviderTrait { + + @Inject + SchemaService schemaService + @Inject + HoneycombConfiguration config + + def create() { + new PersistingDataTreeAdapter(delegate, schemaService, Paths.get(path)) + } + + abstract String getPath() + abstract TreeType getType() + abstract DataTree getDelegate() + + static class ConfigPersistingDataTreeProvider extends PersistingDataTreeProvider { + + @Inject + @Named("honeycomb-config-nopersist") + DataTree delegate + + String getPath() { config.peristConfigPath } + TreeType getType() { TreeType.CONFIGURATION } + DataTree getDelegate() { return delegate } + } + + static class ContextPersistingDataTreeProvider extends PersistingDataTreeProvider { + + @Inject + @Named("honeycomb-context-nopersist") + DataTree delegate + + String getPath() { config.peristContextPath } + TreeType getType() { TreeType.OPERATIONAL } + DataTree getDelegate() { return delegate } + } +} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.groovy index 01124131f..25244cb2f 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/ContextPipelineModule.groovy @@ -23,7 +23,9 @@ import io.fd.honeycomb.data.ModifiableDataManager import io.fd.honeycomb.data.init.DataTreeInitializer import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider import io.fd.honeycomb.infra.distro.data.DataTreeProvider +import io.fd.honeycomb.infra.distro.data.PersistingDataTreeProvider import io.fd.honeycomb.infra.distro.initializer.PersistedFileInitializerProvider +import io.fd.honeycomb.translate.MappingContext import org.opendaylight.controller.md.sal.binding.api.DataBroker import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree @@ -32,18 +34,27 @@ class ContextPipelineModule extends PrivateModule { protected void configure() { // Bind also without annotation for easy private injection - def dataTreeProvider = new DataTreeProvider.ContextDataTreeProvider() + + // Non persisting data tree + def noPersistDataTreeProvider = new DataTreeProvider.ContextDataTreeProvider() + bind(DataTree) + .annotatedWith(Names.named("honeycomb-context-nopersist")) + .toProvider(noPersistDataTreeProvider) + .in(Singleton) + expose(DataTree).annotatedWith(Names.named("honeycomb-context-nopersist")) + // Persisting data tree wrapper + def dataTreeProvider = new PersistingDataTreeProvider.ContextPersistingDataTreeProvider() bind(DataTree).toProvider(dataTreeProvider).in(Singleton) - bind(DataTree).annotatedWith(Names.named("honeycomb-context")).toProvider(dataTreeProvider).in(Singleton) - expose(DataTree).annotatedWith(Names.named("honeycomb-context")) +// bind(DataTree).annotatedWith(Names.named("honeycomb-context")).toProvider(dataTreeProvider).in(Singleton) +// expose(DataTree).annotatedWith(Names.named("honeycomb-context")) bind(ModifiableDataManager).toProvider(ModifiableDTMgrProvider).in(Singleton) def domBrokerProvider = new HoneycombContextDOMDataBrokerProvider() - bind(DOMDataBroker).annotatedWith(Names.named("honeycomb-context")).toProvider(domBrokerProvider).in(Singleton) +// bind(DOMDataBroker).annotatedWith(Names.named("honeycomb-context")).toProvider(domBrokerProvider).in(Singleton) // Bind also without annotation for easy private injection bind(DOMDataBroker).toProvider(domBrokerProvider).in(Singleton) - expose(DOMDataBroker).annotatedWith(Names.named("honeycomb-context")) +// expose(DOMDataBroker).annotatedWith(Names.named("honeycomb-context")) bind(DataBroker).annotatedWith(Names.named("honeycomb-context")).toProvider(BindingDataBrokerProvider).in(Singleton) expose(DataBroker).annotatedWith(Names.named("honeycomb-context")) @@ -53,6 +64,12 @@ class ContextPipelineModule extends PrivateModule { .toProvider(PersistedFileInitializerProvider.PersistedContextInitializerProvider) .in(Singleton) expose(DataTreeInitializer).annotatedWith(Names.named("honeycomb-context")) + + bind(MappingContext) + .annotatedWith(Names.named("honeycomb-context")) + .toProvider(RealtimeMappingContextProvider) + .in(Singleton.class) + expose(MappingContext).annotatedWith(Names.named("honeycomb-context")) } } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.groovy new file mode 100644 index 000000000..3c7eebb3d --- /dev/null +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/data/context/RealtimeMappingContextProvider.groovy @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fd.honeycomb.infra.distro.data.context + +import com.google.inject.Inject +import com.google.inject.name.Named +import groovy.transform.ToString +import groovy.util.logging.Slf4j +import io.fd.honeycomb.infra.distro.ProviderTrait +import io.fd.honeycomb.translate.MappingContext +import io.fd.honeycomb.translate.util.RealtimeMappingContext +import org.opendaylight.controller.md.sal.binding.api.DataBroker + +@Slf4j +@ToString +class RealtimeMappingContextProvider extends ProviderTrait { + + @Inject + @Named("honeycomb-context") + DataBroker contextDataBroker + + @Override + def create() { + new RealtimeMappingContext(contextDataBroker) + } +} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.groovy index 80b52f2b8..10757c1a5 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.groovy @@ -24,9 +24,6 @@ import io.fd.honeycomb.data.ModifiableDataManager import io.fd.honeycomb.data.init.InitializerRegistry import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider import io.fd.honeycomb.infra.distro.data.HoneycombDOMDataBrokerProvider -import io.fd.honeycomb.infra.distro.data.ModifiableDTDelegProvider -import io.fd.honeycomb.translate.util.write.NoopWriterRegistry -import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder import org.opendaylight.controller.md.sal.binding.api.DataBroker import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker @@ -34,19 +31,11 @@ import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker class InitializerPipelineModule extends PrivateModule { protected void configure() { - // Initializer hierarchy uses fake writer registry to not send restored configuration from plugins back to plugins - def registry = new NoopWriterRegistry() - bind(ModifiableWriterRegistryBuilder) - .annotatedWith(Names.named("honeycomb-initializer")) - .toInstance([build: { registry }]) - - // Then just build data tree delegator and DataBrokers on top of it - bind(ModifiableDataManager).toProvider(ModifiableDTDelegProvider).in(Singleton) + bind(ModifiableDataManager).toProvider(ModifiableDTDelegInitProvider).in(Singleton) bind(DOMDataBroker).toProvider(HoneycombDOMDataBrokerProvider).in(Singleton) bind(DataBroker).annotatedWith(Names.named("honeycomb-initializer")).toProvider(BindingDataBrokerProvider).in(Singleton) expose(DataBroker).annotatedWith(Names.named("honeycomb-initializer")) - // NOW do initializer registry bind(InitializerRegistry) .annotatedWith(Names.named("honeycomb-initializer")) .toProvider(InitializerRegistryProvider) diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.groovy new file mode 100644 index 000000000..2a1422dae --- /dev/null +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.groovy @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fd.honeycomb.infra.distro.initializer + +import com.google.inject.Inject +import com.google.inject.name.Named +import groovy.transform.ToString +import groovy.util.logging.Slf4j +import io.fd.honeycomb.data.ModifiableDataManager +import io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator +import io.fd.honeycomb.infra.distro.ProviderTrait +import io.fd.honeycomb.translate.util.write.NoopWriterRegistry +import org.opendaylight.controller.md.sal.binding.api.DataBroker +import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree + +/** + * Similar to ModifiableDTDelegProvider, but uses noop writer registry + */ +@Slf4j +@ToString +class ModifiableDTDelegInitProvider extends ProviderTrait { + + @Inject + BindingToNormalizedNodeCodec serializer + @Inject + @Named("honeycomb-config-nopersist") + DataTree dataTree + @Inject + @Named("honeycomb-context") + DataBroker contextBroker + + @Override + def create() { new ModifiableDataTreeDelegator(serializer, dataTree, new NoopWriterRegistry(), contextBroker) } +} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.groovy index c2448d234..9b7cfb4ae 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.groovy @@ -20,8 +20,8 @@ import com.google.inject.Inject import groovy.transform.ToString import groovy.util.logging.Slf4j import io.fd.honeycomb.data.init.RestoringInitializer -import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration import io.fd.honeycomb.infra.distro.ProviderTrait +import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker import org.opendaylight.controller.sal.core.api.model.SchemaService diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/HoneycombNotification2NetconfProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/HoneycombNotification2NetconfProvider.groovy index a18d2c4f0..726dfb5af 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/HoneycombNotification2NetconfProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/HoneycombNotification2NetconfProvider.groovy @@ -17,11 +17,10 @@ package io.fd.honeycomb.infra.distro.netconf import com.google.inject.Inject -import com.google.inject.name.Named import groovy.transform.ToString import groovy.util.logging.Slf4j -import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration import io.fd.honeycomb.infra.distro.ProviderTrait +import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration import io.fd.honeycomb.notification.NotificationCollector import io.fd.honeycomb.notification.impl.NotificationProducerRegistry import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter @@ -39,7 +38,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath class HoneycombNotification2NetconfProvider extends ProviderTrait { @Inject - @Named("honeycomb") DOMNotificationRouter notificationRouter @Inject SchemaService schemaService diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfBindingBrokerProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfBindingBrokerProvider.groovy index 8226c8d9e..8c5dcab01 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfBindingBrokerProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfBindingBrokerProvider.groovy @@ -33,7 +33,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycom class NetconfBindingBrokerProvider extends ProviderTrait { @Inject - @Named(NetconfModule.NETCONF) + @Named("netconf") DataBroker dataBroker @Override diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMdsalMapperProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMdsalMapperProvider.groovy index d84af61a8..491eedcef 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMdsalMapperProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMdsalMapperProvider.groovy @@ -17,7 +17,6 @@ package io.fd.honeycomb.infra.distro.netconf import com.google.inject.Inject -import com.google.inject.name.Named import groovy.transform.ToString import groovy.util.logging.Slf4j import io.fd.honeycomb.infra.distro.ProviderTrait @@ -42,7 +41,6 @@ class NetconfMdsalMapperProvider extends ProviderTrait { @Inject - @Named(NetconfModule.NETCONF) + @Named("netconf") BindingAwareBroker bindingAwareBroker @Inject NetconfOperationServiceFactoryListener aggregator diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringReaderFactoryProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringReaderFactoryProvider.groovy index 2945ae6d8..fee1944f4 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringReaderFactoryProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringReaderFactoryProvider.groovy @@ -30,7 +30,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.honeycom class NetconfMonitoringReaderFactoryProvider extends ProviderTrait { @Inject - @Named(NetconfModule.NETCONF) + @Named("netconf") DataBroker netconfDataBroker def create() { new NetconfMonitoringReaderModule.NetconfMonitoringReaderFactory(netconfDataBroker) } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringServiceProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringServiceProvider.groovy index 5762a0a7f..4592cf4bd 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringServiceProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfMonitoringServiceProvider.groovy @@ -32,7 +32,7 @@ import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory class NetconfMonitoringServiceProvider extends ProviderTrait { @Inject - @Named(NetconfModule.NETCONF_MAPPER_AGGREGATOR) + @Named("netconf-mapper-aggregator") NetconfOperationServiceFactory aggregator @Override diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfNotificationMapperProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfNotificationMapperProvider.groovy index 57f7038ab..02739290f 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfNotificationMapperProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfNotificationMapperProvider.groovy @@ -50,10 +50,10 @@ class NetconfNotificationMapperProvider extends ProviderTrait { @Inject - @Named(NetconfModule.NETCONF) + @Named("netconf") DataBroker netconfDataBroker def create() { diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfServerDispatcherProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfServerDispatcherProvider.groovy index 072a7f6ae..18019db57 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfServerDispatcherProvider.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfServerDispatcherProvider.groovy @@ -43,7 +43,7 @@ class NetconfServerDispatcherProvider extends ProviderTrait { HoneycombConfiguration cfg @Inject - @Named("honeycomb") Broker domBroker def create() { diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.groovy index ebf473a3b..3ea4bcaa6 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.groovy +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/schema/YangBindingProviderModule.groovy @@ -18,6 +18,7 @@ package io.fd.honeycomb.infra.distro.schema import com.google.common.base.Charsets import com.google.inject.AbstractModule +import com.google.inject.Singleton import com.google.inject.multibindings.Multibinder import groovy.util.logging.Slf4j import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider @@ -41,7 +42,7 @@ class YangBindingProviderModule extends AbstractModule { .collect { this.getClass().forName(it) } .forEach { log.debug "ModuleProvider found for {}", it - addBinding().to(it) + addBinding().to(it).in(Singleton) } } } diff --git a/infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/WEB-INF/web.xml b/infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/WEB-INF/web.xml deleted file mode 100644 index b75bdeaec..000000000 --- a/infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/WEB-INF/web.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - JAXRSRestconf - com.sun.jersey.spi.container.servlet.ServletContainer - - javax.ws.rs.Application - org.opendaylight.netconf.sal.rest.impl.RestconfApplication - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - JAXRSRestconf - /* - - - - GzipFilter - org.eclipse.jetty.servlets.GzipFilter - - mimeTypes - application/xml,application/yang.data+xml,xml,application/json,application/yang.data+json - - - - - GzipFilter - /* - - - - cross-origin-restconf - org.eclipse.jetty.servlets.CrossOriginFilter - - allowedOrigins - * - - - allowedMethods - GET,POST,OPTIONS,DELETE,PUT,HEAD - - - allowedHeaders - origin, content-type, accept, authorization - - - exposedHeaders - location - - - - cross-origin-restconf - /* - - - - - NB api - /* - POST - GET - PUT - PATCH - DELETE - HEAD - - - - diff --git a/infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml b/infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml new file mode 100644 index 000000000..4a4adfbd8 --- /dev/null +++ b/infra/minimal-distribution/src/main/resources/honeycomb-minimal-resources/config/WEB-INF/web.xml @@ -0,0 +1,110 @@ + + + + + + + JAXRSRestconf + com.sun.jersey.spi.container.servlet.ServletContainer + + javax.ws.rs.Application + org.opendaylight.netconf.sal.rest.impl.RestconfApplication + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + JAXRSRestconf + /* + + + + GzipFilter + org.eclipse.jetty.servlets.GzipFilter + + mimeTypes + application/xml,application/yang.data+xml,xml,application/json,application/yang.data+json + + + + + GzipFilter + /* + + + + cross-origin-restconf + org.eclipse.jetty.servlets.CrossOriginFilter + + allowedOrigins + * + + + allowedMethods + GET,POST,OPTIONS,DELETE,PUT,HEAD + + + allowedHeaders + origin, content-type, accept, authorization + + + exposedHeaders + location + + + + cross-origin-restconf + /* + + + + + NB api + /* + POST + GET + PUT + PATCH + DELETE + HEAD + + + + diff --git a/infra/pom.xml b/infra/pom.xml index 152f668d5..9f9ea549f 100644 --- a/infra/pom.xml +++ b/infra/pom.xml @@ -42,8 +42,9 @@ cfg-init impl minimal-distribution - karaf - features + + + artifacts it diff --git a/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/RealtimeMappingContext.java b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/RealtimeMappingContext.java new file mode 100644 index 000000000..3d1b5222f --- /dev/null +++ b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/RealtimeMappingContext.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fd.honeycomb.translate.util; + +import com.google.common.base.Optional; +import io.fd.honeycomb.translate.MappingContext; +import javax.annotation.Nonnull; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; +import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; +import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +public final class RealtimeMappingContext implements MappingContext { + + private DataBroker contextBindingBrokerDependency; + + public RealtimeMappingContext(final DataBroker contextBindingBrokerDependency) { + this.contextBindingBrokerDependency = contextBindingBrokerDependency; + } + + @Override + public Optional read(@Nonnull final InstanceIdentifier currentId) { + try(ReadOnlyTransaction tx = contextBindingBrokerDependency.newReadOnlyTransaction()) { + try { + return tx.read(LogicalDatastoreType.OPERATIONAL, currentId).checkedGet(); + } catch (ReadFailedException e) { + throw new IllegalStateException("Unable to perform read of " + currentId, e); + } + } + } + + @Override + public void delete(final InstanceIdentifier path) { + final WriteTransaction writeTx = contextBindingBrokerDependency.newWriteOnlyTransaction(); + writeTx.delete(LogicalDatastoreType.OPERATIONAL, path); + try { + writeTx.submit().checkedGet(); + } catch (TransactionCommitFailedException e) { + throw new IllegalStateException("Unable to perform delete of " + path, e); + } + } + + @Override + public void merge(final InstanceIdentifier path, final T data) { + final WriteTransaction writeTx = contextBindingBrokerDependency.newWriteOnlyTransaction(); + writeTx.merge(LogicalDatastoreType.OPERATIONAL, path, data); + try { + writeTx.submit().checkedGet(); + } catch (TransactionCommitFailedException e) { + throw new IllegalStateException("Unable to perform merge of " + path, e); + } + } + + @Override + public void put(final InstanceIdentifier path, final T data) { + final WriteTransaction writeTx = contextBindingBrokerDependency.newWriteOnlyTransaction(); + writeTx.put(LogicalDatastoreType.OPERATIONAL, path, data); + try { + writeTx.submit().checkedGet(); + } catch (TransactionCommitFailedException e) { + throw new IllegalStateException("Unable to perform put of " + path, e); + } + } + + @Override + public void close() { + // Noop + } +} diff --git a/infra/translate-utils/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/translate/utils/rev160406/RealtimeMappingContextModule.java b/infra/translate-utils/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/translate/utils/rev160406/RealtimeMappingContextModule.java index d245682d0..f882b9ba4 100644 --- a/infra/translate-utils/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/translate/utils/rev160406/RealtimeMappingContextModule.java +++ b/infra/translate-utils/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/translate/utils/rev160406/RealtimeMappingContextModule.java @@ -1,16 +1,5 @@ package org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.translate.utils.rev160406; -import com.google.common.base.Optional; -import io.fd.honeycomb.translate.MappingContext; -import javax.annotation.Nonnull; -import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; -import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - public class RealtimeMappingContextModule extends org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.translate.utils.rev160406.AbstractRealtimeMappingContextModule { public RealtimeMappingContextModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { super(identifier, dependencyResolver); @@ -28,57 +17,7 @@ public class RealtimeMappingContextModule extends org.opendaylight.yang.gen.v1.u @Override public java.lang.AutoCloseable createInstance() { // Provides real time CRUD on top of Context data broker - return new MappingContext() { - - @Override - public Optional read(@Nonnull final InstanceIdentifier currentId) { - try(ReadOnlyTransaction tx = getContextBindingBrokerDependency().newReadOnlyTransaction()) { - try { - return tx.read(LogicalDatastoreType.OPERATIONAL, currentId).checkedGet(); - } catch (ReadFailedException e) { - throw new IllegalStateException("Unable to perform read of " + currentId, e); - } - } - } - - @Override - public void delete(final InstanceIdentifier path) { - final WriteTransaction writeTx = getContextBindingBrokerDependency().newWriteOnlyTransaction(); - writeTx.delete(LogicalDatastoreType.OPERATIONAL, path); - try { - writeTx.submit().checkedGet(); - } catch (TransactionCommitFailedException e) { - throw new IllegalStateException("Unable to perform delete of " + path, e); - } - } - - @Override - public void merge(final InstanceIdentifier path, final T data) { - final WriteTransaction writeTx = getContextBindingBrokerDependency().newWriteOnlyTransaction(); - writeTx.merge(LogicalDatastoreType.OPERATIONAL, path, data); - try { - writeTx.submit().checkedGet(); - } catch (TransactionCommitFailedException e) { - throw new IllegalStateException("Unable to perform merge of " + path, e); - } - } - - @Override - public void put(final InstanceIdentifier path, final T data) { - final WriteTransaction writeTx = getContextBindingBrokerDependency().newWriteOnlyTransaction(); - writeTx.put(LogicalDatastoreType.OPERATIONAL, path, data); - try { - writeTx.submit().checkedGet(); - } catch (TransactionCommitFailedException e) { - throw new IllegalStateException("Unable to perform put of " + path, e); - } - } - - @Override - public void close() { - // Noop - } - }; + return new io.fd.honeycomb.translate.util.RealtimeMappingContext(getContextBindingBrokerDependency()); } } -- cgit 1.2.3-korg