]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Remove release_lease from the DHCP driver interface
authorCarl Baldwin <carl.baldwin@hp.com>
Wed, 13 Nov 2013 18:50:48 +0000 (18:50 +0000)
committerCarl Baldwin <carl.baldwin@hp.com>
Wed, 15 Jan 2014 17:02:50 +0000 (17:02 +0000)
Neither the midonet nor the linux dhcp driver needs a call to
release_lease.  Removing this from the driver API simplifies more code
in the DHCP agent.

Change-Id: Ib144b2bf3720b1b999205ace1a7d1ffe5ef3b167
Closes-Bug: #1269505

neutron/agent/dhcp_agent.py
neutron/agent/linux/dhcp.py
neutron/plugins/midonet/agent/midonet_driver.py
neutron/tests/unit/test_dhcp_agent.py
neutron/tests/unit/test_linux_dhcp.py

index 605a369f243c6588da5e2dec6cf1af5ac6f3e589..5cdacab57756340c3359bf7175871fd0e749bd60 100644 (file)
@@ -255,21 +255,6 @@ class DhcpAgent(manager.Manager):
         else:
             self.disable_dhcp_helper(network.id)
 
-    def release_lease_for_removed_ips(self, prev_port, updated_port, network):
-        """Releases the dhcp lease for ips removed from a port."""
-        if prev_port:
-            previous_ips = set(fixed_ip.ip_address
-                               for fixed_ip in prev_port.fixed_ips)
-            current_ips = set(fixed_ip.ip_address
-                              for fixed_ip in updated_port.fixed_ips)
-            # pass in port with removed ips on it
-            removed_ips = previous_ips - current_ips
-            if removed_ips:
-                self.call_driver('release_lease',
-                                 network,
-                                 mac_address=updated_port.mac_address,
-                                 removed_ips=removed_ips)
-
     @utils.synchronized('dhcp-agent')
     def network_create_end(self, context, payload):
         """Handle the network.create.end notification event."""
@@ -313,11 +298,8 @@ class DhcpAgent(manager.Manager):
         updated_port = dhcp.DictModel(payload['port'])
         network = self.cache.get_network_by_id(updated_port.network_id)
         if network:
-            prev_port = self.cache.get_port_by_id(updated_port.id)
             self.cache.put_port(updated_port)
             self.call_driver('reload_allocations', network)
-            self.release_lease_for_removed_ips(prev_port, updated_port,
-                                               network)
 
     # Use the update handler for the port create event.
     port_create_end = port_update_end
@@ -330,12 +312,6 @@ class DhcpAgent(manager.Manager):
             network = self.cache.get_network_by_id(port.network_id)
             self.cache.remove_port(port)
             self.call_driver('reload_allocations', network)
-            removed_ips = [fixed_ip.ip_address
-                           for fixed_ip in port.fixed_ips]
-            self.call_driver('release_lease',
-                             network,
-                             mac_address=port.mac_address,
-                             removed_ips=removed_ips)
 
     def enable_isolated_metadata_proxy(self, network):
 
index fd30bd8c6107c3088bb9d420bb172ac54517840a..1a508c15c78f75a7ca270f8f1d7d1dc3d0b71a78 100644 (file)
@@ -134,10 +134,6 @@ class DhcpBase(object):
     def active(self):
         """Boolean representing the running state of the DHCP server."""
 
-    @abc.abstractmethod
-    def release_lease(self, mac_address, removed_ips):
-        """Release a DHCP lease."""
-
     @abc.abstractmethod
     def reload_allocations(self):
         """Force the DHCP server to reload the assignment database."""
@@ -379,9 +375,6 @@ class Dnsmasq(DhcpLocalProcess):
             cmd = ['%s=%s' % pair for pair in env.items()] + cmd
             utils.execute(cmd, self.root_helper)
 
-    def release_lease(self, mac_address, removed_ips):
-        pass
-
     def _release_lease(self, mac_address, ip):
         """Release a DHCP lease."""
         cmd = ['dhcp_release', self.interface_name, ip, mac_address]
index 2bbd573df2cafebcc1c9fee1c1a55d6ac0c4f59c..ada98a3d1b2393d672b06e6561eaa3af10b9693b 100644 (file)
@@ -44,9 +44,6 @@ class DhcpNoOpDriver(dhcp.DhcpLocalProcess):
             self.device_manager.destroy(self.network, self.interface_name)
         self._remove_config_files()
 
-    def release_lease(self, mac_address, removed_ips):
-        pass
-
     def reload_allocations(self):
         """Force the DHCP server to reload the assignment database."""
         pass
index 9c475b50289e961e66c19b4c3e4187db92f85aad..f9f2002f3f33f876144845704ee61c3ea7e42ac7 100644 (file)
@@ -793,7 +793,6 @@ class TestDhcpAgentEventHandler(base.BaseTestCase):
         self.dhcp.port_update_end(None, payload)
         self.cache.assert_has_calls(
             [mock.call.get_network_by_id(fake_port2.network_id),
-             mock.call.get_port_by_id(fake_port2.id),
              mock.call.put_port(mock.ANY)])
         self.call_driver.assert_called_once_with('reload_allocations',
                                                  fake_network)
@@ -807,16 +806,9 @@ class TestDhcpAgentEventHandler(base.BaseTestCase):
         self.dhcp.port_update_end(None, payload)
         self.cache.assert_has_calls(
             [mock.call.get_network_by_id(fake_port1.network_id),
-             mock.call.get_port_by_id(fake_port1.id),
              mock.call.put_port(mock.ANY)])
         self.call_driver.assert_has_calls(
-            [mock.call.call_driver('reload_allocations', fake_network),
-             mock.call.call_driver(
-                 'release_lease',
-                 fake_network,
-                 mac_address=fake_port1.mac_address,
-                 removed_ips=set([updated_fake_port1.fixed_ips[0].ip_address]))
-             ])
+            [mock.call.call_driver('reload_allocations', fake_network)])
 
     def test_port_delete_end(self):
         payload = dict(port_id=fake_port2.id)
@@ -824,18 +816,12 @@ class TestDhcpAgentEventHandler(base.BaseTestCase):
         self.cache.get_port_by_id.return_value = fake_port2
 
         self.dhcp.port_delete_end(None, payload)
-        removed_ips = [fixed_ip.ip_address
-                       for fixed_ip in fake_port2.fixed_ips]
         self.cache.assert_has_calls(
             [mock.call.get_port_by_id(fake_port2.id),
              mock.call.get_network_by_id(fake_network.id),
              mock.call.remove_port(fake_port2)])
         self.call_driver.assert_has_calls(
-            [mock.call.call_driver('reload_allocations', fake_network),
-             mock.call.call_driver('release_lease',
-                                   fake_network,
-                                   mac_address=fake_port2.mac_address,
-                                   removed_ips=removed_ips)])
+            [mock.call.call_driver('reload_allocations', fake_network)])
 
     def test_port_delete_end_unknown_port(self):
         payload = dict(port_id='unknown')
index 459eabe0c6be4b1dab70132b2438dec7ef84a18f..617ce21d2f632fcc56dc21fd0411442560b08d84 100644 (file)
@@ -324,9 +324,6 @@ class LocalChild(dhcp.DhcpLocalProcess):
     def spawn_process(self):
         self.called.append('spawn')
 
-    def release_lease(self):
-        self.called.append('release_lease')
-
 
 class TestBase(base.BaseTestCase):
     def setUp(self):
@@ -381,9 +378,6 @@ class TestDhcpBase(TestBase):
             def reload_allocations(self):
                 pass
 
-            def release_lease(self):
-                pass
-
             @property
             def active(self):
                 return True