Bug 8860 : Populate elantag at time of elanInstance creation
[netvirt.git] / vpnservice / elanmanager / elanmanager-impl / src / main / java / org / opendaylight / netvirt / elan / internal / ElanServiceProvider.java
index a3e3be160c8770af6e9e28f53c898be969afac5a..d789ada54150efd72445395eb659246ef11d6cbb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
+ * Copyright (c) 2016, 2017 Ericsson India Global Services Pvt Ltd. 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,
@@ -412,8 +412,8 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
     public List<ElanInstance> getElanInstances() {
         InstanceIdentifier<ElanInstances> elanInstancesIdentifier = InstanceIdentifier.builder(ElanInstances.class)
                 .build();
-        return elanUtils.read(broker, LogicalDatastoreType.CONFIGURATION, elanInstancesIdentifier).transform(
-                ElanInstances::getElanInstance).or(Collections.emptyList());
+        return elanUtils.read(broker, LogicalDatastoreType.CONFIGURATION, elanInstancesIdentifier).toJavaUtil().map(
+                ElanInstances::getElanInstance).orElse(Collections.emptyList());
     }
 
     @Override
@@ -542,7 +542,7 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
     private boolean shouldDeleteTrunk(String trunkInterfaceName, String elanInterfaceName) {
         List<Interface> childInterfaces = interfaceManager.getChildInterfaces(trunkInterfaceName);
         if (childInterfaces == null || childInterfaces.isEmpty()
-                || (childInterfaces.size() == 1 && elanInterfaceName.equals(childInterfaces.get(0).getName()))) {
+                || childInterfaces.size() == 1 && elanInterfaceName.equals(childInterfaces.get(0).getName())) {
             LOG.debug("No more VLAN member interfaces left for trunk {}", trunkInterfaceName);
             return true;
         }
@@ -788,7 +788,7 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
                 if (update && !elanInstance.isExternal()) {
                     DpnInterfaces dpnInterfaces = elanUtils.getElanInterfaceInfoByElanDpn(elanInstanceName,
                             bridgeMgr.getDatapathId(node));
-                    if (dpnInterfaces == null || dpnInterfaces.getInterfaces().size() == 0) {
+                    if (dpnInterfaces == null || dpnInterfaces.getInterfaces().isEmpty()) {
                         continue;
                     }
                 }
@@ -818,12 +818,9 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
 
     @Override
     public void addArpResponderFlow(ArpResponderInput arpResponderInput) {
-
         elanUtils.addArpResponderFlow(arpResponderInput.getDpId(), arpResponderInput.getInterfaceName(),
                 arpResponderInput.getSpa(), arpResponderInput.getSha(), arpResponderInput.getLportTag(),
                 arpResponderInput.getInstructions());
-
-
     }
 
     @Override
@@ -831,4 +828,17 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi
         elanUtils.removeArpResponderFlow(arpResponderInput.getDpId(), arpResponderInput.getInterfaceName(),
                 arpResponderInput.getSpa(), arpResponderInput.getLportTag());
     }
+
+    /**
+     * Uses the IdManager to retrieve a brand new ElanTag.
+     *
+     * @param idKey
+     *            the id key
+     * @return the integer
+     */
+    @Override
+    public Long retrieveNewElanTag(String idKey) {
+        return elanUtils.retrieveNewElanTag(idManager, idKey);
+    }
+
 }