Switch to MD-SAL APIs
[openflowplugin.git] / test-provider / src / main / java / org / opendaylight / openflowplugin / test / OpenflowpluginMeterTestCommandProvider.java
index 95037d5899293b39aa890579a21541010b15600d..98f9aa22c674d240fcbf19172a5274c469e9342a 100644 (file)
@@ -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,19 +7,16 @@
  */
 package org.opendaylight.openflowplugin.test;
 
-import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.MoreExecutors;
 import java.util.ArrayList;
 import java.util.List;
 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.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-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.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;
@@ -48,11 +45,11 @@ 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 DataBroker dataBroker;
-    private ProviderContext pc;
+    private final DataBroker dataBroker;
     private final BundleContext ctx;
     private Meter testMeter;
     private Meter testMeter1;
@@ -61,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 final NotificationService notificationService;
     private Registration listener1Reg;
 
-    public OpenflowpluginMeterTestCommandProvider(BundleContext ctx) {
+    public OpenflowpluginMeterTestCommandProvider(DataBroker dataBroker, NotificationService notificationService,
+            BundleContext ctx) {
+        this.dataBroker = dataBroker;
+        this.notificationService = notificationService;
         this.ctx = ctx;
     }
 
-    public void onSessionInitiated(ProviderContext session) {
-        pc = session;
-        dataBroker = session.getSALService(DataBroker.class);
+    public void init() {
         ctx.registerService(CommandProvider.class.getName(), this, null);
-        notificationService = session.getSALService(NotificationService.class);
         // For switch events
         listener1Reg = notificationService.registerNotificationListener(meterEventListener);
 
@@ -83,42 +80,39 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
     private void createUserNode(String nodeRef) {
         NodeBuilder builder = new NodeBuilder();
         builder.setId(new NodeId(nodeRef));
-        builder.setKey(new NodeKey(builder.getId()));
+        builder.withKey(new NodeKey(builder.getId()));
         testNode = builder.build();
     }
 
     private void createTestNode() {
         NodeBuilder builder = new NodeBuilder();
         builder.setId(new NodeId(OpenflowpluginTestActivator.NODE_ID));
-        builder.setKey(new NodeKey(builder.getId()));
+        builder.withKey(new NodeKey(builder.getId()));
         testNode = builder.build();
     }
 
     private InstanceIdentifier<Node> nodeToInstanceId(Node node) {
-        return InstanceIdentifier.create(Nodes.class).child(Node.class, node.getKey());
+        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("-----------------------------------------------------------------------------------");
+            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("-----------------------------------------------------------------------------------");
+            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("-----------------------------------------------------------------------------------");
+            LOG.info("Meter to be updated {}", notification.toString());
+            LOG.info("Meter  Xid {}", notification.getTransactionId().getValue());
         }
 
     }
@@ -130,12 +124,10 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
         MeterKey key = new MeterKey(new MeterId(id));
         MeterBuilder meter = new MeterBuilder();
         meter.setContainerName("abcd");
-        meter.setKey(key);
+        meter.withKey(key);
         meter.setMeterId(new MeterId(9L));
         meter.setMeterName(originalMeterName);
         meter.setFlags(new MeterFlags(true, false, false, false));
-        MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder();
-        List<MeterBandHeader> bandHdr = new ArrayList<MeterBandHeader>();
         MeterBandHeaderBuilder bandHeader = new MeterBandHeaderBuilder();
         bandHeader.setBandRate((long) 234);
         bandHeader.setBandBurstSize((long) 444);
@@ -149,7 +141,11 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
         bandTypes.setFlags(bandType);
         bandHeader.setMeterBandTypes(bandTypes.build());
         bandHeader.setBandId(new BandId(0L));
+
+        List<MeterBandHeader> bandHdr = new ArrayList<>();
         bandHdr.add(bandHeader.build());
+
+        MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder();
         bandHeaders.setMeterBandHeader(bandHdr);
         meter.setMeterBandHeaders(bandHeaders.build());
 
@@ -163,7 +159,7 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
         MeterKey key = new MeterKey(new MeterId(id));
         MeterBuilder meter = new MeterBuilder();
         meter.setContainerName("abcd");
-        meter.setKey(key);
+        meter.withKey(key);
         meter.setMeterId(new MeterId(9L));
         MeterBandHeaderBuilder bandHeader = new MeterBandHeaderBuilder();
         if (s2.equalsIgnoreCase("modify")) {
@@ -174,8 +170,6 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
             bandHeader.setBandRate((long) 123);
         }
         meter.setFlags(new MeterFlags(true, false, false, false));
-        MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder();
-        List<MeterBandHeader> bandHdr = new ArrayList<MeterBandHeader>();
 
         bandHeader.setBandBurstSize((long) 444);
         DscpRemarkBuilder dscpRemark = new DscpRemarkBuilder();
@@ -188,7 +182,11 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
         bandTypes.setFlags(bandType);
         bandHeader.setMeterBandTypes(bandTypes.build());
         bandHeader.setBandId(new BandId(0L));
+
+        List<MeterBandHeader> bandHdr = new ArrayList<>();
         bandHdr.add(bandHeader.build());
+
+        MeterBandHeadersBuilder bandHeaders = new MeterBandHeadersBuilder();
         bandHeaders.setMeterBandHeader(bandHdr);
         meter.setMeterBandHeaders(bandHeaders.build());
 
@@ -223,15 +221,14 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
             ci.println("User node added" + nref);
             createUserNode(nref);
         }
-        MeterBuilder mBuilder = createTestMeter();
+        createTestMeter();
         ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
-        InstanceIdentifier<Meter> path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.getKey())
+        InstanceIdentifier<Meter> 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);
-        CheckedFuture<Void, TransactionCommitFailedException> commitFuture = modification.submit();
-        Futures.addCallback(commitFuture, new FutureCallback<Void>() {
+        modification.commit().addCallback(new FutureCallback<Object>() {
             @Override
-            public void onSuccess(Void aVoid) {
+            public void onSuccess(Object notUsed) {
                 ci.println("Status of Group Data Loaded Transaction: success.");
             }
 
@@ -239,7 +236,7 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
             public void onFailure(Throwable throwable) {
                 ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable));
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     public void _removeMeters(final CommandInterpreter ci) {
@@ -258,61 +255,61 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
         ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
         switch (count) {
             case 1:
-                MeterBuilder mBuilder = createTestMeters("1", "remove");
+                createTestMeters("1", "remove");
                 InstanceIdentifier<Meter> path1 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter1.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path1);
-                MeterBuilder mBuilder1 = createTestMeters("2", "remove");
+                createTestMeters("2", "remove");
                 InstanceIdentifier<Meter> path2 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter2.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path2);
 
                 break;
             case 2:
-                MeterBuilder mBuilder2 = createTestMeters("3", "remove");
+                createTestMeters("3", "remove");
                 InstanceIdentifier<Meter> path3 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter1.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path3);
-                MeterBuilder mBuilder22 = createTestMeters("4", "remove");
+                createTestMeters("4", "remove");
                 InstanceIdentifier<Meter> path4 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter2.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path4);
                 break;
             case 3:
-                MeterBuilder mBuilder3 = createTestMeters("5", "remove");
+                createTestMeters("5", "remove");
                 InstanceIdentifier<Meter> path5 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter1.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path5);
-                MeterBuilder mBuilder4 = createTestMeters("6", "remove");
+                createTestMeters("6", "remove");
                 InstanceIdentifier<Meter> path6 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter2.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path6);
                 break;
             case 4:
-                MeterBuilder mBuilder5 = createTestMeters("7", "remove");
+                createTestMeters("7", "remove");
                 InstanceIdentifier<Meter> path7 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter1.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path7);
-                MeterBuilder mBuilder6 = createTestMeters("8", "remove");
+                createTestMeters("8", "remove");
                 InstanceIdentifier<Meter> path8 = InstanceIdentifier.create(Nodes.class)
-                        .child(Node.class, testNode.getKey()).augmentation(FlowCapableNode.class)
+                        .child(Node.class, testNode.key()).augmentation(FlowCapableNode.class)
                         .child(Meter.class, new MeterKey(testMeter2.getMeterId()));
                 modification.delete(LogicalDatastoreType.CONFIGURATION, path8);
                 break;
-
+            default:
+                break;
         }
 
-        CheckedFuture<Void, TransactionCommitFailedException> commitFuture = modification.submit();
-        Futures.addCallback(commitFuture, new FutureCallback<Void>() {
+        modification.commit().addCallback(new FutureCallback<Object>() {
             @Override
-            public void onSuccess(Void aVoid) {
+            public void onSuccess(Object notUsed) {
                 ci.println("Status of Group Data Loaded Transaction: success.");
             }
 
@@ -320,7 +317,7 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
             public void onFailure(Throwable throwable) {
                 ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable));
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     public void _addMeter(CommandInterpreter ci) {
@@ -369,7 +366,8 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
                 createTestMeters("8", "add");
                 writeMeter(ci, testMeter1, testMeter2);
                 break;
-
+            default:
+                break;
         }
         // createTestMeters();
         // writeMeter(ci, testMeter);
@@ -377,14 +375,13 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
 
     private void writeMeter(final CommandInterpreter ci, Meter meter) {
         ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
-        InstanceIdentifier<Meter> path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.getKey())
+        InstanceIdentifier<Meter> 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);
-        CheckedFuture<Void, TransactionCommitFailedException> commitFuture = modification.submit();
-        Futures.addCallback(commitFuture, new FutureCallback<Void>() {
+        modification.commit().addCallback(new FutureCallback<Object>() {
             @Override
-            public void onSuccess(Void aVoid) {
+            public void onSuccess(Object notUsed) {
                 ci.println("Status of Group Data Loaded Transaction: success.");
             }
 
@@ -392,24 +389,23 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
             public void onFailure(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) {
         ReadWriteTransaction modification = dataBroker.newReadWriteTransaction();
-        InstanceIdentifier<Meter> path1 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.getKey())
+        InstanceIdentifier<Meter> 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);
-        InstanceIdentifier<Meter> path2 = InstanceIdentifier.create(Nodes.class).child(Node.class, testNode.getKey())
+        InstanceIdentifier<Meter> 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);
 
-        CheckedFuture<Void, TransactionCommitFailedException> commitFuture = modification.submit();
-        Futures.addCallback(commitFuture, new FutureCallback<Void>() {
+        modification.commit().addCallback(new FutureCallback<Object>() {
             @Override
-            public void onSuccess(Void aVoid) {
+            public void onSuccess(Object notUsed) {
                 ci.println("Status of Group Data Loaded Transaction: success.");
             }
 
@@ -417,7 +413,7 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
             public void onFailure(Throwable throwable) {
                 ci.println(String.format("Status of Group Data Loaded Transaction : failure. Reason : %s", throwable));
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     public void _modifyMeter(CommandInterpreter ci) {
@@ -460,6 +456,8 @@ public class OpenflowpluginMeterTestCommandProvider implements CommandProvider {
                 createTestMeters("4", "modify");
                 writeMeter(ci, testMeter1, testMeter2);
                 break;
+            default:
+                break;
         }
     }