Merge "Eliminate {infra,service}utils.version"
[openflowplugin.git] / applications / southbound-cli / src / main / java / org / opendaylight / openflowplugin / applications / southboundcli / ReconciliationServiceImpl.java
index 93a0674238887457e0fe4e762732c9cfd208ce8c..31daf4235fb0a83ccaa072e922dfca3bc04de00b 100644 (file)
@@ -12,7 +12,6 @@ import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.o
 import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.reconciliation.service.rev180227.NodeReconcileState.State.FAILED;
 import static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.reconciliation.service.rev180227.NodeReconcileState.State.INPROGRESS;
 
-import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.SettableFuture;
 import java.math.BigInteger;
@@ -20,15 +19,16 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.stream.Collectors;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.ReadTransaction;
+import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.openflowplugin.applications.southboundcli.alarm.AlarmAgent;
 import org.opendaylight.openflowplugin.applications.southboundcli.util.OFNode;
 import org.opendaylight.openflowplugin.applications.southboundcli.util.ShellUtil;
@@ -59,6 +59,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -90,7 +91,7 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
     @Override
     public ListenableFuture<RpcResult<ReconcileOutput>> reconcile(ReconcileInput input) {
         boolean reconcileAllNodes = input.isReconcileAllNodes();
-        List<BigInteger> inputNodes = input.getNodes();
+        List<Uint64> inputNodes = input.getNodes();
         if (inputNodes == null) {
             inputNodes = new ArrayList<>();
         }
@@ -104,7 +105,7 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
         SettableFuture<RpcResult<ReconcileOutput>> result = SettableFuture.create();
         List<Long> nodeList = getAllNodes();
         List<Long> nodesToReconcile = reconcileAllNodes ? nodeList :
-                inputNodes.stream().distinct().map(BigInteger::longValue).collect(Collectors.toList());
+                inputNodes.stream().distinct().map(Uint64::longValue).collect(Collectors.toList());
         if (nodesToReconcile.size() > 0) {
             List<Long> unresolvedNodes =
                     nodesToReconcile.stream().filter(node -> !nodeList.contains(node)).collect(Collectors.toList());
@@ -112,11 +113,11 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
                 return buildErrorResponse("Error executing command reconcile. "
                         + "Node(s) not found: " + String.join(", ", unresolvedNodes.toString()));
             }
-            List<BigInteger> inprogressNodes = new ArrayList<>();
+            List<Uint64> inprogressNodes = new ArrayList<>();
             nodesToReconcile.parallelStream().forEach(nodeId -> {
                 Optional<ReconciliationStateList> state = getReconciliationState(nodeId);
                 if (state.isPresent() && state.get().getState().equals(INPROGRESS)) {
-                    inprogressNodes.add(new BigInteger(String.valueOf(nodeId)));
+                    inprogressNodes.add(Uint64.valueOf(nodeId));
                 } else {
                     alarmAgent.raiseNodeReconciliationAlarm(nodeId);
                     LOG.info("Executing reconciliation for node {}", nodeId);
@@ -141,13 +142,13 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
         InstanceIdentifier<ReconciliationStateList> instanceIdentifier = InstanceIdentifier
                 .builder(ReconciliationState.class).child(ReconciliationStateList.class,
                         new ReconciliationStateListKey(new BigInteger(String.valueOf(nodeId)))).build();
-        try (ReadOnlyTransaction tx = broker.newReadOnlyTransaction()) {
+        try (ReadTransaction tx = broker.newReadOnlyTransaction()) {
             return tx.read(LogicalDatastoreType.OPERATIONAL, instanceIdentifier).get();
 
         } catch (InterruptedException  | ExecutionException e) {
             LOG.error("Exception while reading reconciliation state for {}", nodeId, e);
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     private ListenableFuture<RpcResult<ReconcileOutput>> buildErrorResponse(String msg) {
@@ -215,7 +216,7 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
 
             if (isSuccess) {
                 if (count.isPresent()) {
-                    Long successCount = count.get().getSuccessCount();
+                    long successCount = count.get().getSuccessCount().toJava();
                     counterBuilder.setSuccessCount(++successCount);
                     LOG.debug("Reconcile success count {} for the node: {} ", successCount, nodeId);
                 } else {
@@ -223,7 +224,7 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
                 }
             } else {
                 if (count.isPresent()) {
-                    Long failureCount = count.get().getFailureCount();
+                    long failureCount = count.get().getFailureCount().toJava();
                     counterBuilder.setFailureCount(++failureCount);
                     LOG.debug("Reconcile failure count {} for the node: {} ", failureCount, nodeId);
                 } else {
@@ -232,7 +233,7 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
             }
             try {
                 tx.merge(LogicalDatastoreType.OPERATIONAL, instanceIdentifier, counterBuilder.build(), true);
-                tx.submit().get();
+                tx.commit().get();
             } catch (InterruptedException | ExecutionException e) {
                 LOG.error("Exception while submitting counter for {}", nodeId, e);
             }
@@ -245,7 +246,7 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
             } catch (InterruptedException | ExecutionException e) {
                 LOG.error("Exception while reading counter for node: {}", nodeId, e);
             }
-            return Optional.absent();
+            return Optional.empty();
         }
 
         private void updateReconciliationState(State state) {
@@ -258,7 +259,7 @@ public class ReconciliationServiceImpl implements ReconciliationService, AutoClo
                     .setState(state);
             try {
                 tx.merge(LogicalDatastoreType.OPERATIONAL, instanceIdentifier, stateBuilder.build(), true);
-                tx.submit().get();
+                tx.commit().get();
             } catch (InterruptedException | ExecutionException e) {
                 LOG.error("Exception while updating reconciliation state: {}", nodeId, e);
             }