From e21274dbeb7bcad709a9ca438f8c1a968d053707 Mon Sep 17 00:00:00 2001 From: Apurba Mukherjee Date: Mon, 6 May 2019 10:50:50 +0530 Subject: [PATCH] TSC-181 : ITM Yang Models Cleanup Change-Id: Ic6330cb9b5521c4df04713b01e89f13e906c9d9f Signed-off-by: Apurba Mukherjee --- .../elan/l2gw/utils/ElanL2GatewayUtils.java | 8 +-- .../utils/TransportZoneNotificationUtil.java | 56 +++---------------- .../test/VpnSubnetRouteHandlerTest.java | 2 +- 3 files changed, 12 insertions(+), 54 deletions(-) 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 a315c4449c..3bf0d79e30 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 @@ -76,7 +76,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpc import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetDpidFromInterfaceOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.DeviceVteps; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.DeviceVteps; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.AddL2GwDeviceInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.AddL2GwDeviceOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService; @@ -971,10 +971,8 @@ public class ElanL2GatewayUtils { } String psNodeId = globalNodeId + HwvtepHAUtil.PHYSICALSWITCH + psName; tzonesoptional.get().nonnullTransportZone().stream() - .filter(transportZone -> transportZone.getSubnets() != null) - .flatMap(transportZone -> transportZone.getSubnets().stream()) - .filter(subnet -> subnet.getDeviceVteps() != null) - .flatMap(subnet -> subnet.getDeviceVteps().stream()) + .filter(zone -> zone.getDeviceVteps() != null) + .flatMap(zone -> zone.getDeviceVteps().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 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 f41f42fc5d..5f26e458f6 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 @@ -14,7 +14,6 @@ import com.google.common.collect.MapDifference; import com.google.common.collect.MapDifference.ValueDifference; import com.google.common.collect.Maps; import java.math.BigInteger; -import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -46,8 +45,6 @@ import org.opendaylight.ovsdb.utils.mdsal.utils.ControllerMdsalUtils; import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.BridgeRefInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.bridge.ref.info.BridgeRefEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.bridge.ref.info.BridgeRefEntryKey; @@ -61,12 +58,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.Transp import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Subnets; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.Vteps; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.VtepsBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.VtepsKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.config.rev150710.ElanConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.interfaces.ElanInterface; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.vpn.to.dpn.list.VpnInterfaces; @@ -130,10 +124,8 @@ public class TransportZoneNotificationUtil { } private static TransportZone createZone(String subnetIp, String zoneName) { - List subnets = new ArrayList<>(); - subnets.add(buildSubnets(subnetIp)); TransportZoneBuilder tzb = new TransportZoneBuilder().withKey(new TransportZoneKey(zoneName)) - .setTunnelType(TunnelTypeVxlan.class).setZoneName(zoneName).setSubnets(subnets); + .setTunnelType(TunnelTypeVxlan.class).setZoneName(zoneName); return tzb.build(); } @@ -390,13 +382,7 @@ public class TransportZoneNotificationUtil { * @return Whether a vtep was added or not. */ private boolean addVtep(TransportZone zone, String subnetIp, BigInteger dpnId, @Nullable String localIp) { - List zoneSubnets = zone.getSubnets(); - if (zoneSubnets == null) { - return false; - } - - Subnets subnets = getOrAddSubnet(zoneSubnets, subnetIp); - for (Vteps existingVtep : subnets.nonnullVteps()) { + for (Vteps existingVtep : zone.nonnullVteps()) { if (Objects.equals(existingVtep.getDpnId(), dpnId)) { return false; } @@ -405,8 +391,8 @@ public class TransportZoneNotificationUtil { if (localIp != null) { IpAddress nodeIp = IpAddressBuilder.getDefaultInstance(localIp); VtepsBuilder vtepsBuilder = new VtepsBuilder().setDpnId(dpnId).setIpAddress(nodeIp) - .setPortname(TUNNEL_PORT).setOptionOfTunnel(elanConfig.isUseOfTunnels()); - subnets.getVteps().add(vtepsBuilder.build()); + .setOptionOfTunnel(elanConfig.isUseOfTunnels()); + zone.getVteps().add(vtepsBuilder.build()); return true; } @@ -416,36 +402,10 @@ public class TransportZoneNotificationUtil { private static void removeVtep(String zoneName, BigInteger dpId, @NonNull TypedWriteTransaction tx) { InstanceIdentifier path = InstanceIdentifier.builder(TransportZones.class) .child(TransportZone.class, new TransportZoneKey(zoneName)) - .child(Subnets.class, new SubnetsKey(IpPrefixBuilder.getDefaultInstance(ALL_SUBNETS))) - .child(Vteps.class, new VtepsKey(dpId, TUNNEL_PORT)).build(); + .child(Vteps.class, new VtepsKey(dpId)).build(); tx.delete(path); } - // search for relevant subnets for the given subnetIP, add one if it is - // necessary - private static Subnets getOrAddSubnet(@NonNull List subnets, @NonNull String subnetIp) { - IpPrefix subnetPrefix = IpPrefixBuilder.getDefaultInstance(subnetIp); - - for (Subnets subnet : subnets) { - if (Objects.equals(subnet.getPrefix(), subnetPrefix)) { - return subnet; - } - } - - Subnets retSubnet = buildSubnets(subnetIp); - subnets.add(retSubnet); - - return retSubnet; - } - - private static Subnets buildSubnets(String subnetIp) { - SubnetsBuilder subnetsBuilder = new SubnetsBuilder().setDeviceVteps(new ArrayList<>()) - .setGatewayIp(IpAddressBuilder.getDefaultInstance(ALL_SUBNETS_GW)) - .withKey(new SubnetsKey(IpPrefixBuilder.getDefaultInstance(subnetIp))).setVlanId(0) - .setVteps(new ArrayList<>()); - return subnetsBuilder.build(); - } - @Nullable private String getDpnLocalIp(BigInteger dpId) throws ReadFailedException { Optional node = getPortsNode(dpId); diff --git a/vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/test/VpnSubnetRouteHandlerTest.java b/vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/test/VpnSubnetRouteHandlerTest.java index b8c562fb9d..e2072aac14 100644 --- a/vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/test/VpnSubnetRouteHandlerTest.java +++ b/vpnmanager/impl/src/test/java/org/opendaylight/netvirt/vpnmanager/test/VpnSubnetRouteHandlerTest.java @@ -302,7 +302,7 @@ public class VpnSubnetRouteHandlerTest { dpntePsInfo = new DPNTEPsInfoBuilder().setDPNID(dpId).setUp(true).withKey(new DPNTEPsInfoKey(dpId)) .setTunnelEndPoints(tunnelEndPoints).build(); tunlEndPts = - new TunnelEndPointsBuilder().setInterfaceName(interfaceName).setVLANID(10).setIpAddress(ipAddress).build(); + new TunnelEndPointsBuilder().setInterfaceName(interfaceName).setIpAddress(ipAddress).build(); tunnelEndPoints.add(tunlEndPts); ipv4Family = new Ipv4FamilyBuilder().setRouteDistinguisher(routeDistinguishers).build(); vpnInstnce = new org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.instances -- 2.36.6