X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=test-provider%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Ftest%2FOpenflowpluginMeterTestCommandProvider.java;h=9045b3468ddcaa1054e8957212819b6b14d2c8f3;hb=e209bc2cbfa109f5c0de6a0cb445ddd75840fc66;hp=9ca3d4fdae88474657192ed113bb224fc5e03f5f;hpb=53ed4faac4fbc33d16a7db92689653009579cef0;p=openflowplugin.git diff --git a/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginMeterTestCommandProvider.java b/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginMeterTestCommandProvider.java index 9ca3d4fdae..9045b3468d 100644 --- a/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginMeterTestCommandProvider.java +++ b/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginMeterTestCommandProvider.java @@ -5,21 +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.test; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; -import java.util.ArrayList; -import java.util.List; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.osgi.framework.console.CommandInterpreter; import org.eclipse.osgi.framework.console.CommandProvider; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.sal.binding.api.NotificationService; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.NotificationService; +import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; +import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; 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.MeterBuilder; @@ -28,7 +25,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.MeterAdded; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.MeterRemoved; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.MeterUpdated; @@ -39,19 +35,20 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.Meter import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.DscpRemarkBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.MeterBandHeadersBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeader; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeaderBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.meter.band.header.MeterBandTypesBuilder; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.util.BindingMap; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint8; import org.osgi.framework.BundleContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@SuppressWarnings("checkstyle:MethodName") public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { - private static final Logger LOG = LoggerFactory.getLogger(OpenflowpluginMeterTestCommandProvider.class); + private final DataBroker dataBroker; private final BundleContext ctx; private Meter testMeter; @@ -64,8 +61,8 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { private final NotificationService notificationService; private Registration listener1Reg; - public OpenflowpluginMeterTestCommandProvider(DataBroker dataBroker, NotificationService notificationService, - BundleContext ctx) { + public OpenflowpluginMeterTestCommandProvider(final DataBroker dataBroker, + final NotificationService notificationService, final BundleContext ctx) { this.dataBroker = dataBroker; this.notificationService = notificationService; this.ctx = ctx; @@ -80,143 +77,118 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { createTestMeter(); } - private void createUserNode(String nodeRef) { - NodeBuilder builder = new NodeBuilder(); - builder.setId(new NodeId(nodeRef)); - builder.withKey(new NodeKey(builder.getId())); - testNode = builder.build(); + private void createUserNode(final String nodeRef) { + testNode = new NodeBuilder().setId(new NodeId(nodeRef)).build(); } private void createTestNode() { - NodeBuilder builder = new NodeBuilder(); - builder.setId(new NodeId(OpenflowpluginTestActivator.NODE_ID)); - builder.withKey(new NodeKey(builder.getId())); - testNode = builder.build(); + testNode = new NodeBuilder().setId(new NodeId(OpenflowpluginTestActivator.NODE_ID)).build(); } - private InstanceIdentifier nodeToInstanceId(Node node) { + private static @NonNull InstanceIdentifier nodeToInstanceId(final Node node) { return InstanceIdentifier.create(Nodes.class).child(Node.class, node.key()); } private static final class MeterEventListener implements SalMeterListener { - @Override - public void onMeterAdded(MeterAdded notification) { - LOG.info("Meter to be added.........................." + notification.toString()); - LOG.info("Meter Xid........................." + notification.getTransactionId().getValue()); - LOG.info("-----------------------------------------------------------------------------------"); + @Deprecated + public void onMeterAdded(final MeterAdded notification) { + LOG.info("Meter to be added {}", notification.toString()); + LOG.info("Meter Xid {}", notification.getTransactionId().getValue()); } @Override - public void onMeterRemoved(MeterRemoved notification) { - LOG.info("Meter to be removed.........................." + notification.toString()); - LOG.info("Meter Xid........................." + notification.getTransactionId().getValue()); - LOG.info("-----------------------------------------------------------------------------------"); + @Deprecated + public void onMeterRemoved(final MeterRemoved notification) { + LOG.info("Meter to be removed {}", notification.toString()); + LOG.info("Meter Xid {}", notification.getTransactionId().getValue()); } @Override - public void onMeterUpdated(MeterUpdated notification) { - LOG.info("Meter to be updated.........................." + notification.toString()); - LOG.info("Meter Xid........................." + notification.getTransactionId().getValue()); - LOG.info("-----------------------------------------------------------------------------------"); + @Deprecated + public void onMeterUpdated(final MeterUpdated notification) { + LOG.info("Meter to be updated {}", notification.toString()); + LOG.info("Meter Xid {}", notification.getTransactionId().getValue()); } - } private MeterBuilder createTestMeter() { // Sample data , committing to DataStore - - long id = 12; - MeterKey key = new MeterKey(new MeterId(id)); - MeterBuilder meter = new MeterBuilder(); - meter.setContainerName("abcd"); - meter.withKey(key); - meter.setMeterId(new MeterId(9L)); - meter.setMeterName(originalMeterName); - meter.setFlags(new MeterFlags(true, false, false, false)); - MeterBandHeaderBuilder bandHeader = new MeterBandHeaderBuilder(); - bandHeader.setBandRate((long) 234); - bandHeader.setBandBurstSize((long) 444); - DscpRemarkBuilder dscpRemark = new DscpRemarkBuilder(); - dscpRemark.setDscpRemarkBurstSize((long) 5); - dscpRemark.setPrecLevel((short) 1); - dscpRemark.setDscpRemarkRate((long) 12); - bandHeader.setBandType(dscpRemark.build()); - MeterBandTypesBuilder bandTypes = new MeterBandTypesBuilder(); - MeterBandType bandType = new MeterBandType(false, true, false); - bandTypes.setFlags(bandType); - bandHeader.setMeterBandTypes(bandTypes.build()); - bandHeader.setBandId(new BandId(0L)); - - List bandHdr = new ArrayList<>(); - bandHdr.add(bandHeader.build()); - - MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder(); - bandHeaders.setMeterBandHeader(bandHdr); - meter.setMeterBandHeaders(bandHeaders.build()); + final MeterBuilder meter = new MeterBuilder() + .setContainerName("abcd") + .withKey(new MeterKey(new MeterId(Uint32.valueOf(12)))) + .setMeterId(new MeterId(Uint32.valueOf(9))) + .setMeterName(originalMeterName) + .setFlags(new MeterFlags(true, false, false, false)) + .setMeterBandHeaders(new MeterBandHeadersBuilder() + .setMeterBandHeader(BindingMap.of(new MeterBandHeaderBuilder() + .setBandRate(Uint32.valueOf(234)) + .setBandBurstSize(Uint32.valueOf(444)) + .setBandType(new DscpRemarkBuilder() + .setDscpRemarkBurstSize(Uint32.valueOf(5)) + .setPrecLevel(Uint8.ONE) + .setDscpRemarkRate(Uint32.valueOf(12)) + .build()) + .setMeterBandTypes(new MeterBandTypesBuilder() + .setFlags(new MeterBandType(false, true, false)) + .build()) + .setBandId(new BandId(Uint32.ZERO)) + .build())) + .build()); testMeter = meter.build(); return meter; } - private MeterBuilder createTestMeters(String s1, String s2) { + private MeterBuilder createTestMeters(final String s1, final String s2) { // Sample data , committing to DataStore - long id = Integer.parseInt(s1); - MeterKey key = new MeterKey(new MeterId(id)); - MeterBuilder meter = new MeterBuilder(); - meter.setContainerName("abcd"); - meter.withKey(key); - meter.setMeterId(new MeterId(9L)); - MeterBandHeaderBuilder bandHeader = new MeterBandHeaderBuilder(); + final MeterBuilder meter = new MeterBuilder() + .setContainerName("abcd") + .withKey(new MeterKey(new MeterId(Uint32.valueOf(s1)))) + .setMeterId(new MeterId(Uint32.valueOf(9))) + .setFlags(new MeterFlags(true, false, false, false)); + final MeterBandHeaderBuilder bandHeader = new MeterBandHeaderBuilder() + .setBandBurstSize(Uint32.valueOf(444)) + .setBandType(new DscpRemarkBuilder() + .setDscpRemarkBurstSize(Uint32.valueOf(5)).setPrecLevel(Uint8.ONE).setDscpRemarkRate(Uint32.valueOf(12)) + .build()) + .setMeterBandTypes(new MeterBandTypesBuilder().setFlags(new MeterBandType(false, true, false)).build()) + .setBandId(new BandId(Uint32.ZERO)); + if (s2.equalsIgnoreCase("modify")) { meter.setMeterName(updatedMeterName); - bandHeader.setBandRate((long) 234); + bandHeader.setBandRate(Uint32.valueOf(234)); } else { meter.setMeterName(originalMeterName); - bandHeader.setBandRate((long) 123); + bandHeader.setBandRate(Uint32.valueOf(123)); } - meter.setFlags(new MeterFlags(true, false, false, false)); - - bandHeader.setBandBurstSize((long) 444); - DscpRemarkBuilder dscpRemark = new DscpRemarkBuilder(); - dscpRemark.setDscpRemarkBurstSize((long) 5); - dscpRemark.setPrecLevel((short) 1); - dscpRemark.setDscpRemarkRate((long) 12); - bandHeader.setBandType(dscpRemark.build()); - MeterBandTypesBuilder bandTypes = new MeterBandTypesBuilder(); - MeterBandType bandType = new MeterBandType(false, true, false); - bandTypes.setFlags(bandType); - bandHeader.setMeterBandTypes(bandTypes.build()); - bandHeader.setBandId(new BandId(0L)); - - List bandHdr = new ArrayList<>(); - bandHdr.add(bandHeader.build()); - - MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder(); - bandHeaders.setMeterBandHeader(bandHdr); - meter.setMeterBandHeaders(bandHeaders.build()); - - if (Integer.parseInt(s1) == 1) { - testMeter1 = meter.build(); - } else if (Integer.parseInt(s1) == 2) { - testMeter2 = meter.build(); - } else if (Integer.parseInt(s1) == 3) { - testMeter1 = meter.build(); - } else if (Integer.parseInt(s1) == 4) { - testMeter2 = meter.build(); - } else if (Integer.parseInt(s1) == 5) { - testMeter1 = meter.build(); - } else if (Integer.parseInt(s1) == 6) { - testMeter2 = meter.build(); - } else if (Integer.parseInt(s1) == 7) { - testMeter1 = meter.build(); - } else if (Integer.parseInt(s1) == 8) { - testMeter2 = meter.build(); + + meter.setMeterBandHeaders(new MeterBandHeadersBuilder() + .setMeterBandHeader(BindingMap.of(bandHeader.build())) + .build()); + + int firstInt = Integer.parseInt(s1); + switch (firstInt) { + case 1: + case 3: + case 5: + case 7: + testMeter1 = meter.build(); + break; + case 2: + case 4: + case 6: + case 8: + testMeter2 = meter.build(); + break; + default: + // No-op? } return meter; } + @SuppressWarnings("checkstyle:MethodName") public void _removeMeter(final CommandInterpreter ci) { String nref = ci.nextArgument(); @@ -232,20 +204,20 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { InstanceIdentifier path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.key()) .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(testMeter.getMeterId())); modification.delete(LogicalDatastoreType.CONFIGURATION, path1); - ListenableFuture commitFuture = modification.submit(); - Futures.addCallback(commitFuture, new FutureCallback() { + modification.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(Void notUsed) { + public void onSuccess(final CommitInfo notUsed) { ci.println("Status of Group Data Loaded Transaction: success."); } @Override - public void onFailure(Throwable throwable) { + public void onFailure(final Throwable throwable) { ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable)); } }, MoreExecutors.directExecutor()); } + @SuppressWarnings("checkstyle:MethodName") public void _removeMeters(final CommandInterpreter ci) { String nref = ci.nextArgument(); @@ -257,7 +229,7 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { createUserNode(nref); } - Integer count = Integer.parseInt(ci.nextArgument()); + int count = Integer.parseInt(ci.nextArgument()); ReadWriteTransaction modification = dataBroker.newReadWriteTransaction(); switch (count) { @@ -314,21 +286,21 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { break; } - ListenableFuture commitFuture = modification.submit(); - Futures.addCallback(commitFuture, new FutureCallback() { + modification.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(Void notUsed) { + public void onSuccess(final CommitInfo notUsed) { ci.println("Status of Group Data Loaded Transaction: success."); } @Override - public void onFailure(Throwable throwable) { + public void onFailure(final Throwable throwable) { ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable)); } }, MoreExecutors.directExecutor()); } - public void _addMeter(CommandInterpreter ci) { + @SuppressWarnings("checkstyle:MethodName") + public void _addMeter(final CommandInterpreter ci) { String nref = ci.nextArgument(); if (nref == null) { @@ -342,7 +314,8 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { writeMeter(ci, testMeter); } - public void _addMeters(CommandInterpreter ci) { + @SuppressWarnings("checkstyle:MethodName") + public void _addMeters(final CommandInterpreter ci) { String nref = ci.nextArgument(); if (nref == null) { @@ -352,7 +325,7 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { ci.println("User node added" + nref); createUserNode(nref); } - Integer count = Integer.parseInt(ci.nextArgument()); + int count = Integer.parseInt(ci.nextArgument()); switch (count) { case 1: createTestMeters("1", "add"); @@ -381,52 +354,54 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { // writeMeter(ci, testMeter); } - private void writeMeter(final CommandInterpreter ci, Meter meter) { + private void writeMeter(final CommandInterpreter ci, final Meter meter) { ReadWriteTransaction modification = dataBroker.newReadWriteTransaction(); InstanceIdentifier path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.key()) .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(meter.getMeterId())); - modification.merge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), testNode, true); - modification.merge(LogicalDatastoreType.CONFIGURATION, path1, meter, true); - ListenableFuture commitFuture = modification.submit(); - Futures.addCallback(commitFuture, new FutureCallback() { + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), + testNode); + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path1, meter); + modification.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(Void notUsed) { + public void onSuccess(final CommitInfo notUsed) { ci.println("Status of Group Data Loaded Transaction: success."); } @Override - public void onFailure(Throwable throwable) { + public void onFailure(final Throwable throwable) { ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable)); } }, MoreExecutors.directExecutor()); } - private void writeMeter(final CommandInterpreter ci, Meter meter, Meter meter1) { + private void writeMeter(final CommandInterpreter ci, final Meter meter, final Meter meter1) { ReadWriteTransaction modification = dataBroker.newReadWriteTransaction(); InstanceIdentifier path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.key()) .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(meter.getMeterId())); - modification.merge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), testNode, true); - modification.merge(LogicalDatastoreType.CONFIGURATION, path1, meter, true); + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), + testNode); + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path1, meter); InstanceIdentifier path2 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.key()) .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(meter1.getMeterId())); - modification.merge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), testNode, true); - modification.merge(LogicalDatastoreType.CONFIGURATION, path2, meter1, true); + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), + testNode); + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path2, meter1); - ListenableFuture commitFuture = modification.submit(); - Futures.addCallback(commitFuture, new FutureCallback() { + modification.commit().addCallback(new FutureCallback() { @Override - public void onSuccess(Void notUsed) { + public void onSuccess(final CommitInfo notUsed) { ci.println("Status of Group Data Loaded Transaction: success."); } @Override - public void onFailure(Throwable throwable) { + public void onFailure(final Throwable throwable) { ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable)); } }, MoreExecutors.directExecutor()); } - public void _modifyMeter(CommandInterpreter ci) { + @SuppressWarnings("checkstyle:MethodName") + public void _modifyMeter(final CommandInterpreter ci) { String nref = ci.nextArgument(); if (nref == null) { @@ -443,7 +418,8 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { writeMeter(ci, meter.build()); } - public void _modifyMeters(CommandInterpreter ci) { + @SuppressWarnings("checkstyle:MethodName") + public void _modifyMeters(final CommandInterpreter ci) { String nref = ci.nextArgument(); if (nref == null) { @@ -454,7 +430,7 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { createUserNode(nref); } - Integer count = Integer.parseInt(ci.nextArgument()); + int count = Integer.parseInt(ci.nextArgument()); switch (count) { case 1: createTestMeters("1", "modify");