Group and Meter Stats Testing 60/4260/2
authoretusgoy <goyaltushar7@gmail.com>
Wed, 15 Jan 2014 12:07:53 +0000 (17:37 +0530)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 16 Jan 2014 13:01:56 +0000 (13:01 +0000)
Signed-off-by: etusgoy <goyaltushar7@gmail.com>
test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginStatsTestCommandProvider.java

index bd076326501ecdb226a45a640fb0f8d587c419ee..7eaf33d89c137c59c35a66ebfa794385d3f4937d 100644 (file)
@@ -9,6 +9,8 @@ import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderCo
 import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
 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.flow.inventory.rev130819.meters.Meter;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.MeterKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
@@ -16,15 +18,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.AggregateFlowStatisticsData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.FlowStatisticsData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.FlowTableStatisticsData;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.QueueKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.NodeGroupStatistics;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.group.statistics.GroupStatistics;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey;
 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.node.NodeConnectorKey;
 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.meter.statistics.rev131111.NodeMeterStatistics;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.FlowCapableNodeConnectorStatisticsData;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.FlowCapableNodeConnectorQueueStatisticsData;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.osgi.framework.BundleContext;
 
@@ -157,48 +161,7 @@ public class OpenflowpluginStatsTestCommandProvider implements CommandProvider {
                            
        }
 
-    public void _queueStats(CommandInterpreter ci) {
-        boolean isFound = false;
-        List<Node> nodes = getNodes();
-        for (Iterator<Node> iterator = nodes.iterator(); iterator.hasNext();) {
-            NodeKey nodeKey = iterator.next().getKey();
-            InstanceIdentifier<Node> nodeRef = InstanceIdentifier.builder(Nodes.class).child(Node.class, nodeKey)
-                    .toInstance();
-            Node node = (Node) dataProviderService.readOperationalData(nodeRef);
-            List<NodeConnector> ports = node.getNodeConnector();
-            for (Iterator<NodeConnector> iterator2 = ports.iterator(); iterator2.hasNext();) {
-                NodeConnectorKey nodeConnectorKey = iterator2.next().getKey();
-                InstanceIdentifier<FlowCapableNodeConnector> connectorRef = InstanceIdentifier.builder(Nodes.class)
-                        .child(Node.class, nodeKey).child(NodeConnector.class, nodeConnectorKey)
-                        .augmentation(FlowCapableNodeConnector.class).toInstance();
-                FlowCapableNodeConnector nodeConnector = (FlowCapableNodeConnector) dataProviderService
-                        .readOperationalData(connectorRef);
-                // queue list is always empty, bug 307 is raised.
-                List<Queue> queueList = nodeConnector.getQueue();
-
-                for (Iterator<Queue> iterator3 = queueList.iterator(); iterator3.hasNext();) {
-                    QueueKey queueKey = iterator3.next().getKey();
-                    InstanceIdentifier<Queue> queueRef = InstanceIdentifier.builder(Nodes.class)
-                            .child(Node.class, nodeKey).child(NodeConnector.class, nodeConnectorKey)
-                            .augmentation(FlowCapableNodeConnector.class).child(Queue.class, queueKey).toInstance();
-                    Queue queue = (Queue) dataProviderService.readOperationalData(queueRef);
-                    FlowCapableNodeConnectorQueueStatisticsData data = queue
-                            .getAugmentation(FlowCapableNodeConnectorQueueStatisticsData.class);
-                    if (null != data) {
-                        isFound = true;
-                    }
-                }
-            }
-        }
-
-        if (isFound) {
-            ci.println("queueStats - Success");
-        } else {
-            ci.println("queueStats - Failed");
-            ci.println("System fetchs stats data in 50 seconds interval, so pls wait and try again.");
-        }
-
-    }
+   
 
     public void _tableStats(CommandInterpreter ci) {
         int tableCount = 0;
@@ -235,6 +198,75 @@ public class OpenflowpluginStatsTestCommandProvider implements CommandProvider {
                            
        }
 
+    public void _groupStats(CommandInterpreter ci) {
+        int groupCount = 0;
+        int groupStatsCount = 0;
+            List<Node> nodes = getNodes();
+            for (Iterator<Node> iterator = nodes.iterator(); iterator.hasNext();) {
+                NodeKey nodeKey =  iterator.next().getKey();
+                InstanceIdentifier<FlowCapableNode> nodeRef = InstanceIdentifier.builder(Nodes.class).child(Node.class, nodeKey).augmentation(FlowCapableNode.class).toInstance();
+                FlowCapableNode node = (FlowCapableNode)dataProviderService.readOperationalData(nodeRef);
+
+               List<Group> groups =  node.getGroup();
+                for (Iterator<Group> iterator2 = groups.iterator(); iterator2.hasNext();) {
+                    groupCount++;
+                    GroupKey groupKey = iterator2.next().getKey();
+                    InstanceIdentifier<Group> groupRef = InstanceIdentifier.builder(Nodes.class).child(Node.class, nodeKey).augmentation(FlowCapableNode.class).child(Group.class, groupKey).toInstance();
+                    Group group = (Group)dataProviderService.readOperationalData(groupRef);
+                    NodeGroupStatistics data = group.getAugmentation(NodeGroupStatistics.class);
+                    if(null != data)
+                    {
+                        groupStatsCount++;
+                    }
+                }
+            }
+            
+            if(groupCount == groupStatsCount)
+            {
+                ci.println("---------------------groupStats - Success-------------------------------");
+            }
+            else
+            {
+                ci.println("------------------------------groupStats - Failed--------------------------");
+                ci.println("System fetchs stats data in 50 seconds interval, so pls wait and try again.");
+            }                        
+       }
+    
+    public void _meterStats(CommandInterpreter ci) {
+        int meterCount = 0;
+        int meterStatsCount = 0;
+            List<Node> nodes = getNodes();
+            for (Iterator<Node> iterator = nodes.iterator(); iterator.hasNext();) {
+                NodeKey nodeKey =  iterator.next().getKey();
+                InstanceIdentifier<FlowCapableNode> nodeRef = InstanceIdentifier.builder(Nodes.class).child(Node.class, nodeKey).augmentation(FlowCapableNode.class).toInstance();
+                FlowCapableNode node = (FlowCapableNode)dataProviderService.readOperationalData(nodeRef);
+
+               List<Meter> meters =  node.getMeter();
+                for (Iterator<Meter> iterator2 = meters.iterator(); iterator2.hasNext();) {
+                    meterCount++;
+                    MeterKey meterKey = iterator2.next().getKey();
+                    InstanceIdentifier<Meter> meterRef = InstanceIdentifier.builder(Nodes.class).child(Node.class, nodeKey).augmentation(FlowCapableNode.class).child(Meter.class, meterKey).toInstance();
+                    Meter meter = (Meter)dataProviderService.readOperationalData(meterRef);
+                    NodeMeterStatistics data = meter.getAugmentation(NodeMeterStatistics.class);
+                    if(null != data)
+                    {
+                        meterStatsCount++;
+                    }
+                }
+            }
+            
+            if(meterCount == meterStatsCount)
+            {
+                ci.println("---------------------------meterStats - Success-------------------------------------");
+            }
+            else
+            {
+                ci.println("----------------------------meterStats - Failed-------------------------------------");
+                ci.println("System fetchs stats data in 50 seconds interval, so pls wait and try again.");
+            }                        
+       }
+    
+    
     public void _aggregateStats(CommandInterpreter ci) {
         int aggregateFlowCount = 0;
         int aggerateFlowStatsCount = 0;