fix DHCP port changed when dhcp-agent restart

When DHCP server is started, the periodic task is running
before loading cache state.The method port_update_end
need to use the cache information, but the cache information
has not been loaded.

Change-Id: I0d1da11bb559b7f0f9d4428b82573fb26916a933
Closes-Bug: #1420042
(cherry picked from commit 3d2543d710)
This commit is contained in:
dql 2015-03-09 12:52:11 +08:00 committed by Toshikazu Ichikawa
parent bdf194a0e1
commit 68459f99ed
2 changed files with 9 additions and 0 deletions

View File

@ -70,6 +70,9 @@ class DhcpAgent(manager.Manager):
config=self.conf,
resource_type='dhcp')
def init_host(self):
self.sync_state()
def _populate_networks_cache(self):
"""Populate the networks cache when the DHCP-agent starts."""
try:

View File

@ -222,6 +222,12 @@ class TestDhcpAgent(base.BaseTestCase):
self.mock_makedirs_p = mock.patch("os.makedirs")
self.mock_makedirs = self.mock_makedirs_p.start()
def test_init_host(self):
dhcp = dhcp_agent.DhcpAgent(HOSTNAME)
with mock.patch.object(dhcp, 'sync_state') as sync_state:
dhcp.init_host()
sync_state.assert_called_once_with()
def test_dhcp_agent_manager(self):
state_rpc_str = 'neutron.agent.rpc.PluginReportStateAPI'
# sync_state is needed for this test