/*
- * Copyright (C) 2013 Red Hat, Inc.
+ * Copyright (c) 2013, 2015 Red Hat, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Authors : Madhu Venugopal, Brent Salisbury, Hsin-Yi Shen
*/
+
package org.opendaylight.ovsdb.openstack.netvirt;
+import java.net.HttpURLConnection;
+import java.util.List;
+
import org.opendaylight.neutron.spi.INeutronNetworkAware;
import org.opendaylight.neutron.spi.INeutronNetworkCRUD;
import org.opendaylight.neutron.spi.NeutronNetwork;
import org.opendaylight.ovsdb.openstack.netvirt.api.BridgeConfigurationManager;
import org.opendaylight.ovsdb.openstack.netvirt.api.EventDispatcher;
import org.opendaylight.ovsdb.openstack.netvirt.api.NodeCacheManager;
+import org.opendaylight.ovsdb.openstack.netvirt.api.Southbound;
import org.opendaylight.ovsdb.openstack.netvirt.api.TenantNetworkManager;
import org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter;
import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
-import org.osgi.framework.BundleContext;
+
import org.osgi.framework.ServiceReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.net.HttpURLConnection;
-import java.util.List;
-
/**
* Handle requests for Neutron Network.
*/
public class NetworkHandler extends AbstractHandler implements INeutronNetworkAware, ConfigInterface {
- private static final Logger logger = LoggerFactory.getLogger(NetworkHandler.class);
+ private static final Logger LOG = LoggerFactory.getLogger(NetworkHandler.class);
public static final String NETWORK_TYPE_VXLAN = "vxlan";
public static final String NETWORK_TYPE_GRE = "gre";
public static final String NETWORK_TYPE_VLAN = "vlan";
private volatile NodeCacheManager nodeCacheManager;
private volatile INeutronNetworkCRUD neutronNetworkCache;
private volatile NeutronL3Adapter neutronL3Adapter;
- private volatile EventDispatcher eventDispatcher;
+ private volatile Southbound southbound;
/**
* Invoked when a network creation is requested
@Override
public int canCreateNetwork(NeutronNetwork network) {
if (network.isShared()) {
- logger.error(" Network shared attribute not supported ");
+ LOG.error(" Network shared attribute not supported ");
return HttpURLConnection.HTTP_NOT_ACCEPTABLE;
}
public int canUpdateNetwork(NeutronNetwork delta,
NeutronNetwork original) {
if (delta.isShared()) {
- logger.error(" Network shared attribute not supported ");
+ LOG.error(" Network shared attribute not supported ");
return HttpURLConnection.HTTP_NOT_ACCEPTABLE;
}
if (neutronNetworkCache != null) {
networks = neutronNetworkCache.getAllNetworks();
if (networks.isEmpty()) {
- logger.trace("neutronNetworkDeleted: last tenant network, delete tunnel ports...");
+ LOG.trace("neutronNetworkDeleted: last tenant network, delete tunnel ports...");
List<Node> nodes = nodeCacheManager.getNodes();
for (Node node : nodes) {
List<String> phyIfName = bridgeConfigurationManager.getAllPhysicalInterfaceNames(node);
try {
- List<OvsdbTerminationPointAugmentation> ports = MdsalUtils.getTerminationPointsOfBridge(node);
+ List<OvsdbTerminationPointAugmentation> ports = southbound.getTerminationPointsOfBridge(node);
for (OvsdbTerminationPointAugmentation port : ports) {
- if (MdsalUtils.isTunnel(port)) {
- logger.trace("Delete tunnel interface {}", port.getName());
- MdsalUtils.deleteTerminationPoint(node, port.getName());
+ if (southbound.isTunnel(port)) {
+ LOG.trace("Delete tunnel interface {}", port.getName());
+ southbound.deleteTerminationPoint(node, port.getName());
} else if (!phyIfName.isEmpty() && phyIfName.contains(port.getName())) {
- logger.trace("Delete physical interface {}", port.getName());
- MdsalUtils.deleteTerminationPoint(node, port.getName());
+ LOG.trace("Delete physical interface {}", port.getName());
+ southbound.deleteTerminationPoint(node, port.getName());
}
}
} catch (Exception e) {
- logger.error("Exception during handlingNeutron network delete", e);
+ LOG.error("Exception during handlingNeutron network delete", e);
}
}
}
@Override
public void processEvent(AbstractEvent abstractEvent) {
if (!(abstractEvent instanceof NorthboundEvent)) {
- logger.error("Unable to process abstract event " + abstractEvent);
+ LOG.error("Unable to process abstract event {}", abstractEvent);
return;
}
NorthboundEvent ev = (NorthboundEvent) abstractEvent;
doNeutronNetworkDeleted(ev.getNeutronNetwork());
break;
default:
- logger.warn("Unable to process event action " + ev.getAction());
+ LOG.warn("Unable to process event action {}", ev.getAction());
break;
}
}
@Override
- public void setDependencies(BundleContext bundleContext, ServiceReference serviceReference) {
+ public void setDependencies(ServiceReference serviceReference) {
tenantNetworkManager =
(TenantNetworkManager) ServiceHelper.getGlobalInstance(TenantNetworkManager.class, this);
bridgeConfigurationManager =
(NodeCacheManager) ServiceHelper.getGlobalInstance(NodeCacheManager.class, this);
neutronL3Adapter =
(NeutronL3Adapter) ServiceHelper.getGlobalInstance(NeutronL3Adapter.class, this);
+ southbound =
+ (Southbound) ServiceHelper.getGlobalInstance(Southbound.class, this);
eventDispatcher =
(EventDispatcher) ServiceHelper.getGlobalInstance(EventDispatcher.class, this);
- eventDispatcher.eventHandlerAdded(
- bundleContext.getServiceReference(INeutronNetworkAware.class.getName()), this);
- super.setDispatcher(eventDispatcher);
+ eventDispatcher.eventHandlerAdded(serviceReference, this);
}
@Override