2 * Copyright (c) 2018 Red Hat, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.ovsdb.southbound;
10 import org.opendaylight.infrautils.diagstatus.DiagStatusService;
11 import org.opendaylight.infrautils.diagstatus.ServiceDescriptor;
12 import org.opendaylight.infrautils.diagstatus.ServiceState;
13 import org.opendaylight.infrautils.diagstatus.ServiceStatusProvider;
14 import org.ops4j.pax.cdi.api.OsgiServiceProvider;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
18 @OsgiServiceProvider(classes = ServiceStatusProvider.class)
19 public class OvsdbDiagStatusProvider implements ServiceStatusProvider {
21 private static final Logger LOG = LoggerFactory.getLogger(OvsdbDiagStatusProvider.class);
22 private static final String OVSDB_SERVICE_NAME = "OVSDB";
24 private final DiagStatusService diagStatusService;
25 private volatile ServiceDescriptor serviceDescriptor;
27 public OvsdbDiagStatusProvider(final DiagStatusService diagStatusService) {
28 this.diagStatusService = diagStatusService;
29 diagStatusService.register(OVSDB_SERVICE_NAME);
33 public void reportStatus(ServiceState serviceState, String description) {
34 LOG.debug("reporting status as {} for {}", serviceState, OVSDB_SERVICE_NAME);
35 serviceDescriptor = new ServiceDescriptor(OVSDB_SERVICE_NAME, serviceState, description);
36 diagStatusService.report(serviceDescriptor);
40 public ServiceDescriptor getServiceDescriptor() {
41 // TODO Check 6640 port status to report dynamic status
42 return serviceDescriptor;