package org.opendaylight.nemo.renderer.openflow;\r
\r
import com.google.common.base.Optional;\r
-import com.google.common.util.concurrent.FutureCallback;\r
-import com.google.common.util.concurrent.Futures;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.concurrent.Executors;\r
-import java.util.concurrent.ScheduledExecutorService;\r
-import com.google.common.util.concurrent.CheckedFuture;\r
-\r
import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;\r
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;\r
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\r
-\r
+import org.opendaylight.nemo.renderer.openflow.physicalnetwork.PhyConfigLoader;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNetwork;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.PhysicalNodes;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.nodes.PhysicalNode;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMappingKey;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.vn.pn.mapping.results.UserVnPnMapping;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNetworkId;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNetworkId;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
import org.opendaylight.yangtools.concepts.ListenerRegistration;\r
import org.opendaylight.yangtools.yang.binding.DataObject;\r
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
-\r
-\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
\r
+import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
\r
private static final Logger LOG = LoggerFactory.getLogger(FlowTableManager.class);\r
\r
private final DataBroker dataProvider;\r
+ private final PacketProcessingService packetProcessingService;\r
\r
private ListenerRegistration<DataChangeListener> userVnPnMappingChangeListenerReg;\r
\r
private FlowUtils flowUtils = null;\r
\r
- public FlowTableManager(DataBroker dataProvider, ResourceManager resourceManager){\r
+ public FlowTableManager(DataBroker dataProvider,\r
+ PacketProcessingService packetProcessingService,\r
+ PhyConfigLoader phyConfigLoader) {\r
+ super();\r
\r
this.dataProvider = dataProvider;\r
- LOG.info("Initialized FlowTableManager.");\r
- flowUtils = new FlowUtils(dataProvider, resourceManager);\r
- //register listener\r
+ this.packetProcessingService = packetProcessingService;\r
+\r
+ LOG.debug("Initialized FlowTableManager.");\r
+\r
+ flowUtils = new FlowUtils(dataProvider, packetProcessingService, phyConfigLoader);\r
+\r
+ // Register listener;\r
registerUserVnPnMappingListener();\r
}\r
\r
+ protected FlowUtils getFlowUtils() {\r
+ return flowUtils;\r
+ }\r
+\r
private void registerUserVnPnMappingListener() {\r
\r
//build userVnPnMappingIid\r
e.printStackTrace();\r
}\r
if (result.isPresent()){\r
- LOG.info("getUser OK");\r
+ LOG.debug("getUser OK");\r
return (result.get());\r
\r
}else{\r
- LOG.info("getUser ERROR");\r
+ LOG.debug("getUser ERROR");\r
return null;\r
}\r
}\r
e.printStackTrace();\r
}\r
if (result.isPresent()) {\r
- LOG.info("getVirtualNetwork OK");\r
+ LOG.debug("getVirtualNetwork OK");\r
return (result.get());\r
\r
}else{\r
- LOG.info("getVirtualNetwork ERROR");\r
+ LOG.debug("getVirtualNetwork ERROR");\r
return null;\r
}\r
}\r
e.printStackTrace();\r
}\r
if (result.isPresent()) {\r
- LOG.info("getUserIntentVnMapping OK");\r
+ LOG.debug("getUserIntentVnMapping OK");\r
return (result.get());\r
\r
}else{\r
- LOG.info("getUserIntentVnMapping ERROR");\r
+ LOG.debug("getUserIntentVnMapping ERROR");\r
return null;\r
}\r
}\r
e.printStackTrace();\r
}\r
if (result.isPresent()) {\r
- LOG.info("getPhysicalNetwork OK");\r
+ LOG.debug("getPhysicalNetwork OK");\r
return (result.get());\r
\r
}else{\r
- LOG.info("getPhysicalNetwork ERROR");\r
+ LOG.debug("getPhysicalNetwork ERROR");\r
return null;\r
}\r
}\r
if ( null != createdData && !createdData.isEmpty() ) {\r
for ( DataObject dataObject : createdData.values() ) {\r
if ( dataObject instanceof UserVnPnMapping ) {\r
- LOG.info("Ready to update flow table.");\r
+ LOG.debug("Ready to update flow table.");\r
UserVnPnMapping userVnPnMapping = (UserVnPnMapping)dataObject;\r
UserId userId = userVnPnMapping.getUserId();\r
\r
flowUtils.init(physicalNodeList);\r
\r
flowUtils.updateFlowTable(user, virtualNetwork, userIntentVnMapping, userVnPnMapping, physicalNetwork);\r
- LOG.info("Already call flowUtils.updateFlowTable().");\r
+ LOG.debug("Already call flowUtils.updateFlowTable().");\r
}\r
}\r
}\r