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=31810a95f02876e68a6ed7b51512eee8cac859d2;hb=9296eb6b896d9dfc00808cfbd593a4e8e54fb652;hp=fcd851b1be42c4039697386e6b8e710f6af1f056;hpb=31da05eeb07dd00356a47c73a8d282a92e02dd89;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 fcd851b1be..31810a95f0 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 @@ -9,16 +9,14 @@ package org.opendaylight.openflowplugin.applications.southboundcli.util; import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; import java.util.ArrayList; import java.util.Collections; import java.util.List; 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.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress; 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; @@ -26,23 +24,27 @@ 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.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ShellUtil { +public final class ShellUtil { private static final Logger LOG = LoggerFactory.getLogger(ShellUtil.class); public static final String NODE_PREFIX = "openflow:"; + 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 { - CheckedFuture, ReadFailedException> checkedFuture = - tx.read(LogicalDatastoreType.OPERATIONAL, path); - Optional result = checkedFuture.get(); + Optional result = tx.read(LogicalDatastoreType.OPERATIONAL, path).get(); if (result.isPresent()) { nodes = result.get().getNode(); } @@ -59,13 +61,11 @@ public class ShellUtil { name = node.getAugmentation(FlowCapableNode.class).getDescription(); } else { LOG.error("Error while converting OFNode: {} to FlowCapableNode", node.getId()); - return null; + return Collections.emptyList(); } OFNode ofNode = new OFNode(Long.parseLong(nodeId[1]), name); - if (ofNode != null) { - LOG.trace("Added OFNode: {} to the list", ofNode.getNodeId()); - nodeList.add(ofNode); - } + LOG.trace("Added OFNode: {} to the list", ofNode.getNodeId()); + nodeList.add(ofNode); } Collections.sort(nodeList); return nodeList; @@ -98,11 +98,9 @@ public class ShellUtil { ReadOnlyTransaction tx = broker.newReadOnlyTransaction(); InstanceIdentifier path = InstanceIdentifier.builder(Nodes.class) .child(Node.class, new NodeKey(new NodeId(NODE_PREFIX + nodeId))).build(); - Optional result; + try { - CheckedFuture, ReadFailedException> checkedFuture = - tx.read(LogicalDatastoreType.OPERATIONAL, path); - result = checkedFuture.get(); + Optional result = tx.read(LogicalDatastoreType.OPERATIONAL, path).get(); if (result.isPresent()) { Node node = result.get(); String name = null; @@ -123,7 +121,6 @@ public class ShellUtil { LOG.error("Error for OFNode:{} while reading nodeConnectors {}", node.getId()); return null; } else { - MacAddress hardwareAddress = flowCapableNodeConnector.getHardwareAddress(); String portName = flowCapableNodeConnector.getName(); portList.add(portName); } @@ -138,4 +135,21 @@ public class ShellUtil { } return ofNode; } -} \ No newline at end of file + + public static List getReconcileCount(final DataBroker dataBroker) { + ReadOnlyTransaction tx = dataBroker.newReadOnlyTransaction(); + InstanceIdentifier instanceIdentifier = InstanceIdentifier + .builder(ReconciliationCounter.class).build(); + List output = Collections.emptyList(); + try { + Optional result = + tx.read(LogicalDatastoreType.OPERATIONAL, instanceIdentifier).get(); + if (result.isPresent()) { + output = result.get().getReconcileCounter(); + } + } catch (ExecutionException | InterruptedException | NullPointerException e) { + LOG.error("Error reading reconciliation counter from datastore", e); + } + return output; + } +}