X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcompatibility%2Fsal-compatibility%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcompatibility%2Fadsal%2FFlowStatisticsAdapter.java;h=e63cb54b8685174fafc7367bbe76bc130104a107;hp=4bc23fe33b0b9a7c1709d5440700f7b56d28c0ed;hb=9e8add2114ce1c3fd18a860af6e7419270611209;hpb=94d0d20b41d64bb6696c2a573ec367fcfddc44e9 diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/adsal/FlowStatisticsAdapter.java b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/adsal/FlowStatisticsAdapter.java index 4bc23fe33b..e63cb54b86 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/adsal/FlowStatisticsAdapter.java +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/adsal/FlowStatisticsAdapter.java @@ -13,8 +13,6 @@ import java.util.List; import java.util.concurrent.Future; import org.opendaylight.controller.sal.binding.api.NotificationProviderService; -import org.opendaylight.controller.sal.common.util.Futures; -import org.opendaylight.controller.sal.common.util.Rpcs; import org.opendaylight.controller.sal.compatibility.FromSalConversionsUtils; import org.opendaylight.controller.sal.compatibility.InventoryMapping; import org.opendaylight.controller.sal.compatibility.NodeMapping; @@ -61,9 +59,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.n import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.node.connector.statistics.and.port.number.map.NodeConnectorStatisticsAndPortNumberMapBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TableId; import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, IReadServiceListener{ private static final Logger LOG = LoggerFactory.getLogger(FlowStatisticsAdapter.class); @@ -73,7 +75,7 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, @Override public Future> getAggregateFlowStatisticsFromFlowTableForAllFlows( GetAggregateFlowStatisticsFromFlowTableForAllFlowsInput input) { - //TODO: No supported API exist in AD-SAL, it can either be implemented by fetching all the stats of the flows and + //TODO: No supported API exist in AD-SAL, it can either be implemented by fetching all the stats of the flows and // generating aggregate flow statistics out of those individual flow stats. return null; } @@ -81,13 +83,13 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, @Override public Future> getAggregateFlowStatisticsFromFlowTableForGivenMatch( GetAggregateFlowStatisticsFromFlowTableForGivenMatchInput input) { - //TODO: No supported API exist in AD-SAL, it can either be implemented by fetching all the stats of the flows and + //TODO: No supported API exist in AD-SAL, it can either be implemented by fetching all the stats of the flows and // generating aggregate flow statistics out of those individual flow stats. return null; } @Override - public Future> getAllFlowStatisticsFromFlowTable( + public ListenableFuture> getAllFlowStatisticsFromFlowTable( GetAllFlowStatisticsFromFlowTableInput input) { GetAllFlowStatisticsFromFlowTableOutput rpcResultType = null; boolean rpcResultBool = false; @@ -99,22 +101,23 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, GetAllFlowStatisticsFromFlowTableOutputBuilder builder = new GetAllFlowStatisticsFromFlowTableOutputBuilder(); builder.setTransactionId(new TransactionId(new BigInteger("0"))); rpcResultType = builder.setFlowAndStatisticsMapList(flowsStatistics).build(); - + rpcResultBool = true; } catch (ConstructionException e) { LOG.error(e.getMessage()); } - return Futures.immediateFuture(Rpcs.getRpcResult(rpcResultBool, rpcResultType, null)); + return Futures.immediateFuture(RpcResultBuilder. + status(rpcResultBool).withResult(rpcResultType).build()); } /** * Essentially this API will return the same result as getAllFlowStatisticsFromFlowTable */ @Override - public Future> getAllFlowsStatisticsFromAllFlowTables( + public ListenableFuture> getAllFlowsStatisticsFromAllFlowTables( GetAllFlowsStatisticsFromAllFlowTablesInput input) { - + GetAllFlowsStatisticsFromAllFlowTablesOutput rpcResultType = null; boolean rpcResultBool = false; @@ -125,17 +128,18 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, GetAllFlowsStatisticsFromAllFlowTablesOutputBuilder builder = new GetAllFlowsStatisticsFromAllFlowTablesOutputBuilder(); builder.setTransactionId(new TransactionId(new BigInteger("0"))); rpcResultType = builder.setFlowAndStatisticsMapList(flowsStatistics).build(); - + rpcResultBool = true; } catch (ConstructionException e) { LOG.error(e.getMessage()); } - return Futures.immediateFuture(Rpcs.getRpcResult(rpcResultBool, rpcResultType, null)); + return Futures.immediateFuture(RpcResultBuilder. + status(rpcResultBool).withResult(rpcResultType).build()); } @Override - public Future> getFlowStatisticsFromFlowTable( + public ListenableFuture> getFlowStatisticsFromFlowTable( GetFlowStatisticsFromFlowTableInput input) { GetFlowStatisticsFromFlowTableOutput rpcResultType = null; boolean rpcResultBool = false; @@ -152,7 +156,8 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, LOG.error(e.getMessage()); } - return Futures.immediateFuture(Rpcs.getRpcResult(rpcResultBool, rpcResultType, null)); + return Futures.immediateFuture(RpcResultBuilder. + status(rpcResultBool).withResult(rpcResultType).build()); } @Override @@ -170,7 +175,7 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, public void nodeConnectorStatisticsUpdated(Node node, List ncStatsList) { NodeConnectorStatisticsUpdateBuilder nodeConnectorStatisticsUpdateBuilder = new NodeConnectorStatisticsUpdateBuilder(); List nodeConnectorStatistics = toOdNodeConnectorStatistics(ncStatsList); - + nodeConnectorStatisticsUpdateBuilder.setNodeConnectorStatisticsAndPortNumberMap(nodeConnectorStatistics); nodeConnectorStatisticsUpdateBuilder.setMoreReplies(false); nodeConnectorStatisticsUpdateBuilder.setTransactionId(null); @@ -180,9 +185,9 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, @Override public void nodeTableStatisticsUpdated(Node node, List tableStatsList) { - - FlowTableStatisticsUpdateBuilder flowTableStatisticsUpdateBuilder = new FlowTableStatisticsUpdateBuilder(); - + + FlowTableStatisticsUpdateBuilder flowTableStatisticsUpdateBuilder = new FlowTableStatisticsUpdateBuilder(); + List flowTableStatistics = toOdFlowTableStatistics(tableStatsList); flowTableStatisticsUpdateBuilder.setFlowTableAndStatisticsMap(flowTableStatistics); flowTableStatisticsUpdateBuilder.setMoreReplies(false); @@ -194,7 +199,7 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, @Override public void descriptionStatisticsUpdated(Node node, NodeDescription nodeDescription) { // TODO which *StatisticsUpdated interface should be used? - + } private List toOdFlowsStatistics(List flowsOnNode) { @@ -234,7 +239,7 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, } private List toOdFlowTableStatistics(List tableStatsList) { - + List flowTableStatsMap = new ArrayList(); for (NodeTableStatistics nodeTableStatistics : tableStatsList) { FlowTableAndStatisticsMapBuilder flowTableAndStatisticsMapBuilder = new FlowTableAndStatisticsMapBuilder(); @@ -245,7 +250,7 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, flowTableAndStatisticsMapBuilder.setTableId(new TableId((short)nodeTableStatistics.getNodeTable().getID())); flowTableStatsMap.add(flowTableAndStatisticsMapBuilder.build()); } - + return flowTableStatsMap; } @@ -254,7 +259,7 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, List nodeConnectorStatisticsList = new ArrayList(); for(NodeConnectorStatistics ofNodeConnectorStatistics : ncStatsList){ NodeConnectorStatisticsAndPortNumberMapBuilder nodeConnectorStatisticsAndPortNumberMapBuilder = new NodeConnectorStatisticsAndPortNumberMapBuilder(); - + nodeConnectorStatisticsAndPortNumberMapBuilder.setBytes(extractBytes(ofNodeConnectorStatistics)); nodeConnectorStatisticsAndPortNumberMapBuilder.setCollisionCount(toBI(ofNodeConnectorStatistics.getCollisionCount())); nodeConnectorStatisticsAndPortNumberMapBuilder.setDuration(null); @@ -268,7 +273,7 @@ public class FlowStatisticsAdapter implements OpendaylightFlowStatisticsService, nodeConnectorStatisticsAndPortNumberMapBuilder.setTransmitErrors(toBI(ofNodeConnectorStatistics.getTransmitErrorCount())); nodeConnectorStatisticsList.add(nodeConnectorStatisticsAndPortNumberMapBuilder.build()); } - + return nodeConnectorStatisticsList; }