l3_plugin = None
def setUp(self):
- # Save the global RESOURCE_ATTRIBUTE_MAP
+ # Save the global RESOURCE_ATTRIBUTE_MAP before loading plugin
self.saved_attr_map = {}
for resource, attrs in attributes.RESOURCE_ATTRIBUTE_MAP.iteritems():
self.saved_attr_map[resource] = attrs.copy()
'ovs_neutron_plugin.OVSNeutronPluginV2')
def setUp(self):
- self.dhcp_notifier = dhcp_rpc_agent_api.DhcpAgentNotifyAPI()
- self.dhcp_notifier_cls_p = mock.patch(
- 'neutron.api.rpc.agentnotifiers.dhcp_rpc_agent_api.'
- 'DhcpAgentNotifyAPI')
- self.dhcp_notifier_cls = self.dhcp_notifier_cls_p.start()
- self.dhcp_notifier_cls.return_value = self.dhcp_notifier
- # Save the global RESOURCE_ATTRIBUTE_MAP
+ # Save the global RESOURCE_ATTRIBUTE_MAP before loading plugin
self.saved_attr_map = {}
for resource, attrs in attributes.RESOURCE_ATTRIBUTE_MAP.iteritems():
self.saved_attr_map[resource] = attrs.copy()
super(OvsDhcpAgentNotifierTestCase, self).setUp(self.plugin_str)
+ # the notifier is used to get access to make_msg() method only
+ self.dhcp_notifier = dhcp_rpc_agent_api.DhcpAgentNotifyAPI()
+ self.dhcp_notifier_cast = mock.patch(
+ 'neutron.api.rpc.agentnotifiers.dhcp_rpc_agent_api.'
+ 'DhcpAgentNotifyAPI.cast').start()
ext_mgr = extensions.PluginAwareExtensionManager.get_instance()
self.ext_api = test_extensions.setup_extensions_middleware(ext_mgr)
self.adminContext = context.get_admin_context()
attributes.RESOURCE_ATTRIBUTE_MAP = self.saved_attr_map
def test_network_add_to_dhcp_agent_notification(self):
- with mock.patch.object(self.dhcp_notifier, 'cast') as mock_dhcp:
- with self.network() as net1:
- network_id = net1['network']['id']
- self._register_agent_states()
- hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
- DHCP_HOSTA)
- self._add_network_to_dhcp_agent(hosta_id,
- network_id)
- mock_dhcp.assert_called_with(
- mock.ANY,
- self.dhcp_notifier.make_msg(
- 'network_create_end',
- payload={'network': {'id': network_id}}),
- topic='dhcp_agent.' + DHCP_HOSTA)
+ with self.network() as net1:
+ network_id = net1['network']['id']
+ self._register_agent_states()
+ hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
+ DHCP_HOSTA)
+ self._add_network_to_dhcp_agent(hosta_id,
+ network_id)
+ self.dhcp_notifier_cast.assert_called_with(
+ mock.ANY,
+ self.dhcp_notifier.make_msg(
+ 'network_create_end',
+ payload={'network': {'id': network_id}}),
+ topic='dhcp_agent.' + DHCP_HOSTA)
def test_network_remove_from_dhcp_agent_notification(self):
with self.network(do_delete=False) as net1:
DHCP_HOSTA)
self._add_network_to_dhcp_agent(hosta_id,
network_id)
- with mock.patch.object(self.dhcp_notifier, 'cast') as mock_dhcp:
- self._remove_network_from_dhcp_agent(hosta_id,
- network_id)
- mock_dhcp.assert_called_with(
- mock.ANY,
- self.dhcp_notifier.make_msg(
- 'network_delete_end',
- payload={'network_id': network_id}),
- topic='dhcp_agent.' + DHCP_HOSTA)
+
+ self._remove_network_from_dhcp_agent(hosta_id,
+ network_id)
+ self.dhcp_notifier_cast.assert_called_with(
+ mock.ANY,
+ self.dhcp_notifier.make_msg(
+ 'network_delete_end',
+ payload={'network_id': network_id}),
+ topic='dhcp_agent.' + DHCP_HOSTA)
def test_agent_updated_dhcp_agent_notification(self):
- with mock.patch.object(self.dhcp_notifier, 'cast') as mock_dhcp:
- self._register_agent_states()
- hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
- DHCP_HOSTA)
- self._disable_agent(hosta_id, admin_state_up=False)
- mock_dhcp.assert_called_with(
- mock.ANY, self.dhcp_notifier.make_msg(
- 'agent_updated',
- payload={'admin_state_up': False}),
- topic='dhcp_agent.' + DHCP_HOSTA)
+ self._register_agent_states()
+ hosta_id = self._get_agent_id(constants.AGENT_TYPE_DHCP,
+ DHCP_HOSTA)
+ self._disable_agent(hosta_id, admin_state_up=False)
+
+ self.dhcp_notifier_cast.assert_called_with(
+ mock.ANY, self.dhcp_notifier.make_msg(
+ 'agent_updated',
+ payload={'admin_state_up': False}),
+ topic='dhcp_agent.' + DHCP_HOSTA)
def _network_port_create(
self, hosts, gateway=attributes.ATTR_NOT_SPECIFIED, owner=None):
'configurations': {'dhcp_driver': 'dhcp_driver',
'use_namespaces': True, },
'agent_type': constants.AGENT_TYPE_DHCP})
- with mock.patch.object(self.dhcp_notifier, 'cast') as mock_dhcp:
- with self.network(do_delete=False) as net1:
- with self.subnet(network=net1,
- gateway_ip=gateway,
- do_delete=False) as subnet1:
- if owner:
- with self.port(subnet=subnet1,
- no_delete=True,
- device_owner=owner) as port:
- return [mock_dhcp, net1, subnet1, port]
- else:
- with self.port(subnet=subnet1,
- no_delete=True) as port:
- return [mock_dhcp, net1, subnet1, port]
-
- def _notification_mocks(self, hosts, mock_dhcp, net, subnet, port):
+ with self.network(do_delete=False) as net1:
+ with self.subnet(network=net1,
+ gateway_ip=gateway,
+ do_delete=False) as subnet1:
+ if owner:
+ with self.port(subnet=subnet1,
+ no_delete=True,
+ device_owner=owner) as port:
+ return [net1, subnet1, port]
+ else:
+ with self.port(subnet=subnet1,
+ no_delete=True) as port:
+ return [net1, subnet1, port]
+
+ def _notification_mocks(self, hosts, net, subnet, port):
host_calls = {}
for host in hosts:
expected_calls = [
def test_network_port_create_notification(self):
hosts = [DHCP_HOSTA]
- [mock_dhcp, net, subnet, port] = self._network_port_create(hosts)
- expected_calls = self._notification_mocks(hosts, mock_dhcp,
- net, subnet, port)
- self.assertEqual(expected_calls[DHCP_HOSTA], mock_dhcp.call_args_list)
+ net, subnet, port = self._network_port_create(hosts)
+ expected_calls = self._notification_mocks(hosts, net, subnet, port)
+ self.assertEqual(
+ expected_calls[DHCP_HOSTA], self.dhcp_notifier_cast.call_args_list)
def test_network_ha_port_create_notification(self):
cfg.CONF.set_override('dhcp_agents_per_network', 2)
hosts = [DHCP_HOSTA, DHCP_HOSTC]
- [mock_dhcp, net, subnet, port] = self._network_port_create(hosts)
- expected_calls = self._notification_mocks(hosts, mock_dhcp,
- net, subnet, port)
+ net, subnet, port = self._network_port_create(hosts)
+ expected_calls = self._notification_mocks(hosts, net, subnet, port)
for expected in expected_calls[DHCP_HOSTA]:
- self.assertIn(expected, mock_dhcp.call_args_list)
+ self.assertIn(expected, self.dhcp_notifier_cast.call_args_list)
for expected in expected_calls[DHCP_HOSTC]:
- self.assertIn(expected, mock_dhcp.call_args_list)
+ self.assertIn(expected, self.dhcp_notifier_cast.call_args_list)
class OvsL3AgentNotifierTestCase(test_l3_plugin.L3NatTestCaseMixin,