import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
private Thread statisticsRequesterThread;
- private final InstanceIdentifier<Nodes> nodesIdentifier = InstanceIdentifier.builder().node(Nodes.class).toInstance();
+ private final InstanceIdentifier<Nodes> nodesIdentifier = InstanceIdentifier.builder(Nodes.class).toInstance();
+ private final int STATS_THREAD_EXECUTION_TIME= 50000;
//Local caching of stats
private final ConcurrentMap<NodeId,NodeStatistics> statisticsCache =
try {
statsRequestSender();
- Thread.sleep(5000);
+ Thread.sleep(STATS_THREAD_EXECUTION_TIME);
}catch (Exception e){
spLogger.error("Exception occurred while sending stats request : {}",e);
}
}
});
- spLogger.debug("Statistics requester thread started with timer interval : {}",5000);
+ spLogger.debug("Statistics requester thread started with timer interval : {}",STATS_THREAD_EXECUTION_TIME);
statisticsRequesterThread.start();
return;
for (Node targetNode : targetNodes){
- spLogger.info("Send request for stats collection to node : {})",targetNode.getId());
+
//We need to add check, so see if groups/meters are supported
//by the target node. Below check doesn't look good.
if(targetNode.getId().getValue().contains("openflow:")){
+ spLogger.info("Send request for stats collection to node : {})",targetNode.getId());
InstanceIdentifier<Node> targetInstanceId = InstanceIdentifier.builder(Nodes.class).child(Node.class,targetNode.getKey()).toInstance();
NodeRef targetNodeRef = new NodeRef(targetInstanceId);
- sendAllGroupStatisticsRequest(targetNodeRef);
-
- sendAllMeterStatisticsRequest(targetNodeRef);
-
- sendGroupDescriptionRequest(targetNodeRef);
-
- sendGroupFeaturesRequest(targetNodeRef);
-
- sendMeterConfigStatisticsRequest(targetNodeRef);
-
- sendMeterFeaturesRequest(targetNodeRef);
+ try{
+ sendAllGroupStatisticsRequest(targetNodeRef);
+ Thread.sleep(1000);
+ sendAllMeterStatisticsRequest(targetNodeRef);
+ Thread.sleep(1000);
+ sendGroupDescriptionRequest(targetNodeRef);
+ Thread.sleep(1000);
+ sendMeterConfigStatisticsRequest(targetNodeRef);
+ Thread.sleep(1000);
+ }catch(Exception e){
+ spLogger.error("Exception occured while sending statistics request : {}", e);
+ }
}
}
}
groupStatsService.getGroupDescription(input.build());
}
- private void sendGroupFeaturesRequest(NodeRef targetNode){
-
- GetGroupFeaturesInputBuilder input = new GetGroupFeaturesInputBuilder();
-
- input.setNode(targetNode);
-
- @SuppressWarnings("unused")
- Future<RpcResult<GetGroupFeaturesOutput>> response =
- groupStatsService.getGroupFeatures(input.build());
- }
-
private void sendAllMeterStatisticsRequest(NodeRef targetNode){
GetAllMeterStatisticsInputBuilder input = new GetAllMeterStatisticsInputBuilder();
meterStatsService.getAllMeterConfigStatistics(input.build());
}
- private void sendMeterFeaturesRequest(NodeRef targetNode){
-
- GetMeterFeaturesInputBuilder input = new GetMeterFeaturesInputBuilder();
-
- input.setNode(targetNode);
-
- @SuppressWarnings("unused")
- Future<RpcResult<GetMeterFeaturesOutput>> response =
- meterStatsService.getMeterFeatures(input.build());
- }
public ConcurrentMap<NodeId, NodeStatistics> getStatisticsCache() {
return statisticsCache;