OVSDB-458 DiagStatus support for OVSDB
[ovsdb.git] / southbound / southbound-impl / src / main / java / org / opendaylight / ovsdb / southbound / OvsdbDiagStatusProvider.java
1 /*
2  * Copyright (c) 2018 Red Hat, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.ovsdb.southbound;
9
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;
17
18 @OsgiServiceProvider(classes = ServiceStatusProvider.class)
19 public class OvsdbDiagStatusProvider implements ServiceStatusProvider {
20
21     private static final Logger LOG = LoggerFactory.getLogger(OvsdbDiagStatusProvider.class);
22     private static final String OVSDB_SERVICE_NAME = "OVSDB";
23
24     private final DiagStatusService diagStatusService;
25     private volatile ServiceDescriptor serviceDescriptor;
26
27     public OvsdbDiagStatusProvider(final DiagStatusService diagStatusService) {
28         this.diagStatusService = diagStatusService;
29         diagStatusService.register(OVSDB_SERVICE_NAME);
30     }
31
32
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);
37     }
38
39     @Override
40     public ServiceDescriptor getServiceDescriptor() {
41         // TODO Check 6640 port status to report dynamic status
42         return serviceDescriptor;
43     }
44 }