From e0f6475b38f0e21de167b2fec166431db29fe036 Mon Sep 17 00:00:00 2001 From: Martin Bobak Date: Wed, 1 Apr 2015 16:26:57 +0200 Subject: [PATCH] statistics related services moved to separate package - statistics related services are not exposed for MD-SAl Change-Id: Id4c94fea6bad7d68ac095944f0d836e8fc2329b2 Signed-off-by: Martin Bobak --- ...pendaylightMeterStatisticsServiceImpl.java | 166 ------------------ ...OpendaylightPortStatisticsServiceImpl.java | 95 ---------- .../impl/services/RequestContextUtil.java | 2 +- ...OpendaylightFlowStatisticsServiceImpl.java | 42 +++-- ...aylightFlowTableStatisticsServiceImpl.java | 17 +- ...pendaylightGroupStatisticsServiceImpl.java | 24 ++- ...pendaylightMeterStatisticsServiceImpl.java | 160 +++++++++++++++++ ...OpendaylightPortStatisticsServiceImpl.java | 106 +++++++++++ ...pendaylightQueueStatisticsServiceImpl.java | 23 ++- .../impl/util/MdSalRegistratorUtils.java | 24 --- 10 files changed, 346 insertions(+), 313 deletions(-) delete mode 100644 openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightMeterStatisticsServiceImpl.java delete mode 100644 openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightPortStatisticsServiceImpl.java rename openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/{ => statistics}/services/OpendaylightFlowStatisticsServiceImpl.java (92%) rename openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/{ => statistics}/services/OpendaylightFlowTableStatisticsServiceImpl.java (82%) rename openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/{ => statistics}/services/OpendaylightGroupStatisticsServiceImpl.java (90%) create mode 100644 openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightMeterStatisticsServiceImpl.java create mode 100644 openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightPortStatisticsServiceImpl.java rename openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/{ => statistics}/services/OpendaylightQueueStatisticsServiceImpl.java (88%) diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightMeterStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightMeterStatisticsServiceImpl.java deleted file mode 100644 index 9ef1a33e58..0000000000 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightMeterStatisticsServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -/** - * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.openflowplugin.impl.services; - -import com.google.common.base.Function; -import com.google.common.util.concurrent.JdkFutureAdapters; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.SettableFuture; -import org.opendaylight.openflowjava.protocol.api.util.BinContent; -import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; -import org.opendaylight.openflowplugin.api.openflow.device.Xid; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter._case.MultipartRequestMeterBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter.config._case.MultipartRequestMeterConfigBuilder; -import org.opendaylight.yangtools.yang.common.RpcResult; -import java.util.concurrent.Future; - -/** - * @author joe - */ -public class OpendaylightMeterStatisticsServiceImpl extends CommonService implements OpendaylightMeterStatisticsService { - - - @Override - public Future> getAllMeterConfigStatistics( - final GetAllMeterConfigStatisticsInput input) { - return this - . handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { - - @Override - public Future> apply(final DataCrate data) { - - MultipartRequestMeterConfigCaseBuilder caseBuilder = - new MultipartRequestMeterConfigCaseBuilder(); - MultipartRequestMeterConfigBuilder mprMeterConfigBuild = - new MultipartRequestMeterConfigBuilder(); - mprMeterConfigBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common - .types.rev130731.Meter.OFPMALL.getIntValue()))); - caseBuilder.setMultipartRequestMeterConfig(mprMeterConfigBuild.build()); - - final Xid xid = deviceContext.getNextXid(); - data.getRequestContext().setXid(xid); - MultipartRequestInputBuilder mprInput = RequestInputUtils - .createMultipartHeader(MultipartType.OFPMPMETERCONFIG, xid.getValue(), version); - mprInput.setMultipartRequestBody(caseBuilder.build()); - Future> resultFromOFLib = deviceContext - .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); - return JdkFutureAdapters - .listenInPoolThread(resultFromOFLib); - }}); - - } - - @Override - public Future> getAllMeterStatistics(final GetAllMeterStatisticsInput input) { - final RequestContext requestContext = requestContextStack.createRequestContext(); - final SettableFuture> result = requestContextStack.storeOrFail(requestContext); - - if (!result.isDone()) { - - final Xid xid = deviceContext.getNextXid(); - - MultipartRequestMeterCaseBuilder caseBuilder = - new MultipartRequestMeterCaseBuilder(); - MultipartRequestMeterBuilder mprMeterBuild = - new MultipartRequestMeterBuilder(); - mprMeterBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common - .types.rev130731.Meter.OFPMALL.getIntValue()))); - caseBuilder.setMultipartRequestMeter(mprMeterBuild.build()); - - MultipartRequestInputBuilder mprInput = RequestInputUtils - .createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), version); - mprInput.setMultipartRequestBody(caseBuilder.build()); - Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext() - .getConnectionAdapter().multipartRequest(mprInput.build()); - - ListenableFuture> futureResultFromOfLib = JdkFutureAdapters.listenInPoolThread(resultFromOFLib); - - final RpcResultConvertor rpcResultConvertor = new RpcResultConvertor<>(requestContext, deviceContext); - rpcResultConvertor.processResultFromOfJava(futureResultFromOfLib); - } else { - RequestContextUtil.closeRequstContext(requestContext); - } - return result; - } - - @Override - public Future> getMeterFeatures(final GetMeterFeaturesInput input) { - final RequestContext requestContext = requestContextStack.createRequestContext(); - final SettableFuture> result = requestContextStack.storeOrFail(requestContext); - - if (!result.isDone()) { - - final Xid xid = deviceContext.getNextXid(); - - MultipartRequestMeterFeaturesCaseBuilder mprMeterFeaturesBuild = - new MultipartRequestMeterFeaturesCaseBuilder(); - - MultipartRequestInputBuilder mprInput = - RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETERFEATURES, xid.getValue(), version); - mprInput.setMultipartRequestBody(mprMeterFeaturesBuild.build()); - Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); - ListenableFuture> futureResultFromOfLib = JdkFutureAdapters.listenInPoolThread(resultFromOFLib); - - final RpcResultConvertor rpcResultConvertor = new RpcResultConvertor<>(requestContext, deviceContext); - rpcResultConvertor.processResultFromOfJava(futureResultFromOfLib); - } else { - RequestContextUtil.closeRequstContext(requestContext); - } - return result; - } - - @Override - public Future> getMeterStatistics(final GetMeterStatisticsInput input) { - final RequestContext requestContext = requestContextStack.createRequestContext(); - final SettableFuture> result = requestContextStack.storeOrFail(requestContext); - - if (!result.isDone()) { - - final Xid xid = deviceContext.getNextXid(); - - MultipartRequestMeterCaseBuilder caseBuilder = - new MultipartRequestMeterCaseBuilder(); - MultipartRequestMeterBuilder mprMeterBuild = - new MultipartRequestMeterBuilder(); - mprMeterBuild.setMeterId(new MeterId(input.getMeterId().getValue())); - caseBuilder.setMultipartRequestMeter(mprMeterBuild.build()); - - MultipartRequestInputBuilder mprInput = - RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), version); - mprInput.setMultipartRequestBody(caseBuilder.build()); - Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); - ListenableFuture> futureResultFromOfLib = JdkFutureAdapters.listenInPoolThread(resultFromOFLib); - - final RpcResultConvertor rpcResultConvertor = new RpcResultConvertor<>(requestContext, deviceContext); - rpcResultConvertor.processResultFromOfJava(futureResultFromOfLib); - - } else { - RequestContextUtil.closeRequstContext(requestContext); - } - return result; - } - -} diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightPortStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightPortStatisticsServiceImpl.java deleted file mode 100644 index db51b9cdde..0000000000 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightPortStatisticsServiceImpl.java +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.openflowplugin.impl.services; - -import com.google.common.base.Function; -import com.google.common.util.concurrent.JdkFutureAdapters; -import org.opendaylight.openflowplugin.api.OFConstants; -import org.opendaylight.openflowplugin.api.openflow.device.Xid; -import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; -import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.port.stats._case.MultipartRequestPortStatsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetAllNodeConnectorsStatisticsInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetAllNodeConnectorsStatisticsOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetNodeConnectorStatisticsInput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetNodeConnectorStatisticsOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService; -import org.opendaylight.yangtools.yang.common.RpcResult; -import java.util.concurrent.Future; - -/** - * @author joe - */ -public class OpendaylightPortStatisticsServiceImpl extends CommonService implements OpendaylightPortStatisticsService { - - @Override - public Future> getAllNodeConnectorsStatistics( - final GetAllNodeConnectorsStatisticsInput input) { - return this - . handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { - - @Override - public Future> apply(final DataCrate data) { - - MultipartRequestPortStatsCaseBuilder caseBuilder = - new MultipartRequestPortStatsCaseBuilder(); - MultipartRequestPortStatsBuilder mprPortStatsBuilder = - new MultipartRequestPortStatsBuilder(); - // Select all ports - mprPortStatsBuilder.setPortNo(OFConstants.OFPP_ANY); - caseBuilder.setMultipartRequestPortStats(mprPortStatsBuilder.build()); - - final Xid xid = deviceContext.getNextXid(); - data.getRequestContext().setXid(xid); - MultipartRequestInputBuilder mprInput = RequestInputUtils - .createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version); - mprInput.setMultipartRequestBody(caseBuilder.build()); - Future> resultFromOFLib = deviceContext - .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); - return JdkFutureAdapters.listenInPoolThread(resultFromOFLib); - }}); - } - - @Override - public Future> getNodeConnectorStatistics( - final GetNodeConnectorStatisticsInput input) { - return this - . handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { - - @Override - public Future> apply(final DataCrate data) { - - MultipartRequestPortStatsCaseBuilder caseBuilder = - new MultipartRequestPortStatsCaseBuilder(); - MultipartRequestPortStatsBuilder mprPortStatsBuilder = - new MultipartRequestPortStatsBuilder(); - // Set specific port - mprPortStatsBuilder - .setPortNo(InventoryDataServiceUtil.portNumberfromNodeConnectorId( - OpenflowVersion.get(version), - input.getNodeConnectorId())); - caseBuilder.setMultipartRequestPortStats(mprPortStatsBuilder.build()); - - final Xid xid = deviceContext.getNextXid(); - data.getRequestContext().setXid(xid); - MultipartRequestInputBuilder mprInput = RequestInputUtils - .createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version); - mprInput.setMultipartRequestBody(caseBuilder.build()); - Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext() - .getConnectionAdapter().multipartRequest(mprInput.build()); - return JdkFutureAdapters.listenInPoolThread(resultFromOFLib); - }}); - - } - -} diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/RequestContextUtil.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/RequestContextUtil.java index ee752c9564..9c54e4520f 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/RequestContextUtil.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/RequestContextUtil.java @@ -20,7 +20,7 @@ public final class RequestContextUtil { } - static void closeRequstContext(final RequestContext requestContext) { + public static void closeRequstContext(final RequestContext requestContext) { try { requestContext.close(); } catch (Exception e) { diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightFlowStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java similarity index 92% rename from openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightFlowStatisticsServiceImpl.java rename to openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java index dfe9647f91..a062b2a673 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightFlowStatisticsServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java @@ -5,16 +5,20 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.openflowplugin.impl.services; +package org.opendaylight.openflowplugin.impl.statistics.services; import com.google.common.base.Function; -import org.opendaylight.yangtools.yang.binding.DataObject; import com.google.common.util.concurrent.JdkFutureAdapters; import com.google.common.util.concurrent.ListenableFuture; -import java.util.concurrent.Future; import org.opendaylight.openflowplugin.api.OFConstants; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; +import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; import org.opendaylight.openflowplugin.api.openflow.device.Xid; +import org.opendaylight.openflowplugin.impl.services.CommonService; +import org.opendaylight.openflowplugin.impl.services.DataCrate; +import org.opendaylight.openflowplugin.impl.services.RequestInputUtils; +import org.opendaylight.openflowplugin.impl.services.RpcResultConvertor; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchReactor; import org.opendaylight.openflowplugin.openflow.md.util.FlowCreatorUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlowsInput; @@ -34,9 +38,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlowCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.aggregate._case.MultipartRequestAggregateBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.flow._case.MultipartRequestFlowBuilder; +import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.concurrent.Future; /** * @author joe @@ -45,12 +51,18 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme private static final Logger LOG = LoggerFactory.getLogger(OpendaylightFlowStatisticsServiceImpl.class); + public OpendaylightFlowStatisticsServiceImpl(final RequestContextStack requestContextStack, DeviceContext deviceContext) { + super(requestContextStack, deviceContext); + } + @Override public Future> getAggregateFlowStatisticsFromFlowTableForAllFlows( final GetAggregateFlowStatisticsFromFlowTableForAllFlowsInput input) { - return this. handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { + + return this.handleServiceCall( + PRIMARY_CONNECTION, + new Function, Future>>() { @Override public Future> apply(final DataCrate data) { @@ -88,8 +100,11 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme @Override public Future> getAggregateFlowStatisticsFromFlowTableForGivenMatch( final GetAggregateFlowStatisticsFromFlowTableForGivenMatchInput input) { - return this. handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { + + + return this.handleServiceCall( + PRIMARY_CONNECTION, + new Function, Future>>() { @Override public Future> apply(final DataCrate data) { @@ -134,7 +149,8 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme @Override public Future> getAllFlowStatisticsFromFlowTable( final GetAllFlowStatisticsFromFlowTableInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override @@ -167,7 +183,9 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme @Override public Future> getAllFlowsStatisticsFromAllFlowTables( final GetAllFlowsStatisticsFromAllFlowTablesInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + + + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override @@ -199,7 +217,9 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme @Override public Future> getFlowStatisticsFromFlowTable( final GetFlowStatisticsFromFlowTableInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + + + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override @@ -252,7 +272,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme } private void convertRpcResultToRequestFuture(final RequestContext requestContext, - final ListenableFuture> futureResultFromOfLib) { + final ListenableFuture> futureResultFromOfLib) { final RpcResultConvertor rpcResultConvertor = new RpcResultConvertor<>(requestContext, deviceContext); rpcResultConvertor.processResultFromOfJava(futureResultFromOfLib); } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightFlowTableStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java similarity index 82% rename from openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightFlowTableStatisticsServiceImpl.java rename to openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java index 2f336394b9..272c058122 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightFlowTableStatisticsServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java @@ -5,12 +5,16 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.openflowplugin.impl.services; +package org.opendaylight.openflowplugin.impl.statistics.services; import com.google.common.base.Function; import com.google.common.util.concurrent.JdkFutureAdapters; -import java.util.concurrent.Future; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; import org.opendaylight.openflowplugin.api.openflow.device.Xid; +import org.opendaylight.openflowplugin.impl.services.CommonService; +import org.opendaylight.openflowplugin.impl.services.DataCrate; +import org.opendaylight.openflowplugin.impl.services.RequestInputUtils; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.GetFlowTablesStatisticsInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.GetFlowTablesStatisticsOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.OpendaylightFlowTableStatisticsService; @@ -19,6 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table._case.MultipartRequestTableBuilder; import org.opendaylight.yangtools.yang.common.RpcResult; +import java.util.concurrent.Future; /** * @author joe @@ -26,10 +31,16 @@ import org.opendaylight.yangtools.yang.common.RpcResult; public class OpendaylightFlowTableStatisticsServiceImpl extends CommonService implements OpendaylightFlowTableStatisticsService { + public OpendaylightFlowTableStatisticsServiceImpl(final RequestContextStack requestContextStack, DeviceContext deviceContext) { + super(requestContextStack, deviceContext); + } + @Override public Future> getFlowTablesStatistics( final GetFlowTablesStatisticsInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + + + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightGroupStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightGroupStatisticsServiceImpl.java similarity index 90% rename from openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightGroupStatisticsServiceImpl.java rename to openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightGroupStatisticsServiceImpl.java index 111a3850ca..adeec17d2b 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightGroupStatisticsServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightGroupStatisticsServiceImpl.java @@ -5,13 +5,17 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.openflowplugin.impl.services; +package org.opendaylight.openflowplugin.impl.statistics.services; import com.google.common.base.Function; import com.google.common.util.concurrent.JdkFutureAdapters; -import java.util.concurrent.Future; import org.opendaylight.openflowjava.protocol.api.util.BinContent; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; import org.opendaylight.openflowplugin.api.openflow.device.Xid; +import org.opendaylight.openflowplugin.impl.services.CommonService; +import org.opendaylight.openflowplugin.impl.services.DataCrate; +import org.opendaylight.openflowplugin.impl.services.RequestInputUtils; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInput; @@ -29,15 +33,23 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.group._case.MultipartRequestGroupBuilder; import org.opendaylight.yangtools.yang.common.RpcResult; +import java.util.concurrent.Future; /** * @author joe */ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implements OpendaylightGroupStatisticsService { + + public OpendaylightGroupStatisticsServiceImpl(final RequestContextStack requestContextStack, DeviceContext deviceContext) { + super(requestContextStack, deviceContext); + } + @Override public Future> getAllGroupStatistics(final GetAllGroupStatisticsInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + + + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override @@ -72,7 +84,7 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem @Override public Future> getGroupDescription(final GetGroupDescriptionInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override @@ -94,7 +106,7 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem @Override public Future> getGroupFeatures(final GetGroupFeaturesInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override @@ -116,7 +128,7 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem @Override public Future> getGroupStatistics(final GetGroupStatisticsInput input) { - return this. handleServiceCall(PRIMARY_CONNECTION, + return this.handleServiceCall(PRIMARY_CONNECTION, new Function, Future>>() { @Override diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightMeterStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightMeterStatisticsServiceImpl.java new file mode 100644 index 0000000000..8085378224 --- /dev/null +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightMeterStatisticsServiceImpl.java @@ -0,0 +1,160 @@ +/** + * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.impl.statistics.services; + +import com.google.common.base.Function; +import com.google.common.util.concurrent.JdkFutureAdapters; +import org.opendaylight.openflowjava.protocol.api.util.BinContent; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; +import org.opendaylight.openflowplugin.api.openflow.device.Xid; +import org.opendaylight.openflowplugin.impl.services.CommonService; +import org.opendaylight.openflowplugin.impl.services.DataCrate; +import org.opendaylight.openflowplugin.impl.services.RequestInputUtils; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCaseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCaseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCaseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter._case.MultipartRequestMeterBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter.config._case.MultipartRequestMeterConfigBuilder; +import org.opendaylight.yangtools.yang.common.RpcResult; +import java.util.concurrent.Future; + +/** + * @author joe + */ +public class OpendaylightMeterStatisticsServiceImpl extends CommonService implements OpendaylightMeterStatisticsService { + + + public OpendaylightMeterStatisticsServiceImpl(final RequestContextStack requestContextStack, DeviceContext deviceContext) { + super(requestContextStack, deviceContext); + } + + @Override + public Future> getAllMeterConfigStatistics( + final GetAllMeterConfigStatisticsInput input) { + return this + .handleServiceCall( + PRIMARY_CONNECTION, new Function, Future>>() { + + @Override + public Future> apply(final DataCrate data) { + + MultipartRequestMeterConfigCaseBuilder caseBuilder = + new MultipartRequestMeterConfigCaseBuilder(); + MultipartRequestMeterConfigBuilder mprMeterConfigBuild = + new MultipartRequestMeterConfigBuilder(); + mprMeterConfigBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong( + org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common + .types.rev130731.Meter.OFPMALL.getIntValue()))); + caseBuilder.setMultipartRequestMeterConfig(mprMeterConfigBuild.build()); + + final Xid xid = deviceContext.getNextXid(); + data.getRequestContext().setXid(xid); + MultipartRequestInputBuilder mprInput = RequestInputUtils + .createMultipartHeader(MultipartType.OFPMPMETERCONFIG, xid.getValue(), version); + mprInput.setMultipartRequestBody(caseBuilder.build()); + Future> resultFromOFLib = deviceContext + .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); + return JdkFutureAdapters + .listenInPoolThread(resultFromOFLib); + } + }); + + } + + @Override + public Future> getAllMeterStatistics(final GetAllMeterStatisticsInput input) { + + final long xid = deviceContext.getNextXid().getValue(); + return this.handleServiceCall( + PRIMARY_CONNECTION, + new Function, Future>>() { + @Override + public Future> apply(final DataCrate data) { + + MultipartRequestMeterCaseBuilder caseBuilder = + new MultipartRequestMeterCaseBuilder(); + MultipartRequestMeterBuilder mprMeterBuild = + new MultipartRequestMeterBuilder(); + mprMeterBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong( + org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common + .types.rev130731.Meter.OFPMALL.getIntValue()))); + caseBuilder.setMultipartRequestMeter(mprMeterBuild.build()); + + MultipartRequestInputBuilder mprInput = RequestInputUtils + .createMultipartHeader(MultipartType.OFPMPMETER, xid, version); + mprInput.setMultipartRequestBody(caseBuilder.build()); + Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext() + .getConnectionAdapter().multipartRequest(mprInput.build()); + + return JdkFutureAdapters.listenInPoolThread(resultFromOFLib); + } + } + ); + + } + + @Override + public Future> getMeterFeatures(final GetMeterFeaturesInput input) { + final long xid = deviceContext.getNextXid().getValue(); + return this.handleServiceCall( + PRIMARY_CONNECTION, + new Function, Future>>() { + @Override + public Future> apply(final DataCrate data) { + + MultipartRequestMeterFeaturesCaseBuilder mprMeterFeaturesBuild = + new MultipartRequestMeterFeaturesCaseBuilder(); + + MultipartRequestInputBuilder mprInput = + RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETERFEATURES, xid, version); + mprInput.setMultipartRequestBody(mprMeterFeaturesBuild.build()); + Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); + return JdkFutureAdapters.listenInPoolThread(resultFromOFLib); + } + }); + } + + @Override + public Future> getMeterStatistics(final GetMeterStatisticsInput input) { + final long xid = deviceContext.getNextXid().getValue(); + return this.handleServiceCall( + PRIMARY_CONNECTION, + new Function, Future>>() { + @Override + public Future> apply(final DataCrate data) { + MultipartRequestMeterCaseBuilder caseBuilder = + new MultipartRequestMeterCaseBuilder(); + MultipartRequestMeterBuilder mprMeterBuild = + new MultipartRequestMeterBuilder(); + mprMeterBuild.setMeterId(new MeterId(input.getMeterId().getValue())); + caseBuilder.setMultipartRequestMeter(mprMeterBuild.build()); + + MultipartRequestInputBuilder mprInput = + RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETER, xid, version); + mprInput.setMultipartRequestBody(caseBuilder.build()); + Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); + return JdkFutureAdapters.listenInPoolThread(resultFromOFLib); + } + }); + + } + +} diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightPortStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightPortStatisticsServiceImpl.java new file mode 100644 index 0000000000..31490df95b --- /dev/null +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightPortStatisticsServiceImpl.java @@ -0,0 +1,106 @@ +/** + * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.openflowplugin.impl.statistics.services; + +import com.google.common.base.Function; +import com.google.common.util.concurrent.JdkFutureAdapters; +import org.opendaylight.openflowplugin.api.OFConstants; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; +import org.opendaylight.openflowplugin.api.openflow.device.Xid; +import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; +import org.opendaylight.openflowplugin.impl.services.CommonService; +import org.opendaylight.openflowplugin.impl.services.DataCrate; +import org.opendaylight.openflowplugin.impl.services.RequestInputUtils; +import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCaseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.port.stats._case.MultipartRequestPortStatsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetAllNodeConnectorsStatisticsInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetAllNodeConnectorsStatisticsOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetNodeConnectorStatisticsInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetNodeConnectorStatisticsOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService; +import org.opendaylight.yangtools.yang.common.RpcResult; +import java.util.concurrent.Future; + +/** + * @author joe + */ +public class OpendaylightPortStatisticsServiceImpl extends CommonService implements OpendaylightPortStatisticsService { + + public OpendaylightPortStatisticsServiceImpl(final RequestContextStack requestContextStack, DeviceContext deviceContext) { + super(requestContextStack, deviceContext); + } + + @Override + public Future> getAllNodeConnectorsStatistics( + final GetAllNodeConnectorsStatisticsInput input) { + return this + .handleServiceCall( + PRIMARY_CONNECTION, new Function, Future>>() { + + @Override + public Future> apply(final DataCrate data) { + + MultipartRequestPortStatsCaseBuilder caseBuilder = + new MultipartRequestPortStatsCaseBuilder(); + MultipartRequestPortStatsBuilder mprPortStatsBuilder = + new MultipartRequestPortStatsBuilder(); + // Select all ports + mprPortStatsBuilder.setPortNo(OFConstants.OFPP_ANY); + caseBuilder.setMultipartRequestPortStats(mprPortStatsBuilder.build()); + + final Xid xid = deviceContext.getNextXid(); + data.getRequestContext().setXid(xid); + MultipartRequestInputBuilder mprInput = RequestInputUtils + .createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version); + mprInput.setMultipartRequestBody(caseBuilder.build()); + Future> resultFromOFLib = deviceContext + .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build()); + return JdkFutureAdapters.listenInPoolThread(resultFromOFLib); + } + }); + } + + @Override + public Future> getNodeConnectorStatistics( + final GetNodeConnectorStatisticsInput input) { + return this + .handleServiceCall( + PRIMARY_CONNECTION, new Function, Future>>() { + + @Override + public Future> apply(final DataCrate data) { + + MultipartRequestPortStatsCaseBuilder caseBuilder = + new MultipartRequestPortStatsCaseBuilder(); + MultipartRequestPortStatsBuilder mprPortStatsBuilder = + new MultipartRequestPortStatsBuilder(); + // Set specific port + mprPortStatsBuilder + .setPortNo(InventoryDataServiceUtil.portNumberfromNodeConnectorId( + OpenflowVersion.get(version), + input.getNodeConnectorId())); + caseBuilder.setMultipartRequestPortStats(mprPortStatsBuilder.build()); + + final Xid xid = deviceContext.getNextXid(); + data.getRequestContext().setXid(xid); + MultipartRequestInputBuilder mprInput = RequestInputUtils + .createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version); + mprInput.setMultipartRequestBody(caseBuilder.build()); + Future> resultFromOFLib = deviceContext.getPrimaryConnectionContext() + .getConnectionAdapter().multipartRequest(mprInput.build()); + return JdkFutureAdapters.listenInPoolThread(resultFromOFLib); + } + }); + + } + +} diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightQueueStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightQueueStatisticsServiceImpl.java similarity index 88% rename from openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightQueueStatisticsServiceImpl.java rename to openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightQueueStatisticsServiceImpl.java index 7213c50be7..c32a5fabdd 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/OpendaylightQueueStatisticsServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightQueueStatisticsServiceImpl.java @@ -5,13 +5,18 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.openflowplugin.impl.services; +package org.opendaylight.openflowplugin.impl.statistics.services; import com.google.common.base.Function; import com.google.common.util.concurrent.JdkFutureAdapters; import org.opendaylight.openflowplugin.api.OFConstants; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; import org.opendaylight.openflowplugin.api.openflow.device.Xid; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; +import org.opendaylight.openflowplugin.impl.services.CommonService; +import org.opendaylight.openflowplugin.impl.services.DataCrate; +import org.opendaylight.openflowplugin.impl.services.RequestInputUtils; import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder; @@ -32,11 +37,15 @@ import java.util.concurrent.Future; */ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implements OpendaylightQueueStatisticsService { + public OpendaylightQueueStatisticsServiceImpl(final RequestContextStack requestContextStack, DeviceContext deviceContext) { + super(requestContextStack, deviceContext); + } + @Override public Future> getAllQueuesStatisticsFromAllPorts( final GetAllQueuesStatisticsFromAllPortsInput input) { - return this. handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { + return this.handleServiceCall( + PRIMARY_CONNECTION, new Function, Future>>() { @Override public Future> apply(final DataCrate data) { @@ -67,8 +76,8 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem @Override public Future> getAllQueuesStatisticsFromGivenPort( final GetAllQueuesStatisticsFromGivenPortInput input) { - return this. handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { + return this.handleServiceCall( + PRIMARY_CONNECTION, new Function, Future>>() { @Override public Future> apply(final DataCrate data) { @@ -99,8 +108,8 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem @Override public Future> getQueueStatisticsFromGivenPort( final GetQueueStatisticsFromGivenPortInput input) { - return this. handleServiceCall( - PRIMARY_CONNECTION, new Function, Future>>() { + return this.handleServiceCall( + PRIMARY_CONNECTION, new Function, Future>>() { @Override public Future> apply(final DataCrate data) { diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistratorUtils.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistratorUtils.java index aade6cd78b..be5ebd442d 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistratorUtils.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistratorUtils.java @@ -10,28 +10,16 @@ package org.opendaylight.openflowplugin.impl.util; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext; import org.opendaylight.openflowplugin.impl.services.NodeConfigServiceImpl; -import org.opendaylight.openflowplugin.impl.services.OpendaylightFlowStatisticsServiceImpl; -import org.opendaylight.openflowplugin.impl.services.OpendaylightFlowTableStatisticsServiceImpl; -import org.opendaylight.openflowplugin.impl.services.OpendaylightGroupStatisticsServiceImpl; -import org.opendaylight.openflowplugin.impl.services.OpendaylightMeterStatisticsServiceImpl; -import org.opendaylight.openflowplugin.impl.services.OpendaylightPortStatisticsServiceImpl; -import org.opendaylight.openflowplugin.impl.services.OpendaylightQueueStatisticsServiceImpl; import org.opendaylight.openflowplugin.impl.services.PacketProcessingServiceImpl; import org.opendaylight.openflowplugin.impl.services.SalFlowServiceImpl; import org.opendaylight.openflowplugin.impl.services.SalGroupServiceImpl; import org.opendaylight.openflowplugin.impl.services.SalMeterServiceImpl; import org.opendaylight.openflowplugin.impl.services.SalTableServiceImpl; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.OpendaylightFlowTableStatisticsService; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsService; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService; import org.opendaylight.yang.gen.v1.urn.opendaylight.module.config.rev141015.NodeConfigService; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService; -import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.OpendaylightQueueStatisticsService; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService; /** @@ -49,18 +37,6 @@ public class MdSalRegistratorUtils { rpcContext.registerRpcServiceImplementation(SalGroupService.class, new SalGroupServiceImpl()); rpcContext.registerRpcServiceImplementation(SalTableService.class, new SalTableServiceImpl()); rpcContext.registerRpcServiceImplementation(PacketProcessingService.class, new PacketProcessingServiceImpl()); - rpcContext.registerRpcServiceImplementation(OpendaylightFlowStatisticsService.class, - new OpendaylightFlowStatisticsServiceImpl()); - rpcContext.registerRpcServiceImplementation(OpendaylightGroupStatisticsService.class, - new OpendaylightGroupStatisticsServiceImpl()); - rpcContext.registerRpcServiceImplementation(OpendaylightMeterStatisticsService.class, - new OpendaylightMeterStatisticsServiceImpl()); - rpcContext.registerRpcServiceImplementation(OpendaylightPortStatisticsService.class, - new OpendaylightPortStatisticsServiceImpl()); rpcContext.registerRpcServiceImplementation(NodeConfigService.class, new NodeConfigServiceImpl()); - rpcContext.registerRpcServiceImplementation(OpendaylightFlowTableStatisticsService.class, - new OpendaylightFlowTableStatisticsServiceImpl()); - rpcContext.registerRpcServiceImplementation(OpendaylightQueueStatisticsService.class, - new OpendaylightQueueStatisticsServiceImpl()); } } -- 2.36.6