From 47c4c98d184251d31e09e69cd8797a7f4f96961a Mon Sep 17 00:00:00 2001 From: Nishchya Gupta Date: Thu, 4 Jun 2020 13:09:01 +0530 Subject: [PATCH 1/1] NETVIRT-1673 neutronvpn exceptions Null pointer exception handled at neutronvpn exceptions. Along with that other null ponter also handled seen during CSIT. Signed-off-by: Nishchya Gupta Change-Id: Idac487428c9f557bb4358855c882a56ebb70dec4 --- .../neutronvpn/NeutronPortChangeListener.java | 18 +++++++++--------- .../NeutronRouterChangeListener.java | 4 ++-- .../netvirt/neutronvpn/NeutronvpnManager.java | 4 ++-- .../neutronvpn/NeutronvpnNatManager.java | 12 ++++++------ .../netvirt/neutronvpn/NeutronvpnUtils.java | 14 +++++++------- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListener.java b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListener.java index 8492369ef4..8e38c12b35 100644 --- a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListener.java +++ b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListener.java @@ -273,9 +273,9 @@ public class NeutronPortChangeListener extends AbstractAsyncDataTreeChangeListen interfaceBuilder.addAugmentation(InterfaceAcl.class, infAcl); } else if (isDhcpServerPort) { Set oldIPs = getFixedIpSet( - new ArrayList(original.getFixedIps().values())); + new ArrayList(original.nonnullFixedIps().values())); Set newIPs = getFixedIpSet( - new ArrayList(update.getFixedIps().values())); + new ArrayList(update.nonnullFixedIps().values())); if (!oldIPs.equals(newIPs)) { InterfaceAcl infAcl = neutronvpnUtils.getDhcpInterfaceAcl(update); interfaceBuilder.addAugmentation(InterfaceAcl.class, infAcl); @@ -301,7 +301,7 @@ public class NeutronPortChangeListener extends AbstractAsyncDataTreeChangeListen // populate floating-ip uuid and floating-ip port attributes (uuid, mac and subnet id for the ONLY // fixed IP) to be used by NAT, depopulated in NATService once mac is retrieved in the removal path addToFloatingIpPortInfo(new Uuid(update.getDeviceId()), update.getUuid(), - new ArrayList(update.getFixedIps().values()).get(0) + new ArrayList(update.nonnullFixedIps().values()).get(0) .getSubnetId(), update.getMacAddress().getValue()); elanService.addKnownL3DmacAddress(update.getMacAddress().getValue(), update.getNetworkId().getValue()); } @@ -776,8 +776,8 @@ public class NeutronPortChangeListener extends AbstractAsyncDataTreeChangeListen private void handleNeutronPortUpdated(final Port portoriginal, final Port portupdate) { - final Map portoriginalIpsMap = portoriginal.getFixedIps(); - final Map portupdateIpsMap = portupdate.getFixedIps(); + final Map portoriginalIpsMap = portoriginal.nonnullFixedIps(); + final Map portupdateIpsMap = portupdate.nonnullFixedIps(); if (portoriginalIpsMap == null || portoriginalIpsMap.isEmpty()) { handleNeutronPortCreated(portupdate); return; @@ -882,13 +882,13 @@ public class NeutronPortChangeListener extends AbstractAsyncDataTreeChangeListen NeutronvpnUtils.getUpdatedSecurityGroups(interfaceAcl.getSecurityGroups(), portOriginal.getSecurityGroups(), portUpdated.getSecurityGroups())); List updatedAddressPairs = NeutronvpnUtils.getUpdatedAllowedAddressPairs( - new ArrayList(interfaceAcl.getAllowedAddressPairs().values()), - new ArrayList<>(portOriginal.getAllowedAddressPairs().values()), + new ArrayList(interfaceAcl.nonnullAllowedAddressPairs().values()), + new ArrayList<>(portOriginal.nonnullAllowedAddressPairs().values()), new ArrayList(portUpdated.getAllowedAddressPairs().values())); + .attributes.AllowedAddressPairs>(portUpdated.nonnullAllowedAddressPairs().values())); interfaceAclBuilder.setAllowedAddressPairs(NeutronvpnUtils.getAllowedAddressPairsForFixedIps( updatedAddressPairs, portOriginal.getMacAddress(), portOriginal.getFixedIps(), - portUpdated.getFixedIps().values())); + portUpdated.nonnullFixedIps().values())); if (portOriginal.getFixedIps() != null && !portOriginal.getFixedIps().equals(portUpdated.getFixedIps())) { diff --git a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronRouterChangeListener.java b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronRouterChangeListener.java index 0473f7f52a..7eb5b29ba4 100644 --- a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronRouterChangeListener.java +++ b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronRouterChangeListener.java @@ -94,8 +94,8 @@ public class NeutronRouterChangeListener extends AbstractAsyncDataTreeChangeList on vpn operational data to release Lport tag in case of L3VPN over VxLAN*/ if (input.getExternalGatewayInfo() != null) { Uuid extNetId = input.getExternalGatewayInfo().getExternalNetworkId(); - List externalFixedIps - = new ArrayList(input.getExternalGatewayInfo().getExternalFixedIps().values()); + List externalFixedIps = new ArrayList(input + .getExternalGatewayInfo().nonnullExternalFixedIps().values()); jobCoordinator.enqueueJob(input.getUuid().toString(), () -> { nvpnNatManager.removeExternalNetworkFromRouter(extNetId, input, externalFixedIps); return Collections.emptyList(); diff --git a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java index d00020ae48..128cbff577 100644 --- a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java +++ b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java @@ -2757,7 +2757,7 @@ public class NeutronvpnManager implements NeutronvpnService, AutoCloseable, Even Uuid vpnId = input.getVpnId(); Map keyRouterIdsMap = input.getRouterIds(); + .associaterouter.input.RouterIds> keyRouterIdsMap = input.nonnullRouterIds(); Preconditions.checkArgument(!keyRouterIdsMap.isEmpty(), "associateRouter: RouterIds list is empty!"); Preconditions.checkNotNull(vpnId, "associateRouter; VpnId not found!"); Preconditions.checkNotNull(vpnId, "associateRouter; RouterIds not found!"); @@ -2900,7 +2900,7 @@ public class NeutronvpnManager implements NeutronvpnService, AutoCloseable, Even Uuid vpnId = input.getVpnId(); Map keyRouterIdsMap = input.getRouterIds(); + .dissociaterouter.input.RouterIds> keyRouterIdsMap = input.nonnullRouterIds(); String routerIdsString = ""; Preconditions.checkArgument(!keyRouterIdsMap.isEmpty(), "dissociateRouter: RouterIds list is empty!"); Preconditions.checkNotNull(vpnId, "dissociateRouter: vpnId not found!"); diff --git a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnNatManager.java b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnNatManager.java index a721f6b71f..a1029dfdef 100644 --- a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnNatManager.java +++ b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnNatManager.java @@ -112,7 +112,7 @@ public class NeutronvpnNatManager implements AutoCloseable { if (extNetChanged == EXTERNAL_REMOVED) { origExtNetId = original.getExternalGatewayInfo().getExternalNetworkId(); origExtFixedIps = new ArrayList(original.getExternalGatewayInfo() - .getExternalFixedIps().values()); + .nonnullExternalFixedIps().values()); LOG.trace("External Network removal detected for router {}", routerId.getValue()); removeExternalNetworkFromRouter(origExtNetId, update, origExtFixedIps); //gateway mac unset handled as part of gateway clear deleting top-level routers node @@ -121,7 +121,7 @@ public class NeutronvpnNatManager implements AutoCloseable { origExtNetId = original.getExternalGatewayInfo().getExternalNetworkId(); origExtFixedIps = new ArrayList(original.getExternalGatewayInfo() - .getExternalFixedIps().values()); + .nonnullExternalFixedIps().values()); updExtNetId = update.getExternalGatewayInfo().getExternalNetworkId(); LOG.trace("External Network changed from {} to {} for router {}", origExtNetId.getValue(), updExtNetId.getValue(), routerId.getValue()); @@ -308,7 +308,7 @@ public class NeutronvpnNatManager implements AutoCloseable { Uuid routerId = update.getUuid(); Uuid extNetId = update.getExternalGatewayInfo().getExternalNetworkId(); Map keyExternalFixedIpsMap - = update.getExternalGatewayInfo().getExternalFixedIps(); + = update.getExternalGatewayInfo().nonnullExternalFixedIps(); try { Network input = neutronvpnUtils.getNeutronNetwork(extNetId); @@ -544,7 +544,7 @@ public class NeutronvpnNatManager implements AutoCloseable { if (optionalRouters.isPresent()) { RoutersBuilder builder = new RoutersBuilder(optionalRouters.get()); List externalIps = new ArrayList<>(); - for (ExternalFixedIps fixedIps : update.getExternalGatewayInfo().getExternalFixedIps().values()) { + for (ExternalFixedIps fixedIps : update.getExternalGatewayInfo().nonnullExternalFixedIps().values()) { addExternalFixedIpToExternalIpsList(externalIps, fixedIps); } @@ -552,7 +552,7 @@ public class NeutronvpnNatManager implements AutoCloseable { updateExternalSubnetsForRouter(routerId, update.getExternalGatewayInfo().getExternalNetworkId(), new ArrayList(update.getExternalGatewayInfo() - .getExternalFixedIps().values())); + .nonnullExternalFixedIps().values())); Routers routerss = builder.build(); LOG.trace("Updating external fixed ips for router {} with value {}", routerId.getValue(), routerss); SingleTransactionDataBroker.syncWrite(dataBroker, LogicalDatastoreType.CONFIGURATION, routersIdentifier, @@ -787,7 +787,7 @@ public class NeutronvpnNatManager implements AutoCloseable { Optional optionalAdjacencies = SingleTransactionDataBroker.syncReadOptional(dataBroker, LogicalDatastoreType.CONFIGURATION, adjacenciesIdentifier); if (optionalAdjacencies.isPresent()) { - Map keyAdjacencyMap = optionalAdjacencies.get().getAdjacency(); + Map keyAdjacencyMap = optionalAdjacencies.get().nonnullAdjacency(); Iterator adjacencyIter = keyAdjacencyMap.values().iterator(); while (adjacencyIter.hasNext()) { Adjacency adjacency = adjacencyIter.next(); diff --git a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java index 4a275cfc9e..dea6907054 100644 --- a/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java +++ b/neutronvpn/impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java @@ -295,7 +295,7 @@ public class NeutronvpnUtils { if (optionalVpnMaps.isPresent() && optionalVpnMaps.get().nonnullVpnMap() != null) { for (VpnMap vpnMap : new ArrayList<>(optionalVpnMaps.get().nonnullVpnMap().values())) { Map keyRouterIdsMap = vpnMap.getRouterIds(); + .vpnmaps.vpnmap.RouterIds> keyRouterIdsMap = vpnMap.nonnullRouterIds(); if (keyRouterIdsMap == null || keyRouterIdsMap.isEmpty()) { continue; } @@ -347,7 +347,7 @@ public class NeutronvpnUtils { if (optionalVpnMap.isPresent()) { VpnMap vpnMap = optionalVpnMap.get(); return NeutronUtils.getVpnMapRouterIdsListUuid(new ArrayList(vpnMap.getRouterIds().values())); + .netvirt.neutronvpn.rev150602.vpnmaps.vpnmap.RouterIds>(vpnMap.nonnullRouterIds().values())); } LOG.error("getRouterIdListforVpn: Failed as VPNMaps DS is absent for VPN {}", vpnId.getValue()); return null; @@ -462,7 +462,7 @@ public class NeutronvpnUtils { interfaceAclBuilder.setPortSecurityEnabled(false); interfaceAclBuilder.setInterfaceType(InterfaceAcl.InterfaceType.DhcpService); List aclAllowedAddressPairs = NeutronvpnUtils.getAllowedAddressPairsForAclService( - port.getMacAddress(), new ArrayList(port.getFixedIps().values())); + port.getMacAddress(), new ArrayList(port.nonnullFixedIps().values())); interfaceAclBuilder.setAllowedAddressPairs(aclAllowedAddressPairs); return interfaceAclBuilder.build(); } @@ -764,7 +764,7 @@ public class NeutronvpnUtils { interfaceAclBuilder.setSecurityGroups(securityGroups); } List aclAllowedAddressPairs = NeutronvpnUtils.getAllowedAddressPairsForAclService( - port.getMacAddress(), new ArrayList(port.getFixedIps().values())); + port.getMacAddress(), new ArrayList(port.nonnullFixedIps().values())); // Update the allowed address pair with the IPv6 LLA that is auto configured on the port. aclAllowedAddressPairs.add(NeutronvpnUtils.updateIPv6LinkLocalAddressForAclService(port.getMacAddress())); List @@ -863,7 +863,7 @@ public class NeutronvpnUtils { // FIXME: why are we not using getNeutronSubnet() here? it does caching for us... Optional subnet = read(LogicalDatastoreType.CONFIGURATION, NEUTRON_SUBNETS_IID.child(Subnet.class, new SubnetKey( - new ArrayList(port.getFixedIps().values()).get(0).getSubnetId()))); + new ArrayList(port.nonnullFixedIps().values()).get(0).getSubnetId()))); if (subnet.isPresent()) { String cidr = subnet.get().getCidr().stringValue(); // Extract the prefix length from cidr @@ -1265,10 +1265,10 @@ public class NeutronvpnUtils { public static List buildStaticMacEntry(Port port) { PhysAddress physAddress = new PhysAddress(port.getMacAddress().getValue()); - Map keyFixedIpsMap = port.getFixedIps(); + Map keyFixedIpsMap = port.nonnullFixedIps(); IpAddress ipAddress = null; if (isNotEmpty(keyFixedIpsMap.values())) { - ipAddress = new ArrayList(port.getFixedIps().values()).get(0).getIpAddress(); + ipAddress = new ArrayList(port.nonnullFixedIps().values()).get(0).getIpAddress(); } StaticMacEntriesBuilder staticMacEntriesBuilder = new StaticMacEntriesBuilder(); List staticMacEntries = new ArrayList<>(); -- 2.36.6