MRI version bumpup for Aluminium
[netvirt.git] / neutronvpn / api / src / main / java / org / opendaylight / netvirt / neutronvpn / api / utils / NeutronUtils.java
index 3f772eff08533cad228f751070db1680a8a54fea..3d650bca727af08562c8aaa7ef754fea88ce4e47 100644 (file)
@@ -5,19 +5,23 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netvirt.neutronvpn.api.utils;
 
 import com.google.common.base.Preconditions;
+import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
-import java.util.Objects;
+import java.util.Map;
 import java.util.regex.Pattern;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import java.util.stream.Collectors;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.neutronvpn.rev150602.vpnmaps.vpnmap.RouterIds;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.binding.rev150712.PortBindingExtension;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.NetworkTypeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network;
@@ -27,6 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.por
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.PortKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.provider.ext.rev150712.NetworkProviderExtension;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.provider.ext.rev150712.neutron.networks.network.Segments;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.provider.ext.rev150712.neutron.networks.network.SegmentsKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
@@ -43,7 +48,9 @@ public final class NeutronUtils {
     public static final String PORT_STATUS_NOTAPPLICABLE = "N/A";
     private static volatile Pattern uuidPattern;
 
-    private NeutronUtils() { }
+    private NeutronUtils() {
+
+    }
 
     /**
      * Create a Neutron Port status entry in the operational data store.
@@ -83,10 +90,12 @@ public final class NeutronUtils {
                 tx.syncUpdate(LogicalDatastoreType.OPERATIONAL, iid, portBuilder.build());
             }
         } catch (TransactionCommitFailedException e) {
-            LOG.error("writePortStatus: failed neutron port status write. isCreate ? " + create, e);
+            LOG.error("writePortStatus: failed neutron port status write. isCreate: {}", create, e);
             return false;
         }
 
+        LOG.debug("writePortStatus: operational port status for {} set to {}", uuid, portStatus);
+
         return true;
     }
 
@@ -113,25 +122,25 @@ public final class NeutronUtils {
     }
 
     public static boolean isPortVnicTypeNormal(Port port) {
-        PortBindingExtension portBinding = port.getAugmentation(PortBindingExtension.class);
+        PortBindingExtension portBinding = port.augmentation(PortBindingExtension.class);
         if (portBinding == null || portBinding.getVnicType() == null) {
             // By default, VNIC_TYPE is NORMAL
             return true;
         }
         String vnicType = portBinding.getVnicType().trim().toLowerCase(Locale.getDefault());
-        return vnicType.equals(VNIC_TYPE_NORMAL);
+        return VNIC_TYPE_NORMAL.equals(vnicType);
     }
 
     public static <T extends NetworkTypeBase> String getSegmentationIdFromNeutronNetwork(Network network,
             Class<T> networkType) {
         String segmentationId = null;
-        NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class);
+        NetworkProviderExtension providerExtension = network.augmentation(NetworkProviderExtension.class);
         if (providerExtension != null) {
             segmentationId = providerExtension.getSegmentationId();
             if (segmentationId == null) {
-                List<Segments> providerSegments = providerExtension.getSegments();
-                if (providerSegments != null && providerSegments.size() > 0) {
-                    for (Segments providerSegment: providerSegments) {
+                Map<SegmentsKey, Segments> providerSegmentsMap = providerExtension.getSegments();
+                if (providerSegmentsMap != null && providerSegmentsMap.size() > 0) {
+                    for (Segments providerSegment: providerSegmentsMap.values()) {
                         if (isNetworkSegmentType(providerSegment, networkType)) {
                             segmentationId = providerSegment.getSegmentationId();
                             break;
@@ -149,53 +158,6 @@ public final class NeutronUtils {
         return networkType != null && networkType.isAssignableFrom(expectedNetworkType);
     }
 
-    public static <T extends NetworkTypeBase> boolean isNetworkSegmentType(Network network, Long index,
-                                                                           Class<T> expectedNetworkType) {
-        Class<? extends NetworkTypeBase> segmentType = null;
-        NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class);
-        if (providerExtension != null) {
-            List<Segments> providerSegments = providerExtension.getSegments();
-            if (providerSegments != null && providerSegments.size() > 0) {
-                for (Segments providerSegment : providerSegments) {
-                    if (Objects.equals(providerSegment.getSegmentationIndex(), index)) {
-                        segmentType = providerSegment.getNetworkType();
-                        break;
-                    }
-                }
-            }
-        }
-        return segmentType != null && segmentType.isAssignableFrom(expectedNetworkType);
-    }
-
-    public static Long getNumberSegmentsFromNeutronNetwork(Network network) {
-        NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class);
-        Integer numSegs = 0;
-        if (providerExtension != null) {
-            List<Segments> providerSegments = providerExtension.getSegments();
-            if (providerSegments != null) {
-                numSegs = providerSegments.size();
-            }
-        }
-        return Long.valueOf(numSegs);
-    }
-
-    public static String getSegmentationIdFromNeutronNetworkSegment(Network network, Long index) {
-        String segmentationId = null;
-        NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class);
-        if (providerExtension != null) {
-            List<Segments> providerSegments = providerExtension.getSegments();
-            if (providerSegments != null && providerSegments.size() > 0) {
-                for (Segments providerSegment : providerSegments) {
-                    if (Objects.equals(providerSegment.getSegmentationIndex(), index)) {
-                        segmentationId = providerSegment.getSegmentationId();
-                        break;
-                    }
-                }
-            }
-        }
-        return segmentationId;
-    }
-
     public static boolean isUuid(String possibleUuid) {
         Preconditions.checkNotNull(possibleUuid, "possibleUuid == null");
 
@@ -213,4 +175,13 @@ public final class NeutronUtils {
             return Boolean.FALSE;
         }
     }
+
+    @NonNull
+    public static List<Uuid> getVpnMapRouterIdsListUuid(@Nullable List<RouterIds> routerIds) {
+        if (routerIds == null) {
+            return Collections.emptyList();
+        }
+        return routerIds.stream().map(
+            routerId -> routerId.getRouterId()).collect(Collectors.toList());
+    }
 }