summaryrefslogtreecommitdiffstats
path: root/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java
diff options
context:
space:
mode:
authorMaros Marsalek <mmarsale@cisco.com>2016-08-17 15:38:01 +0200
committerMaros Marsalek <mmarsale@cisco.com>2016-08-19 12:49:56 +0200
commit3341ac467cc08ac95f937945c7502ac4a019d805 (patch)
tree1b13df9f8709d123c6fe50a9fa21d3686554e65f /infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java
parent672f0c90fdbf4b5dc60cbfaaaf262e16561fdb7a (diff)
Make Restconf thread pools configurable
Change-Id: Ie03a1fde5181cfd8457e36d67afc2cc0c69c1e1d Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Diffstat (limited to 'infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java')
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java62
1 files changed, 46 insertions, 16 deletions
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 6c63c213d..278f0b104 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
@@ -16,6 +16,7 @@
package io.fd.honeycomb.infra.distro;
+import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.inject.ConfigurationException;
import com.google.inject.CreationException;
@@ -42,6 +43,8 @@ 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 java.util.List;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
import org.opendaylight.netconf.sal.rest.api.RestConnector;
import org.slf4j.Logger;
@@ -70,6 +73,9 @@ public final class Main {
init(BASE_MODULES);
}
+ /**
+ * Initialize the Honeycomb infrastructure + all wired plugins.
+ */
public static Injector init(final List<? extends Module> modules) {
try {
LOG.info("Starting honeycomb");
@@ -82,26 +88,50 @@ public final class Main {
.forEach(e -> LOG.trace("Component available under: {} is {}", e.getKey(), e.getValue()));
final HoneycombConfiguration cfgAttributes = injector.getInstance(HoneycombConfiguration.class);
-
+ Preconditions.checkArgument(cfgAttributes.isRestconfEnabled() || cfgAttributes.isNetconfEnabled(),
+ "At least one interface(Restconf|Netconf) has to be enabled for Honeycomb");
// Now get instances for all dependency roots
- LOG.info("Starting RESTCONF");
- injector.getInstance(RestConnector.class);
-
- LOG.info("Starting NETCONF");
- injector.getInstance(
- Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-honeycomb")));
- injector.getInstance(
- Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-notification")));
- injector.getInstance(
- Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-monitoring")));
-
- if (cfgAttributes.isNetconfTcpServerEnabled()) {
- injector.getInstance(NetconfTcpServerProvider.NetconfTcpServer.class);
+ if (cfgAttributes.isRestconfEnabled()) {
+ LOG.info("Starting RESTCONF");
+ final Server server = injector.getInstance(Server.class);
+ final RestConnector instance = injector.getInstance(RestConnector.class);
+
+ if (cfgAttributes.isRestconfHttpEnabled()) {
+ injector.getInstance(Key.get(ServerConnector.class, Names.named("restconf-http")));
+ }
+ if (cfgAttributes.isRestconfHttpsEnabled()) {
+ injector.getInstance(Key.get(ServerConnector.class, Names.named("restconf-https")));
+ }
+
+ try {
+ server.start();
+ } catch (Exception e) {
+ LOG.error("Unable to start Restconf", e);
+ throw new RuntimeException("Unable to start Restconf", e);
+ }
}
- injector.getInstance(NetconfSshServerProvider.NetconfSshServer.class);
- injector.getInstance(HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf.class);
+ if (cfgAttributes.isNetconfEnabled()) {
+ LOG.info("Starting NETCONF");
+ injector.getInstance(
+ Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-honeycomb")));
+ injector.getInstance(
+ Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-notification")));
+ injector.getInstance(
+ Key.get(NetconfOperationServiceFactory.class, Names.named("netconf-mapper-monitoring")));
+
+ if (cfgAttributes.isNetconfTcpEnabled()) {
+ LOG.info("Starting NETCONF TCP");
+ injector.getInstance(NetconfTcpServerProvider.NetconfTcpServer.class);
+ }
+
+ if (cfgAttributes.isNetconfSshEnabled()) {
+ LOG.info("Starting NETCONF SSH");
+ injector.getInstance(NetconfSshServerProvider.NetconfSshServer.class);
+ }
+ injector.getInstance(HoneycombNotification2NetconfProvider.HoneycombNotification2Netconf.class);
+ }
LOG.info("Honeycomb started successfully!");