X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Ftopology-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmd%2Fcontroller%2Ftopology%2Fmanager%2FFlowCapableTopologyExporter.java;h=bba4b4c2b64261340a12f76e0107917003491d31;hp=d8602c2ddded47d2708bd89bff5b6cd7a8d42bf7;hb=992a433ff8fd0ce7335bf5ea9e59a75602a95a19;hpb=3191afc71f22a3d0d17d7bad1befdcd011775703 diff --git a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java index d8602c2ddd..bba4b4c2b6 100644 --- a/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java +++ b/opendaylight/md-sal/topology-manager/src/main/java/org/opendaylight/md/controller/topology/manager/FlowCapableTopologyExporter.java @@ -68,20 +68,11 @@ class FlowCapableTopologyExporter implements FlowTopologyDiscoveryListener, Open final NodeId nodeId = toTopologyNodeId(getNodeKey(notification.getNodeRef()).getId()); final InstanceIdentifier nodeInstance = toNodeIdentifier(notification.getNodeRef()); - processor.enqueueOperation(new TopologyOperation() { @Override public void applyOperation(ReadWriteTransaction transaction) { - Optional nodeOptional = Optional.absent(); - try { - nodeOptional = transaction.read(LogicalDatastoreType.OPERATIONAL, nodeInstance).checkedGet(); - } catch (ReadFailedException e) { - LOG.error("Error occured when trying to read Node ", e); - } - if (nodeOptional.isPresent()) { removeAffectedLinks(nodeId, transaction); transaction.delete(LogicalDatastoreType.OPERATIONAL, nodeInstance); - } } @Override @@ -117,19 +108,21 @@ class FlowCapableTopologyExporter implements FlowTopologyDiscoveryListener, Open final InstanceIdentifier tpInstance = toTerminationPointIdentifier( notification.getNodeConnectorRef()); + final InstanceIdentifier node = tpInstance.firstIdentifierOf(Node.class); + final TpId tpId = toTerminationPointId(getNodeConnectorKey( notification.getNodeConnectorRef()).getId()); processor.enqueueOperation(new TopologyOperation() { @Override public void applyOperation(ReadWriteTransaction transaction) { - Optional terminationPointOptional = Optional.absent(); + Optional nodeOptional = Optional.absent(); try { - terminationPointOptional = transaction.read(LogicalDatastoreType.OPERATIONAL, tpInstance).checkedGet(); + nodeOptional = transaction.read(LogicalDatastoreType.OPERATIONAL, node).checkedGet(); } catch (ReadFailedException e) { LOG.error("Error occured when trying to read NodeConnector ", e); } - if (terminationPointOptional.isPresent()) { + if (nodeOptional.isPresent()) { removeAffectedLinks(tpId, transaction); transaction.delete(LogicalDatastoreType.OPERATIONAL, tpInstance); } @@ -176,7 +169,7 @@ class FlowCapableTopologyExporter implements FlowTopologyDiscoveryListener, Open public void applyOperation(final ReadWriteTransaction transaction) { final Link link = toTopologyLink(notification); final InstanceIdentifier path = linkPath(link); - transaction.put(LogicalDatastoreType.OPERATIONAL, path, link, true); + transaction.merge(LogicalDatastoreType.OPERATIONAL, path, link, true); } @Override @@ -216,7 +209,6 @@ class FlowCapableTopologyExporter implements FlowTopologyDiscoveryListener, Open }); } - @Override public void onLinkUtilizationNormal(final LinkUtilizationNormal notification) { // NOOP