private final static Logger LOG = LoggerFactory.getLogger(FlowCapableTopologyProvider.class);
private ListenerRegistration<NotificationListener> listenerRegistration;
private Thread thread;
- private TerminationPointChangeListenerImpl terminationChangeListener;
+ private TerminationPointChangeListenerImpl terminationPointChangeListener;
private NodeChangeListenerImpl nodeChangeListener;
static final String TOPOLOGY_ID = "flow:1";
final OperationProcessor processor = new OperationProcessor(dataBroker);
final FlowCapableTopologyExporter listener = new FlowCapableTopologyExporter(processor, path);
this.listenerRegistration = notificationService.registerNotificationListener(listener);
- this.terminationChangeListener = new TerminationPointChangeListenerImpl(dataBroker, processor);
+ this.terminationPointChangeListener = new TerminationPointChangeListenerImpl(dataBroker, processor);
nodeChangeListener = new NodeChangeListenerImpl(dataBroker, processor);
final ReadWriteTransaction tx = dataBroker.newReadWriteTransaction();
}
listenerRegistration = null;
}
- unregisterListener(terminationChangeListener);
+ unregisterListener(terminationPointChangeListener);
unregisterListener(nodeChangeListener);
if (thread != null) {
thread.interrupt();
*/
package org.opendaylight.openflowplugin.applications.topology.manager;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
-
import java.util.Set;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.slf4j.Logger;
* @param removedPaths
*/
private void processRemovedNode(Set<InstanceIdentifier<?>> removedNodes) {
- for ( InstanceIdentifier<?> removedNode : removedNodes) {
- final InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node> iiToTopologyRemovedNode
- = provideIIToTopologyNode(provideTopologyNodeId(removedNode));
+ for (InstanceIdentifier<?> removedNode : removedNodes) {
+ final InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node> iiToTopologyRemovedNode = provideIIToTopologyNode(provideTopologyNodeId(removedNode));
if (iiToTopologyRemovedNode != null) {
operationProcessor.enqueueOperation(new TopologyOperation() {
*/
private void processAddedNode(Map<InstanceIdentifier<?>, DataObject> addedDatas) {
for (Entry<InstanceIdentifier<?>, DataObject> addedData : addedDatas.entrySet()) {
- createData(addedData.getKey(), addedData.getValue());
+ createData(addedData.getKey());
}
}
- protected void createData(InstanceIdentifier<?> iiToNodeInInventory, final DataObject data) {
- final NodeBuilder topologyNodeBuilder = new NodeBuilder();
-
+ protected void createData(InstanceIdentifier<?> iiToNodeInInventory) {
final NodeId nodeIdInTopology = provideTopologyNodeId(iiToNodeInInventory);
if (nodeIdInTopology != null) {
- topologyNodeBuilder.setNodeId(nodeIdInTopology);
final InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node> iiToTopologyNode = provideIIToTopologyNode(nodeIdInTopology);
- sendToTransactionChain(topologyNodeBuilder.build(), iiToTopologyNode);
+ sendToTransactionChain(prepareTopologyNode(nodeIdInTopology, iiToNodeInInventory), iiToTopologyNode);
} else {
LOG.debug("Inventory node key is null. Data can't be written to topology");
}
}
+ /**
+ * @param nodeIdInTopology
+ * @param iiToNodeInInventory
+ * @return
+ */
+ private org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node prepareTopologyNode(NodeId nodeIdInTopology, InstanceIdentifier<?> iiToNodeInInventory) {
+ final InventoryNode inventoryNode = new InventoryNodeBuilder()
+ .setInventoryNodeRef(new NodeRef(iiToNodeInInventory.firstIdentifierOf(Node.class)))
+ .build();
+
+ final NodeBuilder topologyNodeBuilder = new NodeBuilder();
+ topologyNodeBuilder.setNodeId(nodeIdInTopology);
+ topologyNodeBuilder.addAugmentation(InventoryNode.class, inventoryNode);
+
+ return topologyNodeBuilder.build();
+ }
}
\ No newline at end of file
*/
package org.opendaylight.openflowplugin.applications.topology.manager;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnector;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnectorBuilder;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
private final static Logger LOG = LoggerFactory.getLogger(TerminationPointChangeListenerImpl.class);
public TerminationPointChangeListenerImpl(final DataBroker dataBroker, final OperationProcessor operationProcessor) {
- super(operationProcessor, dataBroker,
- InstanceIdentifier.builder(Nodes.class)
- .child(Node.class)
- .child(NodeConnector.class)
- .augmentation(FlowCapableNodeConnector.class)
- .build());
+ super(operationProcessor, dataBroker, InstanceIdentifier.builder(Nodes.class).child(Node.class)
+ .child(NodeConnector.class).augmentation(FlowCapableNodeConnector.class).build());
this.operationProcessor = operationProcessor;
}
*/
private void processRemovedTerminationPoints(Set<InstanceIdentifier<?>> removedNodes) {
for (final InstanceIdentifier<?> removedNode : removedNodes) {
- InstanceIdentifier<TerminationPoint> iiToTopologyTerminationPoint = provideIIToTopologyTerminationPoint(provideTopologyTerminationPointId(removedNode), removedNode);
+ InstanceIdentifier<TerminationPoint> iiToTopologyTerminationPoint = provideIIToTopologyTerminationPoint(
+ provideTopologyTerminationPointId(removedNode), removedNode);
if (iiToTopologyTerminationPoint != null) {
operationProcessor.enqueueOperation(new TopologyOperation() {
}
protected void createData(InstanceIdentifier<?> iiToNodeInInventory, final DataObject data) {
- final TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder();
-
TpId terminationPointIdInTopology = provideTopologyTerminationPointId(iiToNodeInInventory);
if (terminationPointIdInTopology != null) {
- terminationPointBuilder.setTpId(terminationPointIdInTopology);
- InstanceIdentifier<TerminationPoint> iiToTopologyTerminationPoint = provideIIToTopologyTerminationPoint(terminationPointIdInTopology, iiToNodeInInventory);
- sendToTransactionChain(terminationPointBuilder.build(), iiToTopologyTerminationPoint);
+ InstanceIdentifier<TerminationPoint> iiToTopologyTerminationPoint = provideIIToTopologyTerminationPoint(
+ terminationPointIdInTopology, iiToNodeInInventory);
+ sendToTransactionChain(prepareTopologyTerminationPoint(terminationPointIdInTopology, iiToNodeInInventory),
+ iiToTopologyTerminationPoint);
} else {
LOG.debug("Inventory node connector key is null. Data can't be written to topology termination point");
}
}
+ private TerminationPoint prepareTopologyTerminationPoint(final TpId terminationPointIdInTopology,
+ final InstanceIdentifier<?> iiToNodeInInventory) {
+ final InventoryNodeConnector inventoryNodeConnector = new InventoryNodeConnectorBuilder()
+ .setInventoryNodeConnectorRef(
+ new NodeConnectorRef(iiToNodeInInventory.firstIdentifierOf(NodeConnector.class))).build();
+
+ final TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder();
+ terminationPointBuilder.setTpId(terminationPointIdInTopology);
+ terminationPointBuilder.addAugmentation(InventoryNodeConnector.class, inventoryNodeConnector);
+ return terminationPointBuilder.build();
+ }
+
/**
* @param terminationPointIdInTopology
* @return
*/
- private InstanceIdentifier<TerminationPoint> provideIIToTopologyTerminationPoint(TpId terminationPointIdInTopology, InstanceIdentifier<?> iiToNodeInInventory) {
+ private InstanceIdentifier<TerminationPoint> provideIIToTopologyTerminationPoint(TpId terminationPointIdInTopology,
+ InstanceIdentifier<?> iiToNodeInInventory) {
NodeId nodeIdInTopology = provideTopologyNodeId(iiToNodeInInventory);
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node> iiToTopologyNode = provideIIToTopologyNode(nodeIdInTopology);
- return iiToTopologyNode.builder().child(TerminationPoint.class, new TerminationPointKey(terminationPointIdInTopology)).build();
+ return iiToTopologyNode.builder()
+ .child(TerminationPoint.class, new TerminationPointKey(terminationPointIdInTopology)).build();
}
/**
* @return
*/
private TpId provideTopologyTerminationPointId(InstanceIdentifier<?> iiToNodeInInventory) {
- NodeConnectorKey inventoryNodeConnectorKey = iiToNodeInInventory.firstKeyOf(NodeConnector.class, NodeConnectorKey.class);
+ NodeConnectorKey inventoryNodeConnectorKey = iiToNodeInInventory.firstKeyOf(NodeConnector.class,
+ NodeConnectorKey.class);
if (inventoryNodeConnectorKey != null) {
return new TpId(inventoryNodeConnectorKey.getId().getValue());
}