From: Flavio Fernandes Date: Tue, 15 Dec 2015 04:27:41 +0000 (-0500) Subject: Bug 4776 - handle cases when network/subnet contains no tentant id X-Git-Tag: release/beryllium-sr2~201 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=85f2500f94b4b8bb2e579d7183f1ba337d6c2995;p=netvirt.git Bug 4776 - handle cases when network/subnet contains no tentant id When ODL is used with l3 agent and l3_ha subnet/network for handling keep alive traffic contains no tenant id. Added missing checks that handle these cases gracefully. Change-Id: Ia9e2e963bc0d2df6d7a08b493c1f9bbcbae5659f Signed-off-by: Flavio Fernandes --- diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronIAwareUtil.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronIAwareUtil.java index fdb1e81953..5603ba448b 100644 --- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronIAwareUtil.java +++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronIAwareUtil.java @@ -70,7 +70,9 @@ public class NeutronIAwareUtil { NeutronRouter_Interface neutronInterface = new NeutronRouter_Interface(); String id = String.valueOf(routerInterface.getUuid().getValue()); neutronInterface.setID(id); - neutronInterface.setTenantID(routerInterface.getTenantId().getValue()); + if (routerInterface.getTenantId() != null) { + neutronInterface.setTenantID(routerInterface.getTenantId().getValue()); + } neutronInterface.setSubnetUUID(routerInterface.getFixedIps().get(0).getSubnetId().getValue()); neutronInterface.setPortUUID(routerInterface.getUuid().getValue()); return neutronInterface; diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronNetworkChangeListener.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronNetworkChangeListener.java index 7d2344e8a4..a9227a2bb2 100644 --- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronNetworkChangeListener.java +++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronNetworkChangeListener.java @@ -130,7 +130,9 @@ public class NeutronNetworkChangeListener implements DataChangeListener, AutoClo result.setStatus(network.getStatus()); // todo remove '-' chars as tenant id doesn't use them - result.setTenantID(network.getTenantId().getValue()); + if (network.getTenantId() != null) { + result.setTenantID(network.getTenantId().getValue()); + } result.setID(network.getUuid().getValue()); NetworkL3Extension l3Extension = network.getAugmentation(NetworkL3Extension.class); diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronRouterChangeListener.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronRouterChangeListener.java index a45c0a48b1..256b438e1b 100644 --- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronRouterChangeListener.java +++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronRouterChangeListener.java @@ -114,7 +114,9 @@ public class NeutronRouterChangeListener implements DataChangeListener, AutoClos NeutronRouter result = new NeutronRouter(); result.setID(String.valueOf(router.getUuid().getValue())); result.setName(router.getName()); - result.setTenantID(String.valueOf(router.getTenantId().getValue())); + if (router.getTenantId() != null) { + result.setTenantID(String.valueOf(router.getTenantId().getValue())); + } result.setAdminStateUp(router.isAdminStateUp()); result.setStatus(router.getStatus()); result.setDistributed(router.isDistributed()); @@ -152,7 +154,9 @@ public class NeutronRouterChangeListener implements DataChangeListener, AutoClos NeutronRouter_Interface pojoInterface = new NeutronRouter_Interface(); String id = String.valueOf(mdInterface.getUuid().getValue()); pojoInterface.setID(id); - pojoInterface.setTenantID(String.valueOf(mdInterface.getTenantId().getValue())); + if (mdInterface.getTenantId() != null) { + pojoInterface.setTenantID(String.valueOf(mdInterface.getTenantId().getValue())); + } pojoInterface.setSubnetUUID(String.valueOf(mdInterface.getSubnetId().getValue())); pojoInterface.setPortUUID(String.valueOf(mdInterface.getPortId().getValue())); interfaces.put(id, pojoInterface); diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronSubnetChangeListener.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronSubnetChangeListener.java index 916598dda6..50b1336d15 100644 --- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronSubnetChangeListener.java +++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronSubnetChangeListener.java @@ -138,7 +138,9 @@ public class NeutronSubnetChangeListener implements DataChangeListener, AutoClos private NeutronSubnet fromMd(Subnet subnet) { NeutronSubnet result = new NeutronSubnet(); result.setName(subnet.getName()); - result.setTenantID(String.valueOf(subnet.getTenantId().getValue()).replace("-","")); + if (subnet.getTenantId() != null) { + result.setTenantID(String.valueOf(subnet.getTenantId().getValue()).replace("-","")); + } result.setNetworkUUID(subnet.getNetworkId().getValue()); result.setIpVersion(IPV_MAP.get(subnet.getIpVersion())); result.setCidr(subnet.getCidr());