From 109e8de722fbf0608a026dbbe151c3ff7fab5950 Mon Sep 17 00:00:00 2001 From: Chetan Arakere Gowdru Date: Tue, 2 Jun 2020 11:59:19 +0530 Subject: [PATCH] Using nonNull API's in ELAN Description: using nonnull version of API provided(Ex as below) before doing .values() on the return value(applicable for all modules). This can result in NPE. @Nullable List getInterfaces(); @NonNull default List nonnullInterfaces() { return CodeHelpers.nonnull(this.getInterfaces()); } Changes done in ELAN to use nonnull version of API JIRA:NETVIRT-1671 Signed-off-by: Chetan Arakere Gowdru Change-Id: I795c8f217d6de35841baf6847aa0e8929d02cc87 Signed-off-by: Chetan Arakere Gowdru --- .../elan/arp/responder/ArpResponderUtil.java | 2 +- .../netvirt/elanmanager/api/ElanHelper.java | 2 +- .../elan/cli/l2gw/L2GwValidateCli.java | 10 +- .../cli/l2gw/NetworkL2gwDeviceInfoCli.java | 15 +-- .../elan/evpn/utils/EvpnMacVrfUtils.java | 9 +- .../elan/internal/ElanBridgeManager.java | 2 +- .../elan/internal/ElanInterfaceManager.java | 20 ++-- .../elan/internal/ElanServiceProvider.java | 6 +- .../VpnDpnToTransportZoneListener.java | 8 +- .../netvirt/elan/l2gw/ha/HwvtepHAUtil.java | 14 +-- .../elan/l2gw/ha/commands/LocalMcastCmd.java | 2 +- .../elan/l2gw/ha/commands/LocalUcastCmd.java | 2 +- .../l2gw/ha/commands/LogicalSwitchesCmd.java | 2 +- .../l2gw/ha/commands/PhysicalLocatorCmd.java | 2 +- .../elan/l2gw/ha/commands/RemoteMcastCmd.java | 4 +- .../elan/l2gw/ha/commands/RemoteUcastCmd.java | 4 +- .../elan/l2gw/ha/commands/SwitchesCmd.java | 4 +- .../l2gw/ha/commands/TerminationPointCmd.java | 14 +-- .../elan/l2gw/ha/commands/TunnelCmd.java | 4 +- .../elan/l2gw/ha/commands/TunnelIpCmd.java | 4 +- .../ha/handlers/NodeConnectedHandler.java | 4 +- .../l2gw/ha/listeners/HAOpNodeListener.java | 5 +- .../ha/listeners/HwvtepNodeBaseListener.java | 4 +- .../l2gw/ha/listeners/ManagerListener.java | 2 +- .../ElanInstanceEntityOwnershipListener.java | 4 +- .../HwvtepPhysicalSwitchListener.java | 4 +- .../L2GatewayConnectionListener.java | 11 +- .../l2gw/listeners/L2GatewayListener.java | 12 +- .../l2gw/listeners/LocalUcastMacListener.java | 4 +- .../utils/ElanL2GatewayMulticastUtils.java | 2 +- .../elan/l2gw/utils/ElanL2GatewayUtils.java | 20 ++-- .../l2gw/utils/L2GatewayConnectionUtils.java | 12 +- .../l2gw/utils/StaleVlanBindingsCleaner.java | 6 +- .../netvirt/elan/utils/ElanItmUtils.java | 4 +- .../netvirt/elan/utils/ElanUtils.java | 16 +-- .../utils/TransportZoneNotificationUtil.java | 2 +- .../l2gw/nodehandlertest/TestComparators.java | 113 +++++++++--------- .../elan/l2gw/nodehandlertest/TestUtil.java | 4 +- .../tests/ElanServiceTestBase.java | 4 +- .../elanmanager/tests/Verifications.java | 14 ++- 40 files changed, 193 insertions(+), 184 deletions(-) diff --git a/elanmanager/api/src/main/java/org/opendaylight/netvirt/elan/arp/responder/ArpResponderUtil.java b/elanmanager/api/src/main/java/org/opendaylight/netvirt/elan/arp/responder/ArpResponderUtil.java index 63eabadcf4..3a8d2197cb 100644 --- a/elanmanager/api/src/main/java/org/opendaylight/netvirt/elan/arp/responder/ArpResponderUtil.java +++ b/elanmanager/api/src/main/java/org/opendaylight/netvirt/elan/arp/responder/ArpResponderUtil.java @@ -378,7 +378,7 @@ public final class ArpResponderUtil { LOG.error("getEgressActionsForInterface: RPC Call to Get egress actions for interface {} " + "returned with Errors {}", ifName, result.getErrors()); } else { - listActions = ((GetEgressActionsForTunnelOutput) result.getResult()).getAction(); + listActions = ((GetEgressActionsForTunnelOutput) result.getResult()).nonnullAction(); } return new ArrayList(listActions.values()); } catch (InterruptedException | ExecutionException e) { diff --git a/elanmanager/api/src/main/java/org/opendaylight/netvirt/elanmanager/api/ElanHelper.java b/elanmanager/api/src/main/java/org/opendaylight/netvirt/elanmanager/api/ElanHelper.java index ca8f97ef0c..51140ba2d6 100644 --- a/elanmanager/api/src/main/java/org/opendaylight/netvirt/elanmanager/api/ElanHelper.java +++ b/elanmanager/api/src/main/java/org/opendaylight/netvirt/elanmanager/api/ElanHelper.java @@ -62,7 +62,7 @@ public final class ElanHelper { ElanDpnInterfacesList existingElanDpnInterfaces = SingleTransactionDataBroker.syncRead(broker, LogicalDatastoreType.OPERATIONAL, elanDpnInterfaceId); if (existingElanDpnInterfaces != null) { - return new ArrayList(existingElanDpnInterfaces.getDpnInterfaces().values()).stream() + return new ArrayList(existingElanDpnInterfaces.nonnullDpnInterfaces().values()).stream() .flatMap(v -> v.getInterfaces().stream()).collect(Collectors.toList()); } } catch (ExpectedDataObjectNotFoundException e) { diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/L2GwValidateCli.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/L2GwValidateCli.java index 610a3af77c..8b21f2e7f7 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/L2GwValidateCli.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/L2GwValidateCli.java @@ -155,7 +155,7 @@ public class L2GwValidateCli extends OsgiCommandSupport { InstanceIdentifier.builder(ElanInstances.class).build()).get(); if (elanInstancesOptional.isPresent() && elanInstancesOptional.get().getElanInstance() != null) { - for (ElanInstance elanInstance : elanInstancesOptional.get().getElanInstance().values()) { + for (ElanInstance elanInstance : elanInstancesOptional.get().nonnullElanInstance().values()) { elanInstanceMap.put(elanInstance.getElanInstanceName(), elanInstance); } } @@ -273,7 +273,7 @@ public class L2GwValidateCli extends OsgiCommandSupport { private static boolean containsLogicalSwitch(Node node) { if (node == null || node.augmentation(HwvtepGlobalAugmentation.class) == null || HwvtepHAUtil.isEmptyList( - new ArrayList(node.augmentation(HwvtepGlobalAugmentation.class).getLogicalSwitches().values()))) { + new ArrayList(node.augmentation(HwvtepGlobalAugmentation.class).nonnullLogicalSwitches().values()))) { return false; } return true; @@ -502,7 +502,7 @@ public class L2GwValidateCli extends OsgiCommandSupport { return false; } for (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712 - .l2gateway.attributes.devices.Interfaces deviceInterface : hwVtepDevice.getInterfaces().values()) { + .l2gateway.attributes.devices.Interfaces deviceInterface : hwVtepDevice.nonnullInterfaces().values()) { NodeId switchNodeId = HwvtepSouthboundUtils.createManagedNodeId(nodeId, hwVtepDevice.getDeviceName()); InstanceIdentifier physicalSwitchNodeIid = topoIid.child(Node.class, new NodeKey(switchNodeId)); @@ -539,7 +539,7 @@ public class L2GwValidateCli extends OsgiCommandSupport { HwvtepPhysicalPortAugmentation portAugmentation = configTerminationPoint.augmentation( HwvtepPhysicalPortAugmentation.class); if (portAugmentation == null || HwvtepHAUtil.isEmptyList( - new ArrayList(portAugmentation.getVlanBindings().values()))) { + new ArrayList(portAugmentation.nonnullVlanBindings().values()))) { pw.println("Failed to find the config vlan bindings for port " + deviceInterface.getInterfaceName() + " for node " + hwVtepDevice.getDeviceName() + " for logical switch " + logicalSwitchName + " nodeid " + nodeId.getValue()); @@ -548,7 +548,7 @@ public class L2GwValidateCli extends OsgiCommandSupport { } portAugmentation = operationalTerminationPoint.augmentation(HwvtepPhysicalPortAugmentation.class); if (portAugmentation == null || HwvtepHAUtil.isEmptyList( - new ArrayList(portAugmentation.getVlanBindings().values()))) { + new ArrayList(portAugmentation.nonnullVlanBindings().values()))) { pw.println("Failed to find the operational vlan bindings for port " + deviceInterface.getInterfaceName() + " for node " + hwVtepDevice.getDeviceName() + " for logical switch " + logicalSwitchName + " nodeid " + nodeId.getValue()); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/NetworkL2gwDeviceInfoCli.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/NetworkL2gwDeviceInfoCli.java index 6bc3fc2bfa..257da6de9f 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/NetworkL2gwDeviceInfoCli.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/cli/l2gw/NetworkL2gwDeviceInfoCli.java @@ -125,7 +125,7 @@ public class NetworkL2gwDeviceInfoCli extends OsgiCommandSupport { LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.builder(ElanInstances.class).build()); if (elanInstancesOptional.isPresent()) { - Map elans = elanInstancesOptional.get().getElanInstance(); + Map elans = elanInstancesOptional.get().nonnullElanInstance(); if (elans != null) { for (ElanInstance elan : elans.values()) { networks.add(elan.getElanInstanceName()); @@ -212,7 +212,7 @@ public class NetworkL2gwDeviceInfoCli extends OsgiCommandSupport { return; } Map remoteUcastMacs = - hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).getRemoteUcastMacs(); + hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).nonnullRemoteUcastMacs(); if (remoteUcastMacs == null || remoteUcastMacs.isEmpty()) { return; } @@ -236,7 +236,7 @@ public class NetworkL2gwDeviceInfoCli extends OsgiCommandSupport { return; } Map localUcastMacs = - hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).getLocalUcastMacs(); + hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).nonnullLocalUcastMacs(); if (localUcastMacs == null || localUcastMacs.isEmpty()) { return; } @@ -260,7 +260,7 @@ public class NetworkL2gwDeviceInfoCli extends OsgiCommandSupport { return; } Map localMcastMacs = - hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).getLocalMcastMacs(); + hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).nonnullLocalMcastMacs(); if (localMcastMacs == null || localMcastMacs.isEmpty()) { return; } @@ -287,7 +287,7 @@ public class NetworkL2gwDeviceInfoCli extends OsgiCommandSupport { return; } Map remoteMcastMacs = - hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).getRemoteMcastMacs(); + hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).nonnullRemoteMcastMacs(); if (remoteMcastMacs == null || remoteMcastMacs.isEmpty()) { return; } @@ -313,7 +313,7 @@ public class NetworkL2gwDeviceInfoCli extends OsgiCommandSupport { if (psNode == null) { return; } - Map terminationPoints = psNode.getTerminationPoint(); + Map terminationPoints = psNode.nonnullTerminationPoint(); if (terminationPoints == null || terminationPoints.isEmpty()) { return; } @@ -357,7 +357,8 @@ public class NetworkL2gwDeviceInfoCli extends OsgiCommandSupport { Node getPSnode(Node hwvtepNode, LogicalDatastoreType datastoreType) throws ExecutionException, InterruptedException { if (hwvtepNode.augmentation(HwvtepGlobalAugmentation.class) != null) { - Map switches = hwvtepNode.augmentation(HwvtepGlobalAugmentation.class).getSwitches(); + Map switches = hwvtepNode.augmentation(HwvtepGlobalAugmentation.class) + .nonnullSwitches(); if (switches != null) { return HwvtepUtils.getHwVtepNode(dataBroker, datastoreType, switches.values().iterator().next().getSwitchRef().getValue().firstKeyOf(Node.class).getNodeId()); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/evpn/utils/EvpnMacVrfUtils.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/evpn/utils/EvpnMacVrfUtils.java index 9a5b263b4d..04d11b51c0 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/evpn/utils/EvpnMacVrfUtils.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/evpn/utils/EvpnMacVrfUtils.java @@ -134,7 +134,7 @@ public class EvpnMacVrfUtils { if (!vrfTablesOptional.isPresent()) { return null; } - Map keyMacVrfEntryMap = vrfTablesOptional.get().getMacVrfEntry(); + Map keyMacVrfEntryMap = vrfTablesOptional.get().nonnullMacVrfEntry(); if (keyMacVrfEntryMap == null || keyMacVrfEntryMap.isEmpty()) { return null; } @@ -170,7 +170,7 @@ public class EvpnMacVrfUtils { List dpnInterfaceLists = elanUtils.getElanDPNByName(elanName); if (checkEvpnAttachedToNet(elanName)) { //TODO(Riyaz) : Check if accessing first nexthop address is right solution - String nexthopIP = new ArrayList(macVrfEntry.getRoutePaths().values()) + String nexthopIP = new ArrayList(macVrfEntry.nonnullRoutePaths().values()) .get(0).getNexthopAddress(); IpAddress ipAddress = new IpAddress(new Ipv4Address(nexthopIP)); Uint32 elanTag = getElanTagByMacvrfiid(instanceIdentifier); @@ -209,7 +209,8 @@ public class EvpnMacVrfUtils { //if (checkEvpnAttachedToNet(elanName)) { //TODO(Riyaz) : Check if accessing first nexthop address is right - String nexthopIP = new ArrayList(macVrfEntry.getRoutePaths().values()).get(0).getNexthopAddress(); + String nexthopIP = new ArrayList(macVrfEntry.nonnullRoutePaths().values()) + .get(0).getNexthopAddress(); IpAddress ipAddress = new IpAddress(new Ipv4Address(nexthopIP)); Uint32 elanTag = getElanTagByMacvrfiid(instanceIdentifier); if (elanTag == null) { @@ -276,7 +277,7 @@ public class EvpnMacVrfUtils { LOG.debug("RoutePaths is null or empty for macvrfentry {}", macVrfEntry); return null; } - return new ArrayList(macVrfEntry.getRoutePaths().values()).get(0).getNexthopAddress(); + return new ArrayList(macVrfEntry.nonnullRoutePaths().values()).get(0).getNexthopAddress(); } public void removeEvpnDmacFlowOnDetach(InstanceIdentifier instanceIdentifier, MacVrfEntry macVrfEntry, diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.java index 6c94585f8e..4042747e72 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanBridgeManager.java @@ -349,7 +349,7 @@ public class ElanBridgeManager { if (bridgeAug != null) { DatapathId dpId = bridgeAug.getDatapathId(); if (dpId != null) { - otherConfigs = new ArrayList<>(bridgeAug.getBridgeOtherConfigs().values()); + otherConfigs = new ArrayList<>(bridgeAug.nonnullBridgeOtherConfigs().values()); if (otherConfigs == null) { otherConfigs = Lists.newArrayList(); } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInterfaceManager.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInterfaceManager.java index 4d12f379e8..c4ecb733e7 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInterfaceManager.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInterfaceManager.java @@ -438,7 +438,8 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener existingMacEntries = existingElanInterfaceMac.get().getMacEntry(); + Map existingMacEntries = + existingElanInterfaceMac.get().nonnullMacEntry(); if (existingMacEntries != null) { List macAddresses = new ArrayList<>(); for (MacEntry macEntry : existingMacEntries.values()) { @@ -468,7 +469,7 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener macEntries = existingElanInterfaceMac.get().getMacEntry(); + Map macEntries = existingElanInterfaceMac.get().nonnullMacEntry(); if (macEntries != null) { for (MacEntry macEntry : macEntries.values()) { PhysAddress macAddress = macEntry.getMacAddress(); @@ -530,7 +531,7 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener(macs.getMacEntry().values())) { + for (MacEntry mac : new ArrayList(macs.nonnullMacEntry().values())) { removeTheMacFlowInTheDPN(dpId, elanTag, mac, confTx); removeEtreeMacFlowInTheDPN(dpId, elanTag, mac, confTx); } @@ -583,9 +584,9 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener originalStaticMacEntries = new ArrayList(original - .getStaticMacEntries().values()); + .nonnullStaticMacEntries().values()); List updatedStaticMacEntries = new ArrayList(update - .getStaticMacEntries().values()); + .nonnullStaticMacEntries().values()); List deletedEntries = ElanUtils.diffOf(originalStaticMacEntries, updatedStaticMacEntries); List updatedEntries = ElanUtils.diffOf(updatedStaticMacEntries, originalStaticMacEntries); @@ -687,7 +688,7 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener dpnInterfaceLists = null; if (elanDpnInterfacesList != null) { - dpnInterfaceLists = new ArrayList(elanDpnInterfacesList.getDpnInterfaces().values()); + dpnInterfaceLists = new ArrayList(elanDpnInterfacesList.nonnullDpnInterfaces().values()); } if (dpnInterfaceLists != null && !dpnInterfaceLists.isEmpty()) { Uint64 dstDpId = interfaceInfo.getDpId(); @@ -865,7 +866,8 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener staticMacEntriesList = elanInterface.getStaticMacEntries(); + Map staticMacEntriesList = + elanInterface.nonnullStaticMacEntries(); List staticMacAddresses = Lists.newArrayList(); if (ElanUtils.isNotEmpty(staticMacEntriesList.values())) { @@ -1149,7 +1151,7 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener macEntries = elanInterfaceMac.getMacEntry(); + Map macEntries = elanInterfaceMac.nonnullMacEntry(); return Collections.singletonList(ElanUtils.waitForTransactionToComplete( txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { for (MacEntry macEntry : macEntries.values()) { @@ -1620,7 +1622,7 @@ public class ElanInterfaceManager extends AbstractAsyncDataTreeChangeListener dpnInterfaces = elanDpns.getDpnInterfaces(); + Map dpnInterfaces = elanDpns.nonnullDpnInterfaces(); if (dpnInterfaces == null) { continue; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanServiceProvider.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanServiceProvider.java index d62503d8d6..300dad5e14 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanServiceProvider.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanServiceProvider.java @@ -395,7 +395,7 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi ElanInterfaceMac elanInterfaceMac = elanUtils.getElanInterfaceMacByInterfaceName(elanInterface); if (elanInterfaceMac != null && elanInterfaceMac.getMacEntry() != null && elanInterfaceMac.getMacEntry().size() > 0) { - macAddress.addAll(elanInterfaceMac.getMacEntry().values()); + macAddress.addAll(elanInterfaceMac.nonnullMacEntry().values()); } } } @@ -415,7 +415,7 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi for (String elanInterface : elanInterfaces) { ElanInterfaceMac elanInterfaceMac = elanUtils.getElanInterfaceMacByInterfaceName(elanInterface); if (elanInterfaceMac.getMacEntry() != null && elanInterfaceMac.getMacEntry().size() > 0) { - Map macEntries = elanInterfaceMac.getMacEntry(); + Map macEntries = elanInterfaceMac.nonnullMacEntry(); for (MacEntry macEntry : macEntries.values()) { deleteStaticMacAddress(elanInterface, macEntry.getMacAddress().getValue()); } @@ -435,7 +435,7 @@ public class ElanServiceProvider extends AbstractLifecycle implements IElanServi InstanceIdentifier elanInstancesIdentifier = InstanceIdentifier.builder(ElanInstances.class) .build(); return new ArrayList<>(ElanUtils.read(broker, LogicalDatastoreType.CONFIGURATION, elanInstancesIdentifier).map( - ElanInstances::getElanInstance).orElse(emptyMap()).values()); + ElanInstances::nonnullElanInstance).orElse(emptyMap()).values()); } @Override diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/VpnDpnToTransportZoneListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/VpnDpnToTransportZoneListener.java index b7e52d4709..e839effec9 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/VpnDpnToTransportZoneListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/VpnDpnToTransportZoneListener.java @@ -82,11 +82,11 @@ public class VpnDpnToTransportZoneListener boolean shouldCreateVtep; if (original.getVpnInterfaces() != null && !original.getVpnInterfaces().isEmpty()) { shouldCreateVtep = transportZoneNotificationUtil - .shouldCreateVtep(update.getVpnInterfaces().values().stream() - .filter(vi -> !original.getVpnInterfaces().values().contains(vi)).collect(Collectors.toList())); + .shouldCreateVtep(update.nonnullVpnInterfaces().values().stream() + .filter(vi -> !original.nonnullVpnInterfaces().values().contains(vi)).collect(Collectors.toList())); } else { shouldCreateVtep = transportZoneNotificationUtil.shouldCreateVtep( - new ArrayList<>(update.getVpnInterfaces().values())); + new ArrayList<>(update.nonnullVpnInterfaces().values())); } if (shouldCreateVtep) { @@ -103,7 +103,7 @@ public class VpnDpnToTransportZoneListener LOG.debug("Vpn dpn {} add detected, updating transport zones", add.getDpnId()); boolean shouldCreateVtep = transportZoneNotificationUtil.shouldCreateVtep( - new ArrayList<>(add.getVpnInterfaces().values())); + new ArrayList<>(add.nonnullVpnInterfaces().values())); if (shouldCreateVtep) { String vrfId = identifier.firstKeyOf(VpnInstanceOpDataEntry.class).getVrfId(); transportZoneNotificationUtil.updateTransportZone(vrfId, add.getDpnId()); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java index 3862bb65c9..0c3602b75f 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/HwvtepHAUtil.java @@ -295,9 +295,9 @@ public final class HwvtepHAUtil { } HwvtepGlobalAugmentation globalAugmentation = node.augmentation(HwvtepGlobalAugmentation.class); if (globalAugmentation != null) { - List managers = new ArrayList(globalAugmentation.getManagers().values()); + List managers = new ArrayList(globalAugmentation.nonnullManagers().values()); if (managers != null && !managers.isEmpty() && managers.get(0).getManagerOtherConfigs() != null) { - for (ManagerOtherConfigs configs : managers.get(0).getManagerOtherConfigs().values()) { + for (ManagerOtherConfigs configs : managers.get(0).nonnullManagerOtherConfigs().values()) { if (HA_ID.equals(configs.getOtherConfigKey())) { return configs.getOtherConfigValue(); } @@ -322,11 +322,11 @@ public final class HwvtepHAUtil { haGlobalConfigNodeOptional.get().augmentation(HwvtepGlobalAugmentation.class); if (augmentation != null && augmentation.getManagers() != null && augmentation.getManagers().size() > 0) { - Managers managers = new ArrayList(augmentation.getManagers().values()).get(0); + Managers managers = new ArrayList(augmentation.nonnullManagers().values()).get(0); if (null == managers.getManagerOtherConfigs()) { return childNodeIds; } - for (ManagerOtherConfigs otherConfigs : managers.getManagerOtherConfigs().values()) { + for (ManagerOtherConfigs otherConfigs : managers.nonnullManagerOtherConfigs().values()) { if (HA_CHILDREN.equals(otherConfigs.getOtherConfigKey())) { String nodeIdsVal = otherConfigs.getOtherConfigValue(); if (nodeIdsVal != null) { @@ -417,7 +417,7 @@ public final class HwvtepHAUtil { if (!switchesAlreadyPresent) { HwvtepGlobalAugmentation augmentation = childNode.augmentation(HwvtepGlobalAugmentation.class); if (augmentation != null && augmentation.getSwitches() != null) { - List src = new ArrayList(augmentation.getSwitches().values()); + List src = new ArrayList(augmentation.nonnullSwitches().values()); if (src != null && src.size() > 0) { psList.add(new SwitchesCmd().transform(haNodePath, src.get(0))); } @@ -473,7 +473,7 @@ public final class HwvtepHAUtil { return; } HashMap,Boolean> deleted = new HashMap<>(); - Map switches = globalAugmentation.getSwitches(); + Map switches = globalAugmentation.nonnullSwitches(); if (switches != null) { for (Switches switche : switches.values()) { InstanceIdentifier psId = (InstanceIdentifier)switche.getSwitchRef().getValue(); @@ -487,7 +487,7 @@ public final class HwvtepHAUtil { if (topologyOptional.isPresent()) { Topology topology = topologyOptional.get(); if (topology.getNode() != null) { - for (Node psNode : topology.getNode().values()) { + for (Node psNode : topology.nonnullNode().values()) { PhysicalSwitchAugmentation ps = psNode.augmentation(PhysicalSwitchAugmentation.class); if (ps != null) { InstanceIdentifier iid = (InstanceIdentifier)ps.getManagedBy().getValue(); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalMcastCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalMcastCmd.java index 0695d5d18c..3c20df7bd7 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalMcastCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalMcastCmd.java @@ -36,7 +36,7 @@ public class LocalMcastCmd @Nullable public List getData(HwvtepGlobalAugmentation node) { if (node != null && node.getLocalMcastMacs() != null) { - return new ArrayList(node.getLocalMcastMacs().values()); + return new ArrayList(node.nonnullLocalMcastMacs().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalUcastCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalUcastCmd.java index 0a7cd9c4d3..1050431cab 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalUcastCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LocalUcastCmd.java @@ -35,7 +35,7 @@ public class LocalUcastCmd @Nullable public List getData(HwvtepGlobalAugmentation node) { if (node != null && node.getLocalUcastMacs() != null) { - return new ArrayList(node.getLocalUcastMacs().values()); + return new ArrayList(node.nonnullLocalUcastMacs().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LogicalSwitchesCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LogicalSwitchesCmd.java index fd41e14eaa..91dc8160cd 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LogicalSwitchesCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/LogicalSwitchesCmd.java @@ -29,7 +29,7 @@ public class LogicalSwitchesCmd extends MergeCommand getData(HwvtepGlobalAugmentation node) { if (node != null && node.getLogicalSwitches() != null) { - return new ArrayList(node.getLogicalSwitches().values()); + return new ArrayList(node.nonnullLogicalSwitches().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/PhysicalLocatorCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/PhysicalLocatorCmd.java index 26a8124d30..68cb859731 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/PhysicalLocatorCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/PhysicalLocatorCmd.java @@ -27,7 +27,7 @@ public class PhysicalLocatorCmd extends MergeCommand getData(Node node) { if (node != null && node.getTerminationPoint() != null) { - return new ArrayList(node.getTerminationPoint().values()); + return new ArrayList(node.nonnullTerminationPoint().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteMcastCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteMcastCmd.java index 3b53aca5fc..bd3aec2ad9 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteMcastCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteMcastCmd.java @@ -35,8 +35,8 @@ public class RemoteMcastCmd extends @Override @Nullable public List getData(HwvtepGlobalAugmentation augmentation) { - if (augmentation != null && augmentation.getRemoteMcastMacs() != null) { - return new ArrayList(augmentation.getRemoteMcastMacs().values()); + if (augmentation != null && augmentation.nonnullRemoteMcastMacs() != null) { + return new ArrayList(augmentation.nonnullRemoteMcastMacs().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteUcastCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteUcastCmd.java index ec5d3db5e8..d6edb66489 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteUcastCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/RemoteUcastCmd.java @@ -33,8 +33,8 @@ public class RemoteUcastCmd extends MergeCommand getData(HwvtepGlobalAugmentation node) { - if (node != null && node.getRemoteUcastMacs() != null) { - return new ArrayList(node.getRemoteUcastMacs().values()); + if (node != null && node.nonnullRemoteUcastMacs() != null) { + return new ArrayList(node.nonnullRemoteUcastMacs().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/SwitchesCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/SwitchesCmd.java index 6d9bdce37b..8e7b7e2b3a 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/SwitchesCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/SwitchesCmd.java @@ -28,8 +28,8 @@ public class SwitchesCmd extends MergeCommand getData(HwvtepGlobalAugmentation node) { - if (node != null && node.getSwitches() != null) { - return new ArrayList(node.getSwitches().values()); + if (node != null && node.nonnullSwitches() != null) { + return new ArrayList(node.nonnullSwitches().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TerminationPointCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TerminationPointCmd.java index 0d57aee5b4..8f2bd38f6d 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TerminationPointCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TerminationPointCmd.java @@ -37,8 +37,8 @@ public class TerminationPointCmd extends MergeCommand getData(Node node) { - if (node != null && node.getTerminationPoint() != null) { - return new ArrayList(node.getTerminationPoint().values()); + if (node != null && node.nonnullTerminationPoint() != null) { + return new ArrayList(node.nonnullTerminationPoint().values()); } return null; } @@ -72,7 +72,7 @@ public class TerminationPointCmd extends MergeCommand 0) { - tpAugmentationBuilder.setVlanBindings(augmentation.getVlanBindings().values().stream().map( + tpAugmentationBuilder.setVlanBindings(augmentation.nonnullVlanBindings().values().stream().map( vlanBindings -> { VlanBindingsBuilder vlanBindingsBuilder = new VlanBindingsBuilder(vlanBindings); vlanBindingsBuilder.setLogicalSwitchRef( @@ -109,10 +109,10 @@ public class TerminationPointCmd extends MergeCommand up - = updatedAugmentation != null ? new ArrayList<>(updatedAugmentation.getVlanBindings().values()) : null; - List or - = origAugmentation != null ? new ArrayList<>(origAugmentation.getVlanBindings().values()) : null; + List up = updatedAugmentation != null + ? new ArrayList<>(updatedAugmentation.nonnullVlanBindings().values()) : null; + List or = origAugmentation != null + ? new ArrayList<>(origAugmentation.nonnullVlanBindings().values()) : null; if (!areSameSize(up, or)) { return false; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelCmd.java index 173bcf3e98..be4a842f90 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelCmd.java @@ -31,8 +31,8 @@ public class TunnelCmd extends MergeCommand getData(PhysicalSwitchAugmentation node) { - if (node != null && node.getTunnels() != null) { - return new ArrayList(node.getTunnels().values()); + if (node != null && node.nonnullTunnels() != null) { + return new ArrayList(node.nonnullTunnels().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelIpCmd.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelIpCmd.java index b3be62e396..b4602a6900 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelIpCmd.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/commands/TunnelIpCmd.java @@ -27,8 +27,8 @@ public class TunnelIpCmd extends @Override @Nullable public List getData(PhysicalSwitchAugmentation node) { - if (node != null && node.getTunnelIps() != null) { - return new ArrayList(node.getTunnelIps().values()); + if (node != null && node.nonnullTunnelIps() != null) { + return new ArrayList(node.nonnullTunnelIps().values()); } return null; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeConnectedHandler.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeConnectedHandler.java index 3d94427aab..6684285b65 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeConnectedHandler.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/handlers/NodeConnectedHandler.java @@ -117,7 +117,7 @@ public class NodeConnectedHandler { LOG.info("HA ps node not present cleanup child {}" , childNode); HwvtepGlobalAugmentation augmentation = childNode.augmentation(HwvtepGlobalAugmentation.class); if (augmentation != null) { - Map switches = augmentation.getSwitches(); + Map switches = augmentation.nonnullSwitches(); if (switches != null) { for (Switches ps : switches.values()) { HwvtepHAUtil.deleteNodeIfPresent(tx, ps.getSwitchRef().getValue()); @@ -144,7 +144,7 @@ public class NodeConnectedHandler { return; } Map keySwitchesMap - = childGlobalNode.augmentation(HwvtepGlobalAugmentation.class).getSwitches(); + = childGlobalNode.augmentation(HwvtepGlobalAugmentation.class).nonnullSwitches(); if (keySwitchesMap == null) { return; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpNodeListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpNodeListener.java index 038c732013..08d2785fbf 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpNodeListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HAOpNodeListener.java @@ -236,13 +236,14 @@ public class HAOpNodeListener extends HwvtepNodeBaseListener implem String childGlobalNodeId = childNode.getNodeId().getValue(); List childPsIids = new ArrayList<>(); HwvtepGlobalAugmentation hwvtepGlobalAugmentation = childNode.augmentation(HwvtepGlobalAugmentation.class); - if (hwvtepGlobalAugmentation == null || HwvtepHAUtil.isEmpty(hwvtepGlobalAugmentation.getSwitches().values())) { + if (hwvtepGlobalAugmentation == null + || HwvtepHAUtil.isEmpty(hwvtepGlobalAugmentation.nonnullSwitches().values())) { haOpClusteredListener.getConnectedNodes() .stream() .filter((connectedIid) -> IS_PS_CHILD_TO_GLOBAL_NODE.test(childGlobalNodeId, connectedIid)) .forEach(childPsIids::add); } else { - hwvtepGlobalAugmentation.getSwitches().values().forEach( + hwvtepGlobalAugmentation.nonnullSwitches().values().forEach( (switches) -> childPsIids.add(switches.getSwitchRef().getValue())); } if (childPsIids.isEmpty()) { diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeBaseListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeBaseListener.java index 391ff14140..616003df1d 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeBaseListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/HwvtepNodeBaseListener.java @@ -126,10 +126,10 @@ public abstract class HwvtepNodeBaseListener List up = null; List be = null; if (updatedAugmentaion != null) { - up = new ArrayList(updatedAugmentaion.getManagers().values()); + up = new ArrayList(updatedAugmentaion.nonnullManagers().values()); } if (beforeAugmentaion != null) { - be = new ArrayList(beforeAugmentaion.getManagers().values()); + be = new ArrayList(beforeAugmentaion.nonnullManagers().values()); } if (up != null) { diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/ManagerListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/ManagerListener.java index 19d0cbadfd..c2758d0579 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/ManagerListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/ha/listeners/ManagerListener.java @@ -67,7 +67,7 @@ public final class ManagerListener extends AbstractClusteredAsyncDataTreeChangeL InstanceIdentifier parent = key.firstIdentifierOf(Node.class); if (managers.key().getTarget().getValue().contains(HwvtepHAUtil.MANAGER_KEY) && managers.getManagerOtherConfigs() != null) { - managers.getManagerOtherConfigs().values().stream() + managers.nonnullManagerOtherConfigs().values().stream() .filter(otherConfig -> otherConfig.key().getOtherConfigKey().contains(HwvtepHAUtil.HA_CHILDREN)) .flatMap(otherConfig -> Arrays.stream(otherConfig.getOtherConfigValue().split(","))) .map(HwvtepHAUtil::convertToInstanceIdentifier) diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/ElanInstanceEntityOwnershipListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/ElanInstanceEntityOwnershipListener.java index e53d8f3444..296a275a68 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/ElanInstanceEntityOwnershipListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/ElanInstanceEntityOwnershipListener.java @@ -88,9 +88,9 @@ public class ElanInstanceEntityOwnershipListener implements EntityOwnershipListe elanDpnInterfacesInstanceIdentifier); if (optional.isPresent() && optional.get().getElanDpnInterfacesList() != null) { LOG.debug("Found elan dpn interfaces list"); - optional.get().getElanDpnInterfacesList().values().forEach(elanDpnInterfacesList -> { + optional.get().nonnullElanDpnInterfacesList().values().forEach(elanDpnInterfacesList -> { Map dpnInterfaces - = elanDpnInterfacesList.getDpnInterfaces(); + = elanDpnInterfacesList.nonnullDpnInterfaces(); InstanceIdentifier parentIid = InstanceIdentifier .builder(ElanDpnInterfaces.class).child(ElanDpnInterfacesList.class, new ElanDpnInterfacesListKey(elanDpnInterfacesList diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepPhysicalSwitchListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepPhysicalSwitchListener.java index 8e0baa8d98..6ea9274691 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepPhysicalSwitchListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/HwvtepPhysicalSwitchListener.java @@ -82,7 +82,7 @@ public class HwvtepPhysicalSwitchListener globalIid.firstKeyOf(Node.class).getNodeId().getValue()); private static final Predicate TUNNEL_IP_AVAILABLE = - phySwitch -> !HwvtepHAUtil.isEmpty(phySwitch.getTunnelIps().values()); + phySwitch -> !HwvtepHAUtil.isEmpty(phySwitch.nonnullTunnelIps().values()); private static final Predicate TUNNEL_IP_NOT_AVAILABLE = TUNNEL_IP_AVAILABLE.negate(); @@ -319,7 +319,7 @@ public class HwvtepPhysicalSwitchListener l2GwDevice.setConnected(true); l2GwDevice.setHwvtepNodeId(globalNodeId); - Map tunnelIps = phySwitchAdded.getTunnelIps(); + Map tunnelIps = phySwitchAdded.nonnullTunnelIps(); if (tunnelIps != null) { for (TunnelIps tunnelIp : tunnelIps.values()) { IpAddress tunnelIpAddr = tunnelIp.getTunnelIpsKey(); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayConnectionListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayConnectionListener.java index 667bfe9aa7..bf5aceec22 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayConnectionListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayConnectionListener.java @@ -82,8 +82,8 @@ public class L2GatewayConnectionListener extends AbstractClusteredAsyncDataTreeC private static final Predicate IS_HA_PARENT_NODE = (node) -> { HwvtepGlobalAugmentation augmentation = node.augmentation(HwvtepGlobalAugmentation.class); - if (augmentation != null && augmentation.getManagers() != null) { - return augmentation.getManagers().values().stream().anyMatch( + if (augmentation != null && augmentation.nonnullManagers() != null) { + return augmentation.nonnullManagers().values().stream().anyMatch( manager -> manager.key().getTarget().getValue().equals(HwvtepHAUtil.MANAGER_KEY)); } return false; @@ -187,7 +187,7 @@ public class L2GatewayConnectionListener extends AbstractClusteredAsyncDataTreeC @Override public void onSuccess(Optional topologyOptional) { if (topologyOptional != null && topologyOptional.isPresent()) { - loadL2GwDeviceCache(new ArrayList(topologyOptional.get().getNode().values())); + loadL2GwDeviceCache(new ArrayList(topologyOptional.get().nonnullNode().values())); } registerListener(); } @@ -256,7 +256,7 @@ public class L2GatewayConnectionListener extends AbstractClusteredAsyncDataTreeC } if (optional.isPresent() && optional.get().getL2gatewayConnection() != null) { LOG.trace("Found some connections to fill in l2gw connection cache"); - new ArrayList<>(optional.get().getL2gatewayConnection().values()) + new ArrayList<>(optional.get().nonnullL2gatewayConnection().values()) .forEach(connection -> { add(parentIid.child(L2gatewayConnection.class, connection.key()), connection); }); @@ -271,7 +271,8 @@ public class L2GatewayConnectionListener extends AbstractClusteredAsyncDataTreeC l2GwDevice.setHwvtepNodeId(globalNode.getNodeId().getValue()); List tunnelIps = psNode.augmentation(PhysicalSwitchAugmentation.class) != null - ? new ArrayList<>(psNode.augmentation(PhysicalSwitchAugmentation.class).getTunnelIps().values()) : null; + ? new ArrayList<>(psNode.augmentation(PhysicalSwitchAugmentation.class) + .nonnullTunnelIps().values()) : null; if (tunnelIps != null) { for (TunnelIps tunnelIp : tunnelIps) { IpAddress tunnelIpAddr = tunnelIp.getTunnelIpsKey(); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayListener.java index f0a01e055f..891e2f4408 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/L2GatewayListener.java @@ -168,7 +168,7 @@ public class L2GatewayListener extends AbstractClusteredAsyncDataTreeChangeListe jobCoordinator.enqueueJob("l2gw.update", () -> { ListenableFuture future = txRunner.callWithNewReadWriteTransactionAndSubmit(CONFIGURATION, tx -> { DeviceInterfaces updatedDeviceInterfaces = new DeviceInterfaces(update); - original.getDevices().values() + original.nonnullDevices().values() .stream() .filter((originalDevice) -> originalDevice.getInterfaces() != null) .forEach((originalDevice) -> { @@ -176,7 +176,7 @@ public class L2GatewayListener extends AbstractClusteredAsyncDataTreeChangeListe L2GatewayDevice l2GwDevice = l2GatewayCache.get(deviceName); NodeId physicalSwitchNodeId = HwvtepSouthboundUtils.createManagedNodeId( new NodeId(l2GwDevice.getHwvtepNodeId()), deviceName); - originalDevice.getInterfaces().values() + originalDevice.nonnullInterfaces().values() .stream() .filter((intf) -> !updatedDeviceInterfaces.containsInterface( deviceName, intf.getInterfaceName())) @@ -287,11 +287,11 @@ public class L2GatewayListener extends AbstractClusteredAsyncDataTreeChangeListe Map> deviceInterfacesMap = new HashMap<>(); DeviceInterfaces(L2gateway l2gateway) { - if (l2gateway.getDevices() != null) { - l2gateway.getDevices().values().forEach((device) -> { + if (l2gateway.nonnullDevices() != null) { + l2gateway.nonnullDevices().values().forEach((device) -> { deviceInterfacesMap.putIfAbsent(device.getDeviceName(), new HashMap<>()); - if (device.getInterfaces() != null) { - device.getInterfaces().values().forEach((intf) -> + if (device.nonnullInterfaces() != null) { + device.nonnullInterfaces().values().forEach((intf) -> deviceInterfacesMap.get(device.getDeviceName()).put(intf.getInterfaceName(), intf)); } }); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/LocalUcastMacListener.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/LocalUcastMacListener.java index 380e593806..c0680d171c 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/LocalUcastMacListener.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/listeners/LocalUcastMacListener.java @@ -250,8 +250,8 @@ public class LocalUcastMacListener extends ChildListener getMacs(@Nullable Node node) { if (node != null) { HwvtepGlobalAugmentation augmentation = node.augmentation(HwvtepGlobalAugmentation.class); - if (augmentation != null && augmentation.getLocalUcastMacs() != null) { - return new HashSet<>(augmentation.getLocalUcastMacs().values()); + if (augmentation != null && augmentation.nonnullLocalUcastMacs() != null) { + return new HashSet<>(augmentation.nonnullLocalUcastMacs().values()); } } return Collections.emptySet(); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayMulticastUtils.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayMulticastUtils.java index dd289aa192..ba232cc6dc 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayMulticastUtils.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayMulticastUtils.java @@ -416,7 +416,7 @@ public class ElanL2GatewayMulticastUtils { if (operElanInstance == null) { return emptyList(); } - Map teps = operElanInstance.getExternalTeps(); + Map teps = operElanInstance.nonnullExternalTeps(); if (teps == null || teps.isEmpty()) { return emptyList(); } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayUtils.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayUtils.java index 91f9b88533..06bc8b7cf9 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayUtils.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/ElanL2GatewayUtils.java @@ -183,8 +183,8 @@ public class ElanL2GatewayUtils { List result = new ArrayList<>(); for (String interfaceName : lstElanInterfaceNames) { ElanInterfaceMac elanInterfaceMac = ElanUtils.getElanInterfaceMacByInterfaceName(broker, interfaceName); - if (elanInterfaceMac != null && elanInterfaceMac.getMacEntry() != null) { - for (MacEntry macEntry : new ArrayList<>(elanInterfaceMac.getMacEntry().values())) { + if (elanInterfaceMac != null && elanInterfaceMac.nonnullMacEntry() != null) { + for (MacEntry macEntry : new ArrayList<>(elanInterfaceMac.nonnullMacEntry().values())) { result.add(macEntry.getMacAddress()); } } @@ -527,9 +527,9 @@ public class ElanL2GatewayUtils { if (configNode != null && configNode.isPresent()) { HwvtepGlobalAugmentation augmentation = configNode.get().augmentation( HwvtepGlobalAugmentation.class); - if (augmentation != null && augmentation.getLocalUcastMacs() != null) { + if (augmentation != null && augmentation.nonnullLocalUcastMacs() != null) { macs.addAll(new ArrayList<>(augmentation - .getLocalUcastMacs().values()).stream() + .nonnullLocalUcastMacs().values()).stream() .filter(mac -> getLogicalSwitchName(mac).equals(elanName)) .map(HwvtepMacTableGenericAttributes::getMacEntryKey) .collect(Collectors.toSet())); @@ -621,7 +621,7 @@ public class ElanL2GatewayUtils { if (hwvtepNode != null) { Map keyRemoteUcastMacsMap = hwvtepNode.augmentation(HwvtepGlobalAugmentation.class) - .getRemoteUcastMacs(); + .nonnullRemoteUcastMacs(); if (keyRemoteUcastMacsMap != null && !keyRemoteUcastMacsMap.isEmpty()) { // Filtering keyRemoteUcastMacsMap based on the logical switch and // forming a list of MacAddress @@ -739,7 +739,7 @@ public class ElanL2GatewayUtils { return lstRemoteUcastMacs; } - for (MacEntry macEntry : new ArrayList<>(macTable.getMacEntry().values())) { + for (MacEntry macEntry : new ArrayList<>(macTable.nonnullMacEntry().values())) { Uint64 dpnId = getDpidFromInterface(macEntry.getInterface()); if (dpnId == null) { LOG.error("DPN ID not found for interface {}", macEntry.getInterface()); @@ -811,7 +811,7 @@ public class ElanL2GatewayUtils { return txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { for (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712 .l2gateway.attributes.devices.Interfaces deviceInterface : new ArrayList<>(hwVtepDevice - .getInterfaces().values())) { + .nonnullInterfaces().values())) { //Removed the check for checking terminationPoint present in OP or not //for coniguring vlan bindings //As we are not any more dependent on it , plugin takes care of this @@ -878,7 +878,7 @@ public class ElanL2GatewayUtils { return txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> { for (org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l2gateways.rev150712 .l2gateway.attributes.devices.Interfaces deviceInterface : new ArrayList<>(hwVtepDevice - .getInterfaces().values())) { + .nonnullInterfaces().values())) { String phyPortName = deviceInterface.getInterfaceName(); if (deviceInterface.getSegmentationIds() != null && !deviceInterface.getSegmentationIds().isEmpty()) { for (Integer vlanId : deviceInterface.getSegmentationIds()) { @@ -997,7 +997,7 @@ public class ElanL2GatewayUtils { String psNodeId = globalNodeId + HwvtepHAUtil.PHYSICALSWITCH + psName; tzonesoptional.get().nonnullTransportZone().stream() .filter(zone -> zone.getDeviceVteps() != null) - .flatMap(zone -> new ArrayList<>(zone.getDeviceVteps().values()).stream()) + .flatMap(zone -> new ArrayList<>(zone.nonnullDeviceVteps().values()).stream()) .filter(deviceVteps -> Objects.equals(getPsName(deviceVteps), psName)) //get device with same ps name .filter(deviceVteps -> !Objects.equals(psNodeId, deviceVteps.getNodeId()) || !Objects.equals(tunnelIp, deviceVteps.getIpAddress()))//node id or tunnel ip is changed @@ -1144,7 +1144,7 @@ public class ElanL2GatewayUtils { if (configNode.isPresent()) { HwvtepGlobalAugmentation augmentation = configNode.get().augmentation(HwvtepGlobalAugmentation.class); if (augmentation != null && augmentation.getLocalUcastMacs() != null) { - macs.addAll(augmentation.getLocalUcastMacs().values().stream() + macs.addAll(augmentation.nonnullLocalUcastMacs().values().stream() .filter(mac -> getLogicalSwitchName(mac).equals(elanName)) .map(HwvtepMacTableGenericAttributes::getMacEntryKey) .collect(Collectors.toSet())); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/L2GatewayConnectionUtils.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/L2GatewayConnectionUtils.java index 663b78a0bf..f91d1986b0 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/L2GatewayConnectionUtils.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/L2GatewayConnectionUtils.java @@ -148,7 +148,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable { InstanceIdentifier inst = InstanceIdentifier.create(Neutron.class).child(L2gateways.class); try { return new ArrayList<>((SingleTransactionDataBroker.syncReadOptional(broker, - LogicalDatastoreType.CONFIGURATION, inst).map(L2gateways::getL2gateway) + LogicalDatastoreType.CONFIGURATION, inst).map(L2gateways::nonnullL2gateway) .orElse(emptyMap())).values()); } catch (ExecutionException | InterruptedException e) { LOG.error("getNeutronL2gateway: Exception while reading L2gateway DS", e); @@ -162,7 +162,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable { .child(L2gatewayConnections.class); try { return new ArrayList<>((SingleTransactionDataBroker.syncReadOptional(broker, - LogicalDatastoreType.CONFIGURATION, inst).map(L2gatewayConnections::getL2gatewayConnection) + LogicalDatastoreType.CONFIGURATION, inst).map(L2gatewayConnections::nonnullL2gatewayConnection) .orElse(emptyMap())).values()); } catch (ExecutionException | InterruptedException e) { LOG.error("getNeutronL2gateway: Exception while reading L2gateway DS", e); @@ -278,8 +278,8 @@ public class L2GatewayConnectionUtils implements AutoCloseable { if (l2Gateway == null) { LOG.error("Failed to find the l2gateway for the connection {}", input.getUuid()); return; - } else if (l2Gateway.getDevices() != null) { - l2gwDevicesToBeDeleted.addAll(l2Gateway.getDevices().values()); + } else if (l2Gateway.nonnullDevices() != null) { + l2gwDevicesToBeDeleted.addAll(l2Gateway.nonnullDevices().values()); } } for (Devices l2Device : l2gwDevicesToBeDeleted) { @@ -318,7 +318,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable { String elanName = elanInstance.getElanInstanceName(); Integer defaultVlan = input.getSegmentId(); Uuid l2GwConnId = input.key().getUuid(); - Map l2Devices = l2Gateway.getDevices(); + Map l2Devices = l2Gateway.nonnullDevices(); LOG.trace("Associating ELAN {} with L2Gw Conn Id {} having below L2Gw devices {}", elanName, l2GwConnId, l2Devices); @@ -408,7 +408,7 @@ public class L2GatewayConnectionUtils implements AutoCloseable { Node node = nodeOptional.get(); if (node.augmentation(HwvtepGlobalAugmentation.class) != null) { Map localUcastMacs = - node.augmentation(HwvtepGlobalAugmentation.class).getLocalUcastMacs(); + node.augmentation(HwvtepGlobalAugmentation.class).nonnullLocalUcastMacs(); if (localUcastMacs == null) { return; } diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/StaleVlanBindingsCleaner.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/StaleVlanBindingsCleaner.java index f5a76c9db2..48c7c2ef54 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/StaleVlanBindingsCleaner.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/l2gw/utils/StaleVlanBindingsCleaner.java @@ -159,7 +159,7 @@ public class StaleVlanBindingsCleaner { private static Map>> getVlansByLogicalSwitchOnDevice( final Node configPsNode) { - Map ports = configPsNode.getTerminationPoint(); + Map ports = configPsNode.nonnullTerminationPoint(); if (ports == null) { return Collections.emptyMap(); } @@ -167,7 +167,7 @@ public class StaleVlanBindingsCleaner { ports.values().stream() .filter(CONTAINS_VLANBINDINGS) .forEach((port) -> port.augmentation(HwvtepPhysicalPortAugmentation.class) - .getVlanBindings().values() + .nonnullVlanBindings().values() .forEach((binding) -> putVlanBindingVsLogicalSwitch(configPsNode, vlans, port, binding))); return vlans; } @@ -211,7 +211,7 @@ public class StaleVlanBindingsCleaner { return Collections.emptyList(); } return augmentation - .getLogicalSwitches().values() + .nonnullLogicalSwitches().values() .stream() .map((ls) -> ls.getHwvtepNodeName().getValue()) .collect(Collectors.toList()); diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanItmUtils.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanItmUtils.java index 0334efcf7e..1ba83a2b07 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanItmUtils.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanItmUtils.java @@ -213,7 +213,7 @@ public class ElanItmUtils { Future> egressActionsOutputItm = itmRpcService.getEgressActionsForTunnel(getEgressActInputItm); if (egressActionsOutputItm.get().isSuccessful()) { - return new ArrayList(egressActionsOutputItm.get().getResult().getAction().values()); + return new ArrayList(egressActionsOutputItm.get().getResult().nonnullAction().values()); } } else { GetEgressActionsForInterfaceInput getEgressActInput = new GetEgressActionsForInterfaceInputBuilder() @@ -221,7 +221,7 @@ public class ElanItmUtils { Future> egressActionsOutputFuture = interfaceManagerRpcService.getEgressActionsForInterface(getEgressActInput); if (egressActionsOutputFuture.get().isSuccessful()) { - return new ArrayList(egressActionsOutputFuture.get().getResult().getAction().values()); + return new ArrayList(egressActionsOutputFuture.get().getResult().nonnullAction().values()); } } } catch (Exception e) { diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanUtils.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanUtils.java index 975c12d880..9e04f6318f 100755 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanUtils.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/ElanUtils.java @@ -882,7 +882,7 @@ public class ElanUtils { InstanceIdentifier elanIdentifier = getElanDpnOperationDataPath(elanInstanceName); try { return new ArrayList((SingleTransactionDataBroker.syncReadOptional(broker, - LogicalDatastoreType.OPERATIONAL, elanIdentifier).map(ElanDpnInterfacesList::getDpnInterfaces) + LogicalDatastoreType.OPERATIONAL, elanIdentifier).map(ElanDpnInterfacesList::nonnullDpnInterfaces) .orElse(emptyMap())).values()); } catch (ExecutionException | InterruptedException e) { LOG.error("getElanDPNByName: Exception while reading elanDpnInterfaceList DS for the elan " @@ -1355,7 +1355,7 @@ public class ElanUtils { public List getAllExternalTunnels(LogicalDatastoreType datastoreType) { InstanceIdentifier iid = InstanceIdentifier.builder(ExternalTunnelList.class).build(); return new ArrayList(read(broker, datastoreType, iid).map(ExternalTunnelList - ::getExternalTunnel).orElse(Collections.emptyMap()).values()); + ::nonnullExternalTunnel).orElse(Collections.emptyMap()).values()); } public static List buildMatchesForElanTagShFlagAndDstMac(long elanTag, boolean shFlag, String macAddr) { @@ -1447,7 +1447,7 @@ public class ElanUtils { private static boolean isVxlanSegment(@Nullable ElanInstance elanInstance) { if (elanInstance != null) { - Map elanSegments = elanInstance.getElanSegments(); + Map elanSegments = elanInstance.nonnullElanSegments(); if (elanSegments != null) { for (ElanSegments segment : elanSegments.values()) { if (segment != null && segment.getSegmentType().isAssignableFrom(SegmentTypeVxlan.class) @@ -1476,7 +1476,7 @@ public class ElanUtils { && elanInstance.getSegmentationId() != null && elanInstance.getSegmentationId().longValue() != 0) { segmentationId = elanInstance.getSegmentationId(); } else { - for (ElanSegments segment: elanInstance.getElanSegments().values()) { + for (ElanSegments segment: elanInstance.nonnullElanSegments().values()) { if (segment != null && segment.getSegmentType().isAssignableFrom(SegmentTypeVxlan.class) && segment.getSegmentationId() != null && segment.getSegmentationId().longValue() != 0) { @@ -1640,7 +1640,7 @@ public class ElanUtils { if (macTable == null) { return emptyList(); } - return new ArrayList(macTable.getMacEntry().values()); + return new ArrayList(macTable.nonnullMacEntry().values()); } public boolean isTunnelInLogicalGroup(String interfaceName) { @@ -1691,7 +1691,7 @@ public class ElanUtils { Optional subnetMapsData = read(dataBroker, LogicalDatastoreType.CONFIGURATION, buildSubnetMapsWildCardPath()); if (subnetMapsData.isPresent()) { - List subnetMapList = new ArrayList<>(subnetMapsData.get().getSubnetmap().values()); + List subnetMapList = new ArrayList<>(subnetMapsData.get().nonnullSubnetmap().values()); if (subnetMapList != null && !subnetMapList.isEmpty()) { for (Subnetmap subnet : subnetMapList) { if (subnet.getNetworkId().getValue().equals(elanInstanceName)) { @@ -1738,8 +1738,8 @@ public class ElanUtils { LOG.debug("Buckets are not sent for group {}. Skipping merge operation", groupIdInfo); return; } - List newBuckets = new ArrayList(newGroup.getBuckets().getBucket().values()); - List existingBuckets = new ArrayList(existingGroup.getBucket().values()); + List newBuckets = new ArrayList(newGroup.getBuckets().nonnullBucket().values()); + List existingBuckets = new ArrayList(existingGroup.nonnullBucket().values()); Set toMergeBucketsWithoutId = new LinkedHashSet<>(); existingBuckets.stream() diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/TransportZoneNotificationUtil.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/TransportZoneNotificationUtil.java index 5ebc5ef68c..79cb1d4560 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/TransportZoneNotificationUtil.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/utils/TransportZoneNotificationUtil.java @@ -353,7 +353,7 @@ public class TransportZoneNotificationUtil { } private List getTepTransportZoneNames(TunnelEndPoints tep) { - List tzMembershipList = new ArrayList(tep.getTzMembership().values()); + List tzMembershipList = new ArrayList(tep.nonnullTzMembership().values()); if (tzMembershipList == null) { LOG.debug("No TZ membership exist for TEP ip {}", tep.getIpAddress().stringValue()); return Collections.emptyList(); diff --git a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestComparators.java b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestComparators.java index 4a8e0ab606..4e5d4b3a7d 100644 --- a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestComparators.java +++ b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestComparators.java @@ -54,7 +54,8 @@ public final class TestComparators { } public static void verifySwitches(Node globalOpNode, Node psOpNode) { - for (Switches switches : globalOpNode.augmentation(HwvtepGlobalAugmentation.class).getSwitches().values()) { + for (Switches switches : globalOpNode.augmentation(HwvtepGlobalAugmentation.class) + .nonnullSwitches().values()) { String switchValue = switches.getSwitchRef().getValue().firstKeyOf(Node.class).getNodeId().getValue(); assertEquals("Switch Name should be equal", switchValue, psOpNode.getNodeId().getValue()); } @@ -66,11 +67,11 @@ public final class TestComparators { HwvtepGlobalAugmentation haAug = dst.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getLogicalSwitches() != null ? new ArrayList(d1Aug.getLogicalSwitches().values()) - : new ArrayList<>(); + d1Aug.getLogicalSwitches() != null + ? new ArrayList(d1Aug.nonnullLogicalSwitches().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List result2 = cmd.transform(nodePath, - new ArrayList(haAug.getLogicalSwitches().values())); + new ArrayList(haAug.nonnullLogicalSwitches().values())); Set set1 = Sets.newHashSet(result1); Set set2 = Sets.newHashSet(result2); @@ -85,19 +86,19 @@ public final class TestComparators { HwvtepGlobalAugmentation haAug = ha.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getLogicalSwitches() != null ? new ArrayList(d1Aug.getLogicalSwitches().values()) - : new ArrayList<>(); + d1Aug.getLogicalSwitches() != null + ? new ArrayList(d1Aug.nonnullLogicalSwitches().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List d2Values = - d2Aug.getLogicalSwitches() != null ? new ArrayList(d2Aug.getLogicalSwitches().values()) - : new ArrayList<>(); + d2Aug.getLogicalSwitches() != null + ? new ArrayList(d2Aug.nonnullLogicalSwitches().values()) : new ArrayList<>(); List result2 = cmd.transform(nodePath, d2Values); //Merge data of both d1 and d2 logical switch info should be same as ha Set set1 = new HashSet<>(); set1.addAll(result1); set1.addAll(result2); List result = cmd.transform(nodePath, - new ArrayList(haAug.getLogicalSwitches().values())); + new ArrayList(haAug.nonnullLogicalSwitches().values())); Set set2 = Sets.newHashSet(result); assertEquals("should have equal logical switches", 0, Sets.symmetricDifference(set1, set2).size()); @@ -108,11 +109,11 @@ public final class TestComparators { HwvtepGlobalAugmentation d1Aug = src.augmentation(HwvtepGlobalAugmentation.class); HwvtepGlobalAugmentation haAug = dst.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getRemoteUcastMacs() != null ? new ArrayList(d1Aug.getRemoteUcastMacs().values()) - : new ArrayList<>(); + d1Aug.getRemoteUcastMacs() != null + ? new ArrayList(d1Aug.nonnullRemoteUcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List result2 = cmd.transform(nodePath, - new ArrayList(haAug.getRemoteUcastMacs().values())); + new ArrayList(haAug.nonnullRemoteUcastMacs().values())); RemoteUcastMacs mac1 = result1.get(0); RemoteUcastMacs mac2 = result2.get(0); @@ -130,19 +131,19 @@ public final class TestComparators { HwvtepGlobalAugmentation haAug = ha.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getRemoteUcastMacs() != null ? new ArrayList(d1Aug.getRemoteUcastMacs().values()) - : new ArrayList<>(); + d1Aug.getRemoteUcastMacs() != null + ? new ArrayList(d1Aug.nonnullRemoteUcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List d2Values = - d2Aug.getRemoteUcastMacs() != null ? new ArrayList(d2Aug.getRemoteUcastMacs().values()) - : new ArrayList<>(); + d2Aug.getRemoteUcastMacs() != null + ? new ArrayList(d2Aug.nonnullRemoteUcastMacs().values()) : new ArrayList<>(); List result2 = cmd.transform(nodePath, d2Values); List ruMacList = new ArrayList<>(); ruMacList.addAll(result1); ruMacList.addAll(result2); List result = cmd.transform(nodePath, - new ArrayList(haAug.getRemoteUcastMacs().values())); + new ArrayList(haAug.nonnullRemoteUcastMacs().values())); Set set1 = Sets.newHashSet(ruMacList); Set set2 = Sets.newHashSet(result); @@ -155,11 +156,11 @@ public final class TestComparators { HwvtepGlobalAugmentation d1Aug = src.augmentation(HwvtepGlobalAugmentation.class); HwvtepGlobalAugmentation haAug = dst.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getRemoteMcastMacs() != null ? new ArrayList(d1Aug.getRemoteMcastMacs().values()) - : new ArrayList<>(); + d1Aug.getRemoteMcastMacs() != null + ? new ArrayList(d1Aug.nonnullRemoteMcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List result2 = cmd.transform(nodePath, - new ArrayList(haAug.getRemoteMcastMacs().values())); + new ArrayList(haAug.nonnullRemoteMcastMacs().values())); Set set1 = Sets.newHashSet(result1); Set set2 = Sets.newHashSet(result2); @@ -174,20 +175,20 @@ public final class TestComparators { HwvtepGlobalAugmentation haAug = ha.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getRemoteMcastMacs() != null ? new ArrayList(d1Aug.getRemoteMcastMacs().values()) - : new ArrayList<>(); + d1Aug.getRemoteMcastMacs() != null + ? new ArrayList(d1Aug.nonnullRemoteMcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List d2Values = - d2Aug.getRemoteMcastMacs() != null ? new ArrayList(d2Aug.getRemoteMcastMacs().values()) - : new ArrayList<>(); + d2Aug.getRemoteMcastMacs() != null + ? new ArrayList(d2Aug.nonnullRemoteMcastMacs().values()) : new ArrayList<>(); List result2 = cmd.transform(nodePath, d2Values); List rmMacList = new ArrayList<>(); rmMacList.addAll(result1); rmMacList.addAll(result2); List result = cmd.transform(nodePath, - new ArrayList(haAug.getRemoteMcastMacs().values())); + new ArrayList(haAug.nonnullRemoteMcastMacs().values())); Set set1 = Sets.newHashSet(rmMacList); Set set2 = Sets.newHashSet(result); @@ -200,11 +201,11 @@ public final class TestComparators { HwvtepGlobalAugmentation d1Aug = src.augmentation(HwvtepGlobalAugmentation.class); HwvtepGlobalAugmentation haAug = dst.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getLocalUcastMacs() != null ? new ArrayList(d1Aug.getLocalUcastMacs().values()) - : new ArrayList<>(); + d1Aug.getLocalUcastMacs() != null + ? new ArrayList(d1Aug.nonnullLocalUcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List result2 = cmd.transform(nodePath, - new ArrayList(haAug.getLocalUcastMacs().values())); + new ArrayList(haAug.nonnullLocalUcastMacs().values())); Set set1 = Sets.newHashSet(result1); Set set2 = Sets.newHashSet(result2); @@ -219,16 +220,16 @@ public final class TestComparators { HwvtepGlobalAugmentation haAug = ha.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getLocalUcastMacs() != null ? new ArrayList(d1Aug.getLocalUcastMacs().values()) - : new ArrayList<>(); + d1Aug.getLocalUcastMacs() != null + ? new ArrayList(d1Aug.nonnullLocalUcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List d2Values = - d2Aug.getLocalUcastMacs() != null ? new ArrayList(d2Aug.getLocalUcastMacs().values()) - : new ArrayList<>(); + d2Aug.getLocalUcastMacs() != null + ? new ArrayList(d2Aug.nonnullLocalUcastMacs().values()) : new ArrayList<>(); List result2 = cmd.transform(nodePath, d2Values); List result = cmd.transform(nodePath, - new ArrayList(haAug.getLocalUcastMacs().values())); + new ArrayList(haAug.nonnullLocalUcastMacs().values())); List luMacList = new ArrayList<>(); luMacList.addAll(result1); @@ -244,11 +245,11 @@ public final class TestComparators { HwvtepGlobalAugmentation d1Aug = src.augmentation(HwvtepGlobalAugmentation.class); HwvtepGlobalAugmentation haAug = dst.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getLocalUcastMacs() != null ? new ArrayList(d1Aug.getLocalMcastMacs().values()) - : new ArrayList<>(); + d1Aug.getLocalUcastMacs() != null + ? new ArrayList(d1Aug.nonnullLocalMcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List result2 = cmd.transform(nodePath, - new ArrayList(haAug.getLocalMcastMacs().values())); + new ArrayList(haAug.nonnullLocalMcastMacs().values())); Set set1 = Sets.newHashSet(result1); Set set2 = Sets.newHashSet(result2); @@ -262,16 +263,16 @@ public final class TestComparators { HwvtepGlobalAugmentation d2Aug = d2.augmentation(HwvtepGlobalAugmentation.class); HwvtepGlobalAugmentation haAug = ha.augmentation(HwvtepGlobalAugmentation.class); List d1Values = - d1Aug.getLocalUcastMacs() != null ? new ArrayList(d1Aug.getLocalMcastMacs().values()) - : new ArrayList<>(); + d1Aug.nonnullLocalMcastMacs() != null + ? new ArrayList(d1Aug.nonnullLocalMcastMacs().values()) : new ArrayList<>(); List result1 = cmd.transform(nodePath, d1Values); List d2Values = - d2Aug.getLocalUcastMacs() != null ? new ArrayList(d2Aug.getLocalMcastMacs().values()) - : new ArrayList<>(); + d2Aug.nonnullLocalMcastMacs() != null + ? new ArrayList(d2Aug.nonnullLocalMcastMacs().values()) : new ArrayList<>(); List result2 = cmd.transform(nodePath, d2Values); List result = cmd.transform(nodePath, - new ArrayList(haAug.getLocalMcastMacs().values())); + new ArrayList(haAug.nonnullLocalMcastMacs().values())); List lmMacList = new ArrayList<>(); lmMacList.addAll(result1); @@ -309,15 +310,15 @@ public final class TestComparators { managerhaPs.getValue().firstKeyOf(Node.class).getNodeId().getValue() + "/physicalswitch/" + switchName); assertEquals("Should have equal number TunnelIps", - d1PsAug.getTunnelIps().size(), haPsAug.getTunnelIps().size()); + d1PsAug.nonnullTunnelIps().size(), haPsAug.nonnullTunnelIps().size()); assertEquals("Should have equal number TunnelIps", - d2PsAug.getTunnelIps().size(), haPsAug.getTunnelIps().size()); - if (d1PsAug.getTunnelIps().size() == haPsAug.getTunnelIps().size() - && d2PsAug.getTunnelIps().size() == haPsAug.getTunnelIps().size()) { - assertTrue(d1PsAug.getTunnelIps().values().containsAll( - new ArrayList(haPsAug.getTunnelIps().values()))); - assertTrue(d2PsAug.getTunnelIps().values().containsAll( - new ArrayList(haPsAug.getTunnelIps().values()))); + d2PsAug.nonnullTunnelIps().size(), haPsAug.nonnullTunnelIps().size()); + if (d1PsAug.nonnullTunnelIps().size() == haPsAug.nonnullTunnelIps().size() + && d2PsAug.nonnullTunnelIps().size() == haPsAug.nonnullTunnelIps().size()) { + assertTrue(d1PsAug.nonnullTunnelIps().values().containsAll( + new ArrayList(haPsAug.nonnullTunnelIps().values()))); + assertTrue(d2PsAug.nonnullTunnelIps().values().containsAll( + new ArrayList(haPsAug.nonnullTunnelIps().values()))); } //Compare Termination point @@ -345,11 +346,11 @@ public final class TestComparators { assertEquals("Managers should be equal for ha ", haps.getNodeId().getValue(), managerhaPs.getValue().firstKeyOf(Node.class).getNodeId().getValue() + "/physicalswitch/" + switchName); - assertEquals("Should have equal number TunnelIps", d1PsAug.getTunnelIps().size(), - haPsAug.getTunnelIps().size()); - if (d1PsAug.getTunnelIps().size() == haPsAug.getTunnelIps().size()) { - assertTrue(d1PsAug.getTunnelIps().values().containsAll( - new ArrayList(haPsAug.getTunnelIps().values()))); + assertEquals("Should have equal number TunnelIps", d1PsAug.nonnullTunnelIps().size(), + haPsAug.nonnullTunnelIps().size()); + if (d1PsAug.nonnullTunnelIps().size() == haPsAug.nonnullTunnelIps().size()) { + assertTrue(d1PsAug.nonnullTunnelIps().values().containsAll( + new ArrayList(haPsAug.nonnullTunnelIps().values()))); } //Compare Termination point @@ -379,9 +380,9 @@ public final class TestComparators { hwvtepPhysicalPortAugmentationHa.getHwvtepNodeName()); List vlanBindingsesD - = new ArrayList(hwvtepPhysicalPortAugmentationD.getVlanBindings().values()); + = new ArrayList(hwvtepPhysicalPortAugmentationD.nonnullVlanBindings().values()); List vlanBindingsesHa - = new ArrayList(hwvtepPhysicalPortAugmentationHa.getVlanBindings().values()); + = new ArrayList(hwvtepPhysicalPortAugmentationHa.nonnullVlanBindings().values()); assertEquals("Size of VlanBindings should be same", vlanBindingsesD.size(), vlanBindingsesHa.size()); List vlanKeysD = new ArrayList<>(); diff --git a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestUtil.java b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestUtil.java index 1eeae42691..9012efc1a2 100644 --- a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestUtil.java +++ b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elan/l2gw/nodehandlertest/TestUtil.java @@ -54,8 +54,8 @@ final class TestUtil { static void verifyHAconfigNode(Node haConfig, Node d1Node) { String haid = new ArrayList(new ArrayList(haConfig - .augmentation(HwvtepGlobalAugmentation.class).getManagers().values()) - .get(0).getManagerOtherConfigs().values()).get(0).getOtherConfigValue(); + .augmentation(HwvtepGlobalAugmentation.class).nonnullManagers().values()) + .get(0).nonnullManagerOtherConfigs().values()).get(0).getOtherConfigValue(); String d1id = d1Node.getNodeId().getValue(); assertEquals("Other config should contain D1 as child manager", haid, d1id); } diff --git a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/ElanServiceTestBase.java b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/ElanServiceTestBase.java index 6ca6dba0b4..01c423f0f1 100644 --- a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/ElanServiceTestBase.java +++ b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/ElanServiceTestBase.java @@ -287,7 +287,7 @@ public class ElanServiceTestBase { Instructions instructions = flowBuilder.getInstructions(); InstructionsBuilder builder = new InstructionsBuilder(); InstructionBuilder instructionBuilder = new InstructionBuilder( - new ArrayList(instructions.getInstruction().values()).get(0)); + new ArrayList(instructions.nonnullInstruction().values()).get(0)); instructionBuilder.setInstruction(sortActions(instructionBuilder.getInstruction())); builder.setInstruction(Lists.newArrayList(instructionBuilder.build())); return flowBuilder.setInstructions(builder.build()).build(); @@ -297,7 +297,7 @@ public class ElanServiceTestBase { sortActions(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction input) { if (input instanceof ApplyActionsCase) { List action = new ArrayList(((ApplyActionsCase)input) - .getApplyActions().getAction().values()); + .getApplyActions().nonnullAction().values()); action.sort(Comparator.comparing(Ordered::getOrder)); ApplyActions actions = new ApplyActionsBuilder().setAction(action).build(); diff --git a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/Verifications.java b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/Verifications.java index 2a31e13724..cbcf6925c3 100644 --- a/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/Verifications.java +++ b/elanmanager/impl/src/test/java/org/opendaylight/netvirt/elanmanager/tests/Verifications.java @@ -127,7 +127,7 @@ public class Verifications { } } boolean remoteMcastFoundFlag = false; - for (RemoteMcastMacs remoteMcastMacs : augmentation.getRemoteMcastMacs().values()) { + for (RemoteMcastMacs remoteMcastMacs : augmentation.nonnullRemoteMcastMacs().values()) { for (LocatorSet locatorSet : remoteMcastMacs.getLocatorSet()) { TpId tpId = locatorSet.getLocatorRef().getValue().firstKeyOf(TerminationPoint.class).getTpId(); if (tpId.getValue().contains(tepIp)) { @@ -171,7 +171,7 @@ public class Verifications { } } boolean remoteUcastFoundFlag = false; - for (RemoteUcastMacs remoteUcastMacs : augmentation.getRemoteUcastMacs().values()) { + for (RemoteUcastMacs remoteUcastMacs : augmentation.nonnullRemoteUcastMacs().values()) { String mac = remoteUcastMacs.getMacEntryKey().getValue(); if (mac.equals(dpnMac)) { remoteUcastFoundFlag = true; @@ -202,7 +202,7 @@ public class Verifications { .setTunnelKey(elanInfo.getElanTag().longValue() + ElanConstants.ELAN_TAG_ADDEND).build(); List actionsList = new ArrayList(odlInterfaceRpcService.getEgressActionsForInterface(getEgressActInput) - .get().getResult().getAction().values()); + .get().getResult().nonnullAction().values()); listBucketInfo.add(MDSALUtil.buildBucket(actionsList, MDSALUtil.GROUP_WEIGHT, bucketId, MDSALUtil.WATCH_PORT, MDSALUtil.WATCH_GROUP)); @@ -217,7 +217,7 @@ public class Verifications { .setTunnelKey(elanInfo.getSegmentationId()).build(); List actionsList = new ArrayList(odlInterfaceRpcService.getEgressActionsForInterface(getEgressActInput) - .get().getResult().getAction().values()); + .get().getResult().nonnullAction().values()); listBucketInfo.add(MDSALUtil.buildBucket(actionsList, MDSALUtil.GROUP_WEIGHT, bucketId, MDSALUtil.WATCH_PORT, MDSALUtil.WATCH_GROUP)); @@ -261,8 +261,10 @@ public class Verifications { AssertDataObjects.assertEqualBeans(expected, actual); } - Set actualBuckets = modifyBucketId(new ArrayList(actual.getBuckets().getBucket().values())); - Set expectedBuckets = modifyBucketId(new ArrayList(expected.getBuckets().getBucket().values())); + Set actualBuckets = modifyBucketId(new ArrayList(actual.getBuckets() + .nonnullBucket().values())); + Set expectedBuckets = modifyBucketId(new ArrayList(expected.getBuckets() + .nonnullBucket().values())); Set diff = Sets.difference(actualBuckets, expectedBuckets); if (diff != null && !diff.isEmpty()) { AssertDataObjects.assertEqualBeans(expected, actual); -- 2.36.6