Removing Blind imports across the module
[netvirt.git] / vpnservice / vpnmanager / vpnmanager-impl / src / main / java / org / opendaylight / netvirt / vpnmanager / DpnInVpnChangeListener.java
index 25527b46ea111f09d9d7a0ecd64ced256939467f..a9bb443a96438edc452e7aa2f34efd8b128c31e9 100644 (file)
@@ -9,38 +9,27 @@ package org.opendaylight.netvirt.vpnmanager;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.ListenableFuture;
+import java.math.BigInteger;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.genius.datastoreutils.DataStoreJobCoordinator;
-import org.opendaylight.genius.mdsalutil.*;
-import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.AddDpnEvent;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.OdlL3vpnListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.RemoveDpnEvent;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.remove.dpn.event.RemoveEventData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry
-        .VpnToDpnList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.VpnToDpnList;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-
 public class DpnInVpnChangeListener implements OdlL3vpnListener {
     private static final Logger LOG = LoggerFactory.getLogger(DpnInVpnChangeListener.class);
-    private DataBroker dataBroker;
-    private IMdsalApiManager mdsalManager;
-    private IdManagerService idManager;
+    private final DataBroker dataBroker;
 
     public DpnInVpnChangeListener(DataBroker dataBroker) {
         this.dataBroker = dataBroker;
@@ -64,28 +53,25 @@ public class DpnInVpnChangeListener implements OdlL3vpnListener {
             Optional<VpnInstanceOpDataEntry> vpnOpValue = VpnUtil.read(dataBroker, LogicalDatastoreType.OPERATIONAL, id);
 
             if (vpnOpValue.isPresent()) {
-                LOG.trace(" Active Dpn count {} in VpnInstOpData", vpnOpValue.get().getActiveDpnCount());
-                if (vpnOpValue.get().getActiveDpnCount() == 0) {
-                    final Collection<VpnToDpnList> vpnToDpnList = vpnOpValue.get().getVpnToDpnList();
-
-                    DataStoreJobCoordinator dataStoreCoordinator = DataStoreJobCoordinator.getInstance();
-                    dataStoreCoordinator.enqueueJob("VPN-" + vpnName + "-DPN-" + dpnId.toString() ,
-                            new Callable<List<ListenableFuture<Void>>>() {
-                                @Override
-                                public List<ListenableFuture<Void>> call() throws Exception {
-                                    WriteTransaction writeTxn = dataBroker.newWriteOnlyTransaction();
-                                    deleteDpn(vpnToDpnList , rd , writeTxn);
-                                    CheckedFuture<Void, TransactionCommitFailedException> futures = writeTxn.submit();
-                                    try {
-                                        futures.get();
-                                    } catch (InterruptedException | ExecutionException e) {
-                                        LOG.error("Error removing dpnToVpnList for vpn {} ", vpnName);
-                                        throw new RuntimeException(e.getMessage());
-                                    }
-                                    return null;
-                                }
-                            });
-
+                VpnInstanceOpDataEntry vpnInstOpData = vpnOpValue.get();
+                List<VpnToDpnList> vpnToDpnList = vpnInstOpData.getVpnToDpnList();
+                boolean flushDpnsOnVpn = true;
+                for (VpnToDpnList dpn: vpnToDpnList) {
+                    if (dpn.getDpnState() == VpnToDpnList.DpnState.Active) {
+                        flushDpnsOnVpn = false;
+                        break;
+                    }
+                }
+                if (flushDpnsOnVpn) {
+                    WriteTransaction writeTxn = dataBroker.newWriteOnlyTransaction();
+                    deleteDpn(vpnToDpnList , rd , writeTxn);
+                    CheckedFuture<Void, TransactionCommitFailedException> futures = writeTxn.submit();
+                    try {
+                        futures.get();
+                    } catch (InterruptedException | ExecutionException e) {
+                        LOG.error("Error removing dpnToVpnList for vpn {} ", vpnName);
+                        throw new RuntimeException(e.getMessage());
+                    }
                 }
             }
         }