X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fstatistics%2Fservices%2Fdirect%2FGroupDirectStatisticsService.java;h=9a4925c8a95a42bcd2a3e0ff285130d22543cc9b;hb=9f8a5a168696e279ae49ed79efe4590abc49b9ba;hp=b7c650a03a4d8e4e91934aca7b7af3a4d4f96a2a;hpb=45b588240c46aa21af74df420b4c694296193499;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java index b7c650a03a..9a4925c8a9 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java @@ -8,11 +8,15 @@ package org.opendaylight.openflowplugin.impl.statistics.services.direct; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; 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.openflow.md.core.sal.convertor.GroupStatsResponseConvertor; +import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor; +import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData; import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetGroupStatisticsInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetGroupStatisticsOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetGroupStatisticsOutputBuilder; @@ -33,23 +37,21 @@ 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.multipart.request.group._case.MultipartRequestGroupBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import java.util.ArrayList; -import java.util.List; - /** * The Group direct statistics service. */ public class GroupDirectStatisticsService extends AbstractDirectStatisticsService { - private final GroupStatsResponseConvertor groupStatsConvertor = new GroupStatsResponseConvertor(); + private final VersionConvertorData data; /** * Instantiates a new Group direct statistics service. - * - * @param requestContextStack the request context stack + * @param requestContextStack the request context stack * @param deviceContext the device context + * @param convertorExecutor */ - public GroupDirectStatisticsService(RequestContextStack requestContextStack, DeviceContext deviceContext) { - super(MultipartType.OFPMPGROUP, requestContextStack, deviceContext); + public GroupDirectStatisticsService(RequestContextStack requestContextStack, DeviceContext deviceContext, ConvertorExecutor convertorExecutor) { + super(MultipartType.OFPMPGROUP, requestContextStack, deviceContext, convertorExecutor); + data = new VersionConvertorData(getVersion()); } @Override @@ -75,7 +77,12 @@ public class GroupDirectStatisticsService extends AbstractDirectStatisticsServic for (final MultipartReply mpReply : input) { final MultipartReplyGroupCase caseBody = (MultipartReplyGroupCase) mpReply.getMultipartReplyBody(); final MultipartReplyGroup replyBody = caseBody.getMultipartReplyGroup(); - groupStats.addAll(groupStatsConvertor.toSALGroupStatsList(replyBody.getGroupStats())); + final Optional> groupStatsList = getConvertorExecutor().convert( + replyBody.getGroupStats(), data); + + if (groupStatsList.isPresent()) { + groupStats.addAll(groupStatsList.get()); + } } } @@ -86,8 +93,7 @@ public class GroupDirectStatisticsService extends AbstractDirectStatisticsServic @Override protected void storeStatistics(GetGroupStatisticsOutput output) throws Exception { - final InstanceIdentifier nodePath = getDeviceContext() - .getDeviceState().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + final InstanceIdentifier nodePath = getDeviceInfo().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); for (final GroupStats groupStatistics : output.getGroupStats()) { final InstanceIdentifier groupStatisticsPath = nodePath @@ -96,7 +102,7 @@ public class GroupDirectStatisticsService extends AbstractDirectStatisticsServic .child(GroupStatistics.class); final GroupStatistics stats = new GroupStatisticsBuilder(groupStatistics).build(); - getDeviceContext().writeToTransactionWithParentsSlow(LogicalDatastoreType.OPERATIONAL, groupStatisticsPath, stats); + getTxFacade().writeToTransactionWithParentsSlow(LogicalDatastoreType.OPERATIONAL, groupStatisticsPath, stats); } } }