add "showSvcStatus" CLI command (#29)
authorMichael Vorburger <mike@vorburger.ch>
Tue, 9 Oct 2018 20:55:48 +0000 (22:55 +0200)
committerMichael Vorburger <mike@vorburger.ch>
Wed, 1 Jul 2020 23:37:24 +0000 (01:37 +0200)
requires https://git.opendaylight.org/gerrit/#/c/76810/

which requires https://github.com/vorburger/opendaylight-simple/pull/19

TODO This is only a first cheap, and while it will provide "ready"
status, it does not yet register real ServiceStatusProvider
(but we don't have any real ones anyway).

Signed-off-by: Michael Vorburger <mike@vorburger.ch>
src/main/java/org/opendaylight/infrautils/simple/DiagStatusWiring.java

index 80706d1e3828da3c05298f7140959b72c6209f66..0d88920568cbe72692532c327d3e7a1c5feccb7b 100644 (file)
@@ -9,11 +9,18 @@ package org.opendaylight.infrautils.simple;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.TypeLiteral;
+import com.google.inject.multibindings.Multibinder;
 import java.util.Collections;
 import java.util.List;
+import org.apache.karaf.shell.api.action.Action;
+import org.opendaylight.infrautils.diagstatus.ClusterMemberInfo;
 import org.opendaylight.infrautils.diagstatus.DiagStatusService;
+import org.opendaylight.infrautils.diagstatus.DiagStatusServiceMBean;
 import org.opendaylight.infrautils.diagstatus.ServiceStatusProvider;
 import org.opendaylight.infrautils.diagstatus.internal.DiagStatusServiceImpl;
+import org.opendaylight.infrautils.diagstatus.internal.DiagStatusServiceMBeanImpl;
+import org.opendaylight.infrautils.diagstatus.shell.DiagStatusCommand;
+import org.opendaylight.infrautils.diagstatus.spi.NoClusterMemberInfo;
 import org.opendaylight.infrautils.diagstatus.web.WebInitializer;
 
 public class DiagStatusWiring extends AbstractModule {
@@ -28,5 +35,14 @@ public class DiagStatusWiring extends AbstractModule {
         bind(DiagStatusService.class).to(DiagStatusServiceImpl.class);
         bind(new TypeLiteral<List<ServiceStatusProvider>>() {}).toInstance(Collections.emptyList());
         bind(WebInitializer.class);
+        // TODO when using CDS: bind(ClusterMemberInfo.class).to(ClusterMemberInfoImpl.class);
+        bind(ClusterMemberInfo.class).to(NoClusterMemberInfo.class);
+        bind(DiagStatusServiceMBean.class).to(DiagStatusServiceMBeanImpl.class);
+        // TODO figure out how to use Guice multibindings to inject all real ServiceStatusProvider impls
+        bind(new TypeLiteral<List<ServiceStatusProvider>>() {}).toInstance(Collections.emptyList());
+
+        // Commands
+        Multibinder<Action> actionsBinder = Multibinder.newSetBinder(binder(), Action.class);
+        actionsBinder.addBinding().to(DiagStatusCommand.class);
     }
 }