diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2016-09-06 12:03:32 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2016-09-08 07:47:06 +0200 |
commit | 7034e37e2b2e7f9776ffccb4809bfb18b709e423 (patch) | |
tree | ebcc14606685f85589144fb80b9a10409c1427c7 /vpp-common/minimal-distribution/src/main | |
parent | 58f2b6054ab31fb9dc852445e521a968c3d9ac6a (diff) |
HONEYCOMB-78: enable HC restart
Includes:
- restart script for honeycomb
- HONEYCOMBC-78 fix: jVPPRegistry.close() is not invoked in case of
VPP restart. That prevents subsequent attempts to establish
connection from failing (we cannot invoke vl_client_disconnect_from_vlib
before connect_to_vpe on fresh vpp instance).
Change-Id: Icf4d6a6a40605ed34d307a0f1405b8804ba5df53
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'vpp-common/minimal-distribution/src/main')
2 files changed, 9 insertions, 0 deletions
diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.java b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.java index 8605fa0cc..33756f273 100644 --- a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.java +++ b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.java @@ -18,6 +18,7 @@ package io.fd.honeycomb.vpp.distro; import com.google.inject.Inject; import io.fd.honeycomb.infra.distro.ProviderTrait; +import io.fd.honeycomb.translate.v3po.util.VppStatusListener; import java.io.IOException; import org.openvpp.jvpp.JVppRegistry; import org.openvpp.jvpp.JVppRegistryImpl; @@ -34,6 +35,8 @@ public final class JVppRegistryProvider extends ProviderTrait<JVppRegistry> { @Inject private VppConfigAttributes config; + @Inject + private VppStatusListener vppStatus; @Override protected JVppRegistryImpl create() { @@ -47,6 +50,10 @@ public final class JVppRegistryProvider extends ProviderTrait<JVppRegistry> { @Override public void run() { LOG.info("Disconnecting from VPP"); + if (vppStatus.isDown()) { + LOG.info("VPP is down. JVppRegistry cleanup is not needed. Exiting"); + return; + } try { registry.close(); LOG.info("Successfully disconnected from VPP as {}", config.jvppConnectionName); diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.java b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.java index 87352356b..93ec559b5 100644 --- a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.java +++ b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.java @@ -20,6 +20,7 @@ import com.google.inject.AbstractModule; import com.google.inject.Singleton; import com.google.inject.multibindings.Multibinder; import io.fd.honeycomb.translate.read.ReaderFactory; +import io.fd.honeycomb.translate.v3po.util.VppStatusListener; import net.jmob.guice.conf.core.ConfigurationModule; import org.openvpp.jvpp.JVppRegistry; import org.openvpp.jvpp.core.future.FutureJVppCore; @@ -31,6 +32,7 @@ public final class VppCommonModule extends AbstractModule { // Inject non-dependency configuration requestInjection(VppConfigAttributes.class); + bind(VppStatusListener.class).toInstance(new VppStatusListener()); bind(JVppRegistry.class).toProvider(JVppRegistryProvider.class).in(Singleton.class); bind(FutureJVppCore.class).toProvider(JVppCoreProvider.class).in(Singleton.class); |