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=7337842acf256ca1e0a545f037a8ea3735b51d32;hpb=0c2b8db8ad1304bd63aaf2bb78a7cd306c127b8e;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 7337842acf..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 @@ -1,5 +1,5 @@ -/** - * Copyright IBM Corporation, 2013. All rights reserved. +/* + * Copyright (c) 2013, 2015 IBM Corporation 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, @@ -7,58 +7,49 @@ */ package org.opendaylight.openflowplugin.test; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; - +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.MoreExecutors; +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.common.api.TransactionStatus; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.controller.sal.binding.api.NotificationService; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; -import org.opendaylight.controller.sal.binding.api.data.DataBrokerService; +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; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.MeterKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupListener; 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.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.config.rev131024.Meters; 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; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.BandId; -import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.BandType; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterFlags; 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.DscpRemark; 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.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcResult; +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; public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { - private static final Logger LOG = LoggerFactory.getLogger(OpenflowpluginMeterTestCommandProvider.class); - private DataBrokerService dataBrokerService; - private ProviderContext pc; + + private final DataBroker dataBroker; private final BundleContext ctx; private Meter testMeter; private Meter testMeter1; @@ -67,18 +58,18 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { private final String originalMeterName = "Foo"; private final String updatedMeterName = "Bar"; private final MeterEventListener meterEventListener = new MeterEventListener(); - private static NotificationService notificationService; - private Registration listener1Reg; + private final NotificationService notificationService; + private Registration listener1Reg; - public OpenflowpluginMeterTestCommandProvider(BundleContext ctx) { + public OpenflowpluginMeterTestCommandProvider(final DataBroker dataBroker, + final NotificationService notificationService, final BundleContext ctx) { + this.dataBroker = dataBroker; + this.notificationService = notificationService; this.ctx = ctx; } - public void onSessionInitiated(ProviderContext session) { - pc = session; - dataBrokerService = session.getSALService(DataBrokerService.class); + public void init() { ctx.registerService(CommandProvider.class.getName(), this, null); - notificationService = session.getSALService(NotificationService.class); // For switch events listener1Reg = notificationService.registerNotificationListener(meterEventListener); @@ -86,141 +77,119 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { createTestMeter(); } - private void createUserNode(String nodeRef) { - NodeBuilder builder = new NodeBuilder(); - builder.setId(new NodeId(nodeRef)); - builder.setKey(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.setKey(new NodeKey(builder.getId())); - testNode = builder.build(); + testNode = new NodeBuilder().setId(new NodeId(OpenflowpluginTestActivator.NODE_ID)).build(); } - private InstanceIdentifier nodeToInstanceId(Node node) { - return InstanceIdentifier.builder(Nodes.class).child(Node.class, node.getKey()).toInstance(); + private static @NonNull InstanceIdentifier nodeToInstanceId(final Node node) { + return InstanceIdentifier.create(Nodes.class).child(Node.class, node.key()); } - final class MeterEventListener implements SalMeterListener { - + 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 - DataModification, DataObject> modification = dataBrokerService.beginTransaction(); - - long id = 12; - MeterKey key = new MeterKey(new MeterId(id)); - MeterBuilder meter = new MeterBuilder(); - meter.setContainerName("abcd"); - meter.setKey(key); - meter.setMeterId(new MeterId(9L)); - meter.setMeterName(originalMeterName); - meter.setFlags(new MeterFlags(true, false, false, false)); - MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder(); - List bandHdr = new ArrayList(); - MeterBandHeaderBuilder bandHeader = new MeterBandHeaderBuilder(); - bandHeader.setBandRate((long) 234); - bandHeader.setBandBurstSize((long) 444); - DscpRemarkBuilder dscpRemark = new DscpRemarkBuilder(); - dscpRemark.setDscpRemarkBurstSize((long) 5); - dscpRemark.setPercLevel((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)); - bandHdr.add(bandHeader.build()); - 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.setKey(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)); - MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder(); - List bandHdr = new ArrayList(); - - bandHeader.setBandBurstSize((long) 444); - DscpRemarkBuilder dscpRemark = new DscpRemarkBuilder(); - dscpRemark.setDscpRemarkBurstSize((long) 5); - dscpRemark.setPercLevel((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)); - bandHdr.add(bandHeader.build()); - 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; } - public void _removeMeter(CommandInterpreter ci) { + @SuppressWarnings("checkstyle:MethodName") + public void _removeMeter(final CommandInterpreter ci) { String nref = ci.nextArgument(); if (nref == null) { @@ -230,27 +199,26 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { ci.println("User node added" + nref); createUserNode(nref); } - MeterBuilder mBuilder = createTestMeter(); - DataModification, DataObject> modification = dataBrokerService.beginTransaction(); - InstanceIdentifier path1 = InstanceIdentifier.builder(Nodes.class).child(Node.class, testNode.getKey()) - .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(testMeter.getMeterId())).build(); - modification.removeConfigurationData(path1); - Future> commitFuture = modification.commit(); - try { - RpcResult result = commitFuture.get(); - TransactionStatus status = result.getResult(); - ci.println("Status of Meter Data Loaded Transaction: " + status); - - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExecutionException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + createTestMeter(); + ReadWriteTransaction modification = dataBroker.newReadWriteTransaction(); + 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); + modification.commit().addCallback(new FutureCallback() { + @Override + public void onSuccess(final CommitInfo notUsed) { + ci.println("Status of Group Data Loaded Transaction: success."); + } + + @Override + public void onFailure(final Throwable throwable) { + ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable)); + } + }, MoreExecutors.directExecutor()); } - public void _removeMeters(CommandInterpreter ci) { + @SuppressWarnings("checkstyle:MethodName") + public void _removeMeters(final CommandInterpreter ci) { String nref = ci.nextArgument(); if (nref == null) { @@ -261,78 +229,78 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider { createUserNode(nref); } - Integer count = Integer.parseInt(ci.nextArgument()); + int count = Integer.parseInt(ci.nextArgument()); - DataModification, DataObject> modification = dataBrokerService.beginTransaction(); + ReadWriteTransaction modification = dataBroker.newReadWriteTransaction(); switch (count) { - case 1: - MeterBuilder mBuilder = createTestMeters("1", "remove"); - InstanceIdentifier path1 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter1.getMeterId())).build(); - modification.removeConfigurationData(path1); - MeterBuilder mBuilder1 = createTestMeters("2", "remove"); - InstanceIdentifier path2 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter2.getMeterId())).build(); - modification.removeConfigurationData(path2); - - break; - case 2: - MeterBuilder mBuilder2 = createTestMeters("3", "remove"); - InstanceIdentifier path3 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter1.getMeterId())).build(); - modification.removeConfigurationData(path3); - MeterBuilder mBuilder22 = createTestMeters("4", "remove"); - InstanceIdentifier path4 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter2.getMeterId())).build(); - modification.removeConfigurationData(path4); - break; - case 3: - MeterBuilder mBuilder3 = createTestMeters("5", "remove"); - InstanceIdentifier path5 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter1.getMeterId())).build(); - modification.removeConfigurationData(path5); - MeterBuilder mBuilder4 = createTestMeters("6", "remove"); - InstanceIdentifier path6 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter2.getMeterId())).build(); - modification.removeConfigurationData(path6); - break; - case 4: - MeterBuilder mBuilder5 = createTestMeters("7", "remove"); - InstanceIdentifier path7 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter1.getMeterId())).build(); - modification.removeConfigurationData(path7); - MeterBuilder mBuilder6 = createTestMeters("8", "remove"); - InstanceIdentifier path8 = InstanceIdentifier.builder(Nodes.class) - .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class) - .child(Meter.class, new MeterKey(testMeter2.getMeterId())).build(); - modification.removeConfigurationData(path8); - break; - + case 1: + createTestMeters("1", "remove"); + InstanceIdentifier path1 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter1.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path1); + createTestMeters("2", "remove"); + InstanceIdentifier path2 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter2.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path2); + + break; + case 2: + createTestMeters("3", "remove"); + InstanceIdentifier path3 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter1.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path3); + createTestMeters("4", "remove"); + InstanceIdentifier path4 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter2.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path4); + break; + case 3: + createTestMeters("5", "remove"); + InstanceIdentifier path5 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter1.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path5); + createTestMeters("6", "remove"); + InstanceIdentifier path6 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter2.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path6); + break; + case 4: + createTestMeters("7", "remove"); + InstanceIdentifier path7 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter1.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path7); + createTestMeters("8", "remove"); + InstanceIdentifier path8 = InstanceIdentifier.create(Nodes.class) + .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class) + .child(Meter.class, new MeterKey(testMeter2.getMeterId())); + modification.delete(LogicalDatastoreType.CONFIGURATION, path8); + break; + default: + break; } - Future> commitFuture = modification.commit(); - try { - RpcResult result = commitFuture.get(); - TransactionStatus status = result.getResult(); - ci.println("Status of Meter Data Loaded Transaction: " + status); - - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExecutionException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + modification.commit().addCallback(new FutureCallback() { + @Override + public void onSuccess(final CommitInfo notUsed) { + ci.println("Status of Group Data Loaded Transaction: success."); + } + + @Override + 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) { @@ -346,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) { @@ -356,85 +325,83 @@ 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"); - createTestMeters("2", "add"); - writeMeter(ci, testMeter1, testMeter2); - break; - case 2: - createTestMeters("3", "add"); - createTestMeters("4", "add"); - writeMeter(ci, testMeter1, testMeter2); - break; - case 3: - createTestMeters("5", "add"); - createTestMeters("6", "add"); - writeMeter(ci, testMeter1, testMeter2); - break; - case 4: - createTestMeters("7", "add"); - createTestMeters("8", "add"); - writeMeter(ci, testMeter1, testMeter2); - break; - + case 1: + createTestMeters("1", "add"); + createTestMeters("2", "add"); + writeMeter(ci, testMeter1, testMeter2); + break; + case 2: + createTestMeters("3", "add"); + createTestMeters("4", "add"); + writeMeter(ci, testMeter1, testMeter2); + break; + case 3: + createTestMeters("5", "add"); + createTestMeters("6", "add"); + writeMeter(ci, testMeter1, testMeter2); + break; + case 4: + createTestMeters("7", "add"); + createTestMeters("8", "add"); + writeMeter(ci, testMeter1, testMeter2); + break; + default: + break; } // createTestMeters(); // writeMeter(ci, testMeter); } - private void writeMeter(CommandInterpreter ci, Meter meter) { - DataModification, DataObject> modification = dataBrokerService.beginTransaction(); - InstanceIdentifier path1 = InstanceIdentifier.builder(Nodes.class).child(Node.class, testNode.getKey()) - .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(meter.getMeterId())).build(); - DataObject cls = modification.readConfigurationData(path1); - modification.putConfigurationData(nodeToInstanceId(testNode), testNode); - modification.putConfigurationData(path1, meter); - Future> commitFuture = modification.commit(); - try { - RpcResult result = commitFuture.get(); - TransactionStatus status = result.getResult(); - ci.println("Status of Meter Data Loaded Transaction: " + status); - - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExecutionException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + 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.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), + testNode); + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path1, meter); + modification.commit().addCallback(new FutureCallback() { + @Override + public void onSuccess(final CommitInfo notUsed) { + ci.println("Status of Group Data Loaded Transaction: success."); + } + + @Override + 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(CommandInterpreter ci, Meter meter, Meter meter1) { - DataModification, DataObject> modification = dataBrokerService.beginTransaction(); - InstanceIdentifier path1 = InstanceIdentifier.builder(Nodes.class).child(Node.class, testNode.getKey()) - .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(meter.getMeterId())).build(); - DataObject cls = modification.readConfigurationData(path1); - modification.putConfigurationData(nodeToInstanceId(testNode), testNode); - modification.putConfigurationData(path1, meter); - InstanceIdentifier path2 = InstanceIdentifier.builder(Nodes.class).child(Node.class, testNode.getKey()) - .augmentation(FlowCapableNode.class).child(Meter.class, new MeterKey(meter1.getMeterId())).build(); - DataObject cls1 = modification.readConfigurationData(path2); - modification.putConfigurationData(nodeToInstanceId(testNode), testNode); - modification.putConfigurationData(path2, meter1); - - Future> commitFuture = modification.commit(); - try { - RpcResult result = commitFuture.get(); - TransactionStatus status = result.getResult(); - ci.println("Status of Meter Data Loaded Transaction: " + status); - - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExecutionException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + 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.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.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, nodeToInstanceId(testNode), + testNode); + modification.mergeParentStructureMerge(LogicalDatastoreType.CONFIGURATION, path2, meter1); + + modification.commit().addCallback(new FutureCallback() { + @Override + public void onSuccess(final CommitInfo notUsed) { + ci.println("Status of Group Data Loaded Transaction: success."); + } + + @Override + 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) { @@ -451,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) { @@ -462,24 +430,26 @@ 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"); - createTestMeters("2", "modify"); - writeMeter(ci, testMeter1, testMeter2); - break; - case 2: - createTestMeters("3", "modify"); - createTestMeters("4", "modify"); - writeMeter(ci, testMeter1, testMeter2); - break; + case 1: + createTestMeters("1", "modify"); + createTestMeters("2", "modify"); + writeMeter(ci, testMeter1, testMeter2); + break; + case 2: + createTestMeters("3", "modify"); + createTestMeters("4", "modify"); + writeMeter(ci, testMeter1, testMeter2); + break; + default: + break; } } @Override public String getHelp() { - StringBuffer help = new StringBuffer(); + StringBuilder help = new StringBuilder(); help.append("---FRM MD-SAL Meter test module---\n"); help.append("\t addMeter - node ref\n"); help.append("\t modifyMeter - node ref\n");