X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=applications%2Fsouthbound-cli%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fapplications%2Fsouthboundcli%2Futil%2FShellUtil.java;h=66112519edbaf0474fe2cf929cb75dc52e90b856;hb=refs%2Fchanges%2F77%2F100077%2F17;hp=31810a95f02876e68a6ed7b51512eee8cac859d2;hpb=9296eb6b896d9dfc00808cfbd593a4e8e54fb652;p=openflowplugin.git diff --git a/applications/southbound-cli/src/main/java/org/opendaylight/openflowplugin/applications/southboundcli/util/ShellUtil.java b/applications/southbound-cli/src/main/java/org/opendaylight/openflowplugin/applications/southboundcli/util/ShellUtil.java index 31810a95f0..66112519ed 100644 --- a/applications/southbound-cli/src/main/java/org/opendaylight/openflowplugin/applications/southboundcli/util/ShellUtil.java +++ b/applications/southbound-cli/src/main/java/org/opendaylight/openflowplugin/applications/southboundcli/util/ShellUtil.java @@ -8,15 +8,17 @@ package org.opendaylight.openflowplugin.applications.southboundcli.util; -import com.google.common.base.Optional; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.concurrent.ExecutionException; -import javax.annotation.Nonnull; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.openflowplugin.applications.southboundcli.NodeListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; @@ -24,8 +26,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.admin.reconciliation.service.rev180227.ReconciliationCounter; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.admin.reconciliation.service.rev180227.reconciliation.counter.ReconcileCounter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.reconciliation.service.rev180227.ReconciliationCounter; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.reconciliation.service.rev180227.reconciliation.counter.ReconcileCounter; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,39 +40,15 @@ public final class ShellUtil { private ShellUtil() { } - @Nonnull - public static List getAllNodes(final DataBroker broker) { - List nodes = null; - ReadOnlyTransaction tx = broker.newReadOnlyTransaction(); - InstanceIdentifier path = InstanceIdentifier.builder(Nodes.class).build(); - try { - Optional result = tx.read(LogicalDatastoreType.OPERATIONAL, path).get(); - if (result.isPresent()) { - nodes = result.get().getNode(); - } - } catch (ExecutionException | InterruptedException | NullPointerException e) { - LOG.error("Error reading nodes from Inventory DS", e); - } - if (nodes != null) { - List nodeList = new ArrayList<>(); - for (Node node : nodes) { - String[] nodeId = node.getId().getValue().split(":"); - String name = null; - FlowCapableNode flowCapableNode = node.getAugmentation(FlowCapableNode.class); - if (flowCapableNode != null) { - name = node.getAugmentation(FlowCapableNode.class).getDescription(); - } else { - LOG.error("Error while converting OFNode: {} to FlowCapableNode", node.getId()); - return Collections.emptyList(); - } - OFNode ofNode = new OFNode(Long.parseLong(nodeId[1]), name); - LOG.trace("Added OFNode: {} to the list", ofNode.getNodeId()); - nodeList.add(ofNode); - } - Collections.sort(nodeList); - return nodeList; + public static List getAllNodes(final NodeListener nodeListener) { + List dpnList = new ArrayList<>(); + for (Map.Entry entry : nodeListener.getDpnIdToNameCache().entrySet()) { + OFNode dpn = new OFNode(entry.getKey(), entry.getValue()); + dpnList.add(dpn); + LOG.trace("Added OFNode: {} to the list", dpn.getNodeId()); } - return Collections.emptyList(); + Collections.sort(dpnList); + return dpnList; } public static OFNode getNode(final long nodeId, final DataBroker broker) { @@ -95,30 +73,28 @@ public final class ShellUtil { public static OFNode getNodeInfo(final Long nodeId, final DataBroker broker) { OFNode ofNode = null; - ReadOnlyTransaction tx = broker.newReadOnlyTransaction(); InstanceIdentifier path = InstanceIdentifier.builder(Nodes.class) .child(Node.class, new NodeKey(new NodeId(NODE_PREFIX + nodeId))).build(); - try { + try (ReadTransaction tx = broker.newReadOnlyTransaction()) { Optional result = tx.read(LogicalDatastoreType.OPERATIONAL, path).get(); if (result.isPresent()) { Node node = result.get(); - String name = null; - List nodeConnectors = null; + String name; + Collection nodeConnectors = node.nonnullNodeConnector().values(); List portList = new ArrayList<>(); - FlowCapableNode flowCapableNode = node.getAugmentation(FlowCapableNode.class); + FlowCapableNode flowCapableNode = node.augmentation(FlowCapableNode.class); if (flowCapableNode != null) { - name = node.getAugmentation(FlowCapableNode.class).getDescription(); + name = node.augmentation(FlowCapableNode.class).getDescription(); } else { - LOG.error("Error while converting OFNode:{} to FlowCapableNode: {}", node.getId()); + LOG.error("Error while converting OFNode:{} to FlowCapableNode", node.getId()); return null; } - nodeConnectors = node.getNodeConnector(); for (NodeConnector nodeConnector : nodeConnectors) { FlowCapableNodeConnector flowCapableNodeConnector = - nodeConnector.getAugmentation(FlowCapableNodeConnector.class); + nodeConnector.augmentation(FlowCapableNodeConnector.class); if (flowCapableNodeConnector == null) { - LOG.error("Error for OFNode:{} while reading nodeConnectors {}", node.getId()); + LOG.error("Error for OFNode:{} while reading nodeConnectors", node.getId()); return null; } else { String portName = flowCapableNodeConnector.getName(); @@ -127,27 +103,26 @@ public final class ShellUtil { } ofNode = new OFNode(nodeId, name, portList); } else { - LOG.error("OFNode with nodeId {} not present Inventory DS: {}", nodeId); + LOG.error("OFNode with nodeId {} not present Inventory DS", nodeId); return null; } } catch (ExecutionException | InterruptedException e) { - LOG.error("Error reading node {} from Inventory DS: {}", nodeId, e); + LOG.error("Error reading node {} from Inventory DS", nodeId, e); } return ofNode; } - public static List getReconcileCount(final DataBroker dataBroker) { - ReadOnlyTransaction tx = dataBroker.newReadOnlyTransaction(); + public static Collection getReconcileCount(final DataBroker dataBroker) { InstanceIdentifier instanceIdentifier = InstanceIdentifier .builder(ReconciliationCounter.class).build(); - List output = Collections.emptyList(); - try { + Collection output = Collections.emptyList(); + try (ReadTransaction tx = dataBroker.newReadOnlyTransaction()) { Optional result = tx.read(LogicalDatastoreType.OPERATIONAL, instanceIdentifier).get(); if (result.isPresent()) { - output = result.get().getReconcileCounter(); + output = result.get().nonnullReconcileCounter().values(); } - } catch (ExecutionException | InterruptedException | NullPointerException e) { + } catch (ExecutionException | InterruptedException e) { LOG.error("Error reading reconciliation counter from datastore", e); } return output;