Merge "Only notify nova of port status changes if configured"
This commit is contained in:
commit
39035df0c2
|
@ -23,6 +23,7 @@ from neutron_lib.plugins import directory
|
|||
from neutron_lib.plugins.ml2 import api
|
||||
from neutron_lib import rpc as n_rpc
|
||||
from neutron_lib.services.qos import constants as qos_consts
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
import oslo_messaging
|
||||
from osprofiler import profiler
|
||||
|
@ -289,7 +290,12 @@ class RpcCallbacks(type_tunnel.TunnelRpcCallbackMixin):
|
|||
else:
|
||||
if port.device_owner.startswith(
|
||||
n_const.DEVICE_OWNER_COMPUTE_PREFIX):
|
||||
plugin.nova_notifier.notify_port_active_direct(port)
|
||||
# NOTE(haleyb): It is possible for a test to override a
|
||||
# config option after the plugin has been initialized so
|
||||
# the nova_notifier attribute is not set on the plugin.
|
||||
if (cfg.CONF.notify_nova_on_port_status_changes and
|
||||
hasattr(plugin, 'nova_notifier')):
|
||||
plugin.nova_notifier.notify_port_active_direct(port)
|
||||
return
|
||||
else:
|
||||
self.update_port_status_to_active(port, rpc_context, port_id, host)
|
||||
|
|
|
@ -250,6 +250,12 @@ class RpcCallbacksTestCase(base.BaseTestCase):
|
|||
(self.plugin.nova_notifier.notify_port_active_direct.
|
||||
assert_called_once_with(port))
|
||||
|
||||
def test_update_device_up_with_device_not_bound_to_host_no_notify(self):
|
||||
cfg.CONF.set_override('notify_nova_on_port_status_changes', False)
|
||||
self.assertIsNone(self._test_update_device_not_bound_to_host(
|
||||
self.callbacks.update_device_up))
|
||||
self.plugin.nova_notifier.notify_port_active_direct.assert_not_called()
|
||||
|
||||
def test_update_device_down_with_device_not_bound_to_host(self):
|
||||
self.assertEqual(
|
||||
{'device': 'fake_device', 'exists': True},
|
||||
|
|
Loading…
Reference in New Issue