- @Override
- public void onFailure(Throwable throwable) {
- _logger.error("TopologyLinkDataChangeHandler write transaction {} failed", readWriteTransaction.getIdentifier(), throwable.getCause());
+ private List<Link> getLinksFromTopology() {
+ InstanceIdentifier<Topology> topologyInstanceIdentifier = InstanceIdentifierUtils
+ .generateTopologyInstanceIdentifier(topologyId);
+ Topology topology = null;
+ ReadOnlyTransaction readOnlyTransaction = dataBroker.newReadOnlyTransaction();
+ try {
+ Optional<Topology> topologyOptional = readOnlyTransaction
+ .read(LogicalDatastoreType.OPERATIONAL, topologyInstanceIdentifier).get();
+ if (topologyOptional.isPresent()) {
+ topology = topologyOptional.get();
+ }
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Error reading topology {}", topologyInstanceIdentifier);
+ readOnlyTransaction.close();
+ throw new RuntimeException(
+ "Error reading from operational store, topology : " + topologyInstanceIdentifier, e);
+ }
+ readOnlyTransaction.close();
+ if (topology == null) {
+ return null;
+ }
+ List<Link> links = topology.getLink();
+ if (links == null || links.isEmpty()) {
+ return null;
+ }
+ List<Link> internalLinks = new ArrayList<>();
+ for (Link link : links) {
+ if (!link.getLinkId().getValue().contains("host")) {
+ internalLinks.add(link);
+ }
+ }
+ return internalLinks;