Merge "Notify port_update to agent for status change"

This commit is contained in:
Zuul 2017-10-20 20:36:57 +00:00 committed by Gerrit Code Review
commit c0fe9e34a1
2 changed files with 12 additions and 0 deletions

View File

@ -1409,6 +1409,8 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
if original_port['admin_state_up'] != updated_port['admin_state_up']:
need_port_update_notify = True
if original_port['status'] != updated_port['status']:
need_port_update_notify = True
# NOTE: In the case of DVR ports, the port-binding is done after
# router scheduling when sync_routers is called and so this call
# below may not be required for DVR routed interfaces. But still

View File

@ -806,6 +806,16 @@ class TestMl2PortsV2(test_plugin.TestPortsV2, Ml2PluginV2TestCase):
self.assertEqual('DOWN', port['port']['status'])
self.assertEqual('DOWN', self.port_create_status)
def test_notify_port_updated_for_status_change(self):
ctx = context.get_admin_context()
plugin = directory.get_plugin()
with self.port() as port:
with mock.patch.object(self.plugin,
'_notify_port_updated') as notify_mock:
port['port']['status'] = constants.PORT_STATUS_ACTIVE
plugin.update_port(ctx, port['port']['id'], port)
self.assertTrue(notify_mock.called)
def test_update_port_status_short_id(self):
ctx = context.get_admin_context()
plugin = directory.get_plugin()