package org.opendaylight.netvirt.openstack.netvirt;
import com.google.common.base.Optional;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipState;
-import org.opendaylight.netvirt.openstack.netvirt.api.Constants;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
+import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipState;
+import org.opendaylight.netvirt.openstack.netvirt.api.Constants;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Sam Hague (shague@redhat.com)
*/
-public class NetvirtProvider implements BindingAwareProvider, AutoCloseable {
+public class NetvirtProvider implements AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(NetvirtProvider.class);
- private BundleContext bundleContext = null;
- private static DataBroker dataBroker = null;
+ private final BundleContext bundleContext;
+ private final DataBroker dataBroker;
private ConfigActivator activator;
private static EntityOwnershipService entityOwnershipService;
private static final Entity ownerInstanceEntity = new Entity(
Constants.NETVIRT_OWNER_ENTITY_TYPE, Constants.NETVIRT_OWNER_ENTITY_TYPE);
- private boolean conntrackEnabled = false;
+ private boolean conntrackEnabled;
+ private boolean intBridgeGenMac;
- public NetvirtProvider(BundleContext bundleContext, EntityOwnershipService eos) {
- LOG.info("NetvirtProvider: bundleContext: {}", bundleContext);
- this.bundleContext = bundleContext;
- entityOwnershipService = eos;
+ public NetvirtProvider(final DataBroker dataBroker,
+ final EntityOwnershipService eos,
+ final boolean conntrackEnabled,
+ final boolean intBridgeGenMac) {
+ LOG.info("NetvirtProvider started");
+ this.dataBroker = dataBroker;
+ NetvirtProvider.entityOwnershipService = eos;
+ this.conntrackEnabled = conntrackEnabled;
+ this.intBridgeGenMac = intBridgeGenMac;
+ this.bundleContext = FrameworkUtil.getBundle(NetvirtProvider.class).getBundleContext();
}
public static boolean isMasterProviderInstance() {
@Override
public void close() throws Exception {
LOG.info("NetvirtProvider closed");
- activator.stop(bundleContext);
+ if (activator != null) {
+ activator.stop(bundleContext);
+ }
}
- @Override
- public void onSessionInitiated(ProviderContext providerContext) {
- dataBroker = providerContext.getSALService(DataBroker.class);
+ public void start() {
LOG.info("NetvirtProvider: onSessionInitiated dataBroker: {}", dataBroker);
LOG.info("NetvirtProvider: onSessionInitiated isConntrackEnabled: {}", this.conntrackEnabled);
- this.activator = new ConfigActivator(providerContext);
+ this.activator = new ConfigActivator(dataBroker);
activator.setConntrackEnabled(this.conntrackEnabled);
+ activator.setIntBridgeGenMac(this.intBridgeGenMac);
try {
activator.start(bundleContext);
} catch (Exception e) {
public void setConntrackEnabled(boolean conntackEnabled) {
this.conntrackEnabled = conntackEnabled;
}
+
+ public boolean getIntBridgeGenMac() {
+ return intBridgeGenMac;
+ }
+
+ public void setIntBridgeGenMac(boolean intBridgeGenMac) {
+ this.intBridgeGenMac = intBridgeGenMac;
+ }
}