diff --git a/neutron/agent/dhcp/agent.py b/neutron/agent/dhcp/agent.py index a5718409867..2ecc0705ed4 100644 --- a/neutron/agent/dhcp/agent.py +++ b/neutron/agent/dhcp/agent.py @@ -237,7 +237,7 @@ class DhcpAgent(manager.Manager): # allocation failure. When the subnet is updated with a new # allocation pool or a port is deleted to free up an IP, this # will automatically be retried on the notification - self.schedule_resync(e, network.id) + self.schedule_resync(str(e), network.id) if (isinstance(e, oslo_messaging.RemoteError) and e.exc_type == 'NetworkNotFound' or isinstance(e, exceptions.NetworkNotFound)): @@ -362,7 +362,7 @@ class DhcpAgent(manager.Manager): net = "*" LOG.debug("resync (%(network)s): %(reason)s", {"reason": r, "network": net}) - self.sync_state(reasons.keys()) + self.sync_state(list(reasons.keys())) def periodic_resync(self): """Spawn a thread to periodically resync the dhcp state.""" diff --git a/neutron/tests/unit/agent/dhcp/test_agent.py b/neutron/tests/unit/agent/dhcp/test_agent.py index d56ca1579cf..6fa8b174955 100644 --- a/neutron/tests/unit/agent/dhcp/test_agent.py +++ b/neutron/tests/unit/agent/dhcp/test_agent.py @@ -672,7 +672,7 @@ class TestDhcpAgent(base.BaseTestCase): sync_state.side_effect = RuntimeError with testtools.ExpectedException(RuntimeError): dhcp._periodic_resync_helper() - sync_state.assert_called_once_with(resync_reasons.keys()) + sync_state.assert_called_once_with(list(resync_reasons.keys())) self.assertEqual(0, len(dhcp.needs_resync_reasons)) def test_periodic_resync_helper_with_event(self): @@ -680,7 +680,7 @@ class TestDhcpAgent(base.BaseTestCase): dhcp = dhcp_agent.DhcpAgent(HOSTNAME) dhcp.schedule_resync('reason1', 'a') dhcp.schedule_resync('reason1', 'b') - reasons = dhcp.needs_resync_reasons.keys() + reasons = list(dhcp.needs_resync_reasons.keys()) with mock.patch.object(dhcp, 'sync_state') as sync_state: sync_state.side_effect = RuntimeError with testtools.ExpectedException(RuntimeError):