b94b268fc47bc95ef2980cae50974da7e036e9a9
[ovsdb.git] / openstack / net-virt-providers / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / providers / NetvirtProvidersProvider.java
1 package org.opendaylight.ovsdb.openstack.netvirt.providers;
2
3 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
4 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
5 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
6 import org.osgi.framework.BundleContext;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9
10 /**
11  * @author Sam Hague (shague@redhat.com)
12  */
13 public class NetvirtProvidersProvider implements BindingAwareProvider, AutoCloseable {
14     private static final Logger LOG = LoggerFactory.getLogger(NetvirtProvidersProvider.class);
15     private BundleContext bundleContext = null;
16     private static DataBroker dataBroker = null;
17     private ConfigActivator activator;
18
19     public NetvirtProvidersProvider(BundleContext bundleContext) {
20         LOG.info("NetvirtProvidersProvider: bundleContext: {}", bundleContext);
21         this.bundleContext = bundleContext;
22     }
23
24     public static DataBroker getDataBroker() {
25         return dataBroker;
26     }
27
28     @Override
29     public void close() throws Exception {
30         activator.stop(bundleContext);
31     }
32
33     @Override
34     public void onSessionInitiated(ProviderContext providerContext) {
35         dataBroker = providerContext.getSALService(DataBroker.class);
36         LOG.info("NetvirtProvidersProvider: onSessionInitiated dataBroker: {}", dataBroker);
37         this.activator = new ConfigActivator(providerContext);
38         try {
39             activator.start(bundleContext);
40         } catch (Exception e) {
41             LOG.warn("Failed to start Netvirt: ", e);
42         }
43     }
44 }