Bug 4776 - handle cases when network/subnet contains no tentant id
authorFlavio Fernandes <ffernand@redhat.com>
Tue, 15 Dec 2015 04:27:41 +0000 (23:27 -0500)
committerFlavio Fernandes <ffernand@redhat.com>
Tue, 15 Dec 2015 04:27:41 +0000 (23:27 -0500)
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 <ffernand@redhat.com>
openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronIAwareUtil.java
openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronNetworkChangeListener.java
openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronRouterChangeListener.java
openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/translator/iaware/impl/NeutronSubnetChangeListener.java

index fdb1e81953ce8c695e70991d86c75eef14d2cc7c..5603ba448beb7617843a9599a75c69a31e982ef4 100644 (file)
@@ -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;
index 7d2344e8a4c5cbf1ec99bd41697a1bbaf189562c..a9227a2bb2b6b74e4c9cf0889d2430ad8fed4097 100644 (file)
@@ -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);
index a45c0a48b169bbf7deb23e4cf8b00653acd8d2d5..256b438e1b98979af3b643f4b4348fd35b83845b 100644 (file)
@@ -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);
index 916598dda6a7486f6531a58bbca6d813c80b665d..50b1336d1510fa2226044250a9e8ebe516423a23 100644 (file)
@@ -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());