]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Improve checking of return values for functions in linuxbridge agent plugin
authorsadasu <sadasu@cisco.com>
Thu, 25 Apr 2013 20:05:22 +0000 (16:05 -0400)
committersadasu <sadasu@cisco.com>
Tue, 7 May 2013 17:31:19 +0000 (13:31 -0400)
Fixes bug 1167780

Changed return values for some ensure_* functions to make them more consistent.
Now all ensure_* functions return None on failure and return the entity that was
created within the function when successful. Made changes to the unit tests to
reflect the changed return values.

Change-Id: Ib015ee7cee50bae5d91a4e109e7381519c1e14f7

quantum/plugins/linuxbridge/agent/linuxbridge_quantum_agent.py
quantum/tests/unit/linuxbridge/test_lb_quantum_agent.py

index a7229d5d98f73ef35d31ad472ea45b4e155cccce..ef5cec669e69662d0c7b578760960d5fb0f61caf 100755 (executable)
@@ -139,8 +139,8 @@ class LinuxBridgeManager:
         """Create a vlan and bridge unless they already exist."""
         interface = self.ensure_vlan(physical_interface, vlan_id)
         bridge_name = self.get_bridge_name(network_id)
-        self.ensure_bridge(bridge_name, interface)
-        return interface
+        if self.ensure_bridge(bridge_name, interface):
+            return interface
 
     def get_interface_details(self, interface):
         device = self.ip.device(interface)
@@ -154,13 +154,13 @@ class LinuxBridgeManager:
         """Create a non-vlan bridge unless it already exists."""
         bridge_name = self.get_bridge_name(network_id)
         ips, gateway = self.get_interface_details(physical_interface)
-        self.ensure_bridge(bridge_name, physical_interface, ips, gateway)
-        return physical_interface
+        if self.ensure_bridge(bridge_name, physical_interface, ips, gateway):
+            return physical_interface
 
     def ensure_local_bridge(self, network_id):
         """Create a local bridge unless it already exists."""
         bridge_name = self.get_bridge_name(network_id)
-        self.ensure_bridge(bridge_name)
+        return self.ensure_bridge(bridge_name)
 
     def ensure_vlan(self, physical_interface, vlan_id):
         """Create a vlan unless it already exists."""
@@ -234,7 +234,7 @@ class LinuxBridgeManager:
                       {'bridge_name': bridge_name, 'interface': interface})
 
         if not interface:
-            return
+            return bridge_name
 
         # Update IP info if necessary
         self.update_interface_ip_details(bridge_name, interface, ips, gateway)
@@ -250,6 +250,7 @@ class LinuxBridgeManager:
                           {'interface': interface, 'bridge_name': bridge_name,
                            'e': e})
                 return
+        return bridge_name
 
     def ensure_physical_in_bridge(self, network_id,
                                   physical_network,
@@ -258,14 +259,12 @@ class LinuxBridgeManager:
         if not physical_interface:
             LOG.error(_("No mapping for physical network %s"),
                       physical_network)
-            return False
-
+            return
         if int(vlan_id) == lconst.FLAT_VLAN_ID:
-            self.ensure_flat_bridge(network_id, physical_interface)
+            return self.ensure_flat_bridge(network_id, physical_interface)
         else:
-            self.ensure_vlan_bridge(network_id, physical_interface,
-                                    vlan_id)
-        return True
+            return self.ensure_vlan_bridge(network_id, physical_interface,
+                                           vlan_id)
 
     def add_tap_interface(self, network_id, physical_network, vlan_id,
                           tap_device_name):
@@ -282,12 +281,10 @@ class LinuxBridgeManager:
         bridge_name = self.get_bridge_name(network_id)
         if int(vlan_id) == lconst.LOCAL_VLAN_ID:
             self.ensure_local_bridge(network_id)
-        else:
-            result = self.ensure_physical_in_bridge(network_id,
-                                                    physical_network,
-                                                    vlan_id)
-            if not result:
-                return False
+        elif not self.ensure_physical_in_bridge(network_id,
+                                                physical_network,
+                                                vlan_id):
+            return False
 
         # Check if device needs to be added to bridge
         tap_device_in_bridge = self.get_bridge_for_tap_device(tap_device_name)
index f2a6ebfb099b1863c24451c92c0da4705a30183e..f399fee25d38ff42e4e8dae16bee2a837bd15545 100644 (file)
@@ -325,7 +325,7 @@ class TestLinuxBridgeManager(base.BaseTestCase):
         ) as (de_fn, exec_fn, upd_fn, ie_fn):
             de_fn.return_value = False
             exec_fn.return_value = False
-            self.assertIsNone(self.lbm.ensure_bridge("br0", None))
+            self.assertEqual(self.lbm.ensure_bridge("br0", None), "br0")
             ie_fn.return_Value = False
             self.lbm.ensure_bridge("br0", "eth0")
             self.assertTrue(upd_fn.called)