diff options
-rw-r--r-- | neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 80 |
1 files changed, 46 insertions, 34 deletions
diff --git a/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py b/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py index 3b9e883f56..82e7c365ed 100644 --- a/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py +++ b/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py @@ -378,11 +378,14 @@ class TestOvnNbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): super(TestOvnNbIdlNotifyHandler, self).setUp() helper = ovs_idl.SchemaHelper(schema_json=OVN_NB_SCHEMA) helper.register_all() - self.idl = ovsdb_monitor.OvnNbIdl(self.driver, "remote", helper) + self.idl = ovsdb_monitor.OvnNbIdl(self.mech_driver, "remote", helper) self.lp_table = self.idl.tables.get('Logical_Switch_Port') - self.driver.set_port_status_up = mock.Mock() - self.driver.set_port_status_down = mock.Mock() + self.mech_driver.set_port_status_up = mock.Mock() + self.mech_driver.set_port_status_down = mock.Mock() mock.patch.object(self.idl, 'handle_db_schema_changes').start() + self._mock_hash_ring = mock.patch.object( + self.idl._hash_ring, 'get_node', return_value=self.idl._node_uuid) + self._mock_hash_ring.start() def _test_lsp_helper(self, event, new_row_json, old_row_json=None, table=None): @@ -405,32 +408,33 @@ class TestOvnNbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): def test_lsp_up_create_event(self): row_data = {"up": True, "name": "foo-name"} self._test_lsp_helper('create', row_data) - self.driver.set_port_status_up.assert_called_once_with("foo-name") - self.assertFalse(self.driver.set_port_status_down.called) + self.mech_driver.set_port_status_up.assert_called_once_with("foo-name") + self.assertFalse(self.mech_driver.set_port_status_down.called) def test_lsp_down_create_event(self): row_data = {"up": False, "name": "foo-name"} self._test_lsp_helper('create', row_data) - self.driver.set_port_status_down.assert_called_once_with("foo-name") - self.assertFalse(self.driver.set_port_status_up.called) + self.mech_driver.set_port_status_down.assert_called_once_with( + "foo-name") + self.assertFalse(self.mech_driver.set_port_status_up.called) def test_lsp_up_not_set_event(self): row_data = {"up": ['set', []], "name": "foo-name"} self._test_lsp_helper('create', row_data) - self.assertFalse(self.driver.set_port_status_up.called) - self.assertFalse(self.driver.set_port_status_down.called) + self.assertFalse(self.mech_driver.set_port_status_up.called) + self.assertFalse(self.mech_driver.set_port_status_down.called) def test_unwatch_logical_switch_port_create_events(self): self.idl.unwatch_logical_switch_port_create_events() row_data = {"up": True, "name": "foo-name"} self._test_lsp_helper('create', row_data) - self.assertFalse(self.driver.set_port_status_up.called) - self.assertFalse(self.driver.set_port_status_down.called) + self.assertFalse(self.mech_driver.set_port_status_up.called) + self.assertFalse(self.mech_driver.set_port_status_down.called) row_data["up"] = False self._test_lsp_helper('create', row_data) - self.assertFalse(self.driver.set_port_status_up.called) - self.assertFalse(self.driver.set_port_status_down.called) + self.assertFalse(self.mech_driver.set_port_status_up.called) + self.assertFalse(self.mech_driver.set_port_status_down.called) def test_post_connect(self): self.idl.post_connect() @@ -442,30 +446,31 @@ class TestOvnNbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): old_row_json = {"up": False} self._test_lsp_helper('update', new_row_json, old_row_json=old_row_json) - self.driver.set_port_status_up.assert_called_once_with("foo-name") - self.assertFalse(self.driver.set_port_status_down.called) + self.mech_driver.set_port_status_up.assert_called_once_with("foo-name") + self.assertFalse(self.mech_driver.set_port_status_down.called) def test_lsp_down_update_event(self): new_row_json = {"up": False, "name": "foo-name"} old_row_json = {"up": True} self._test_lsp_helper('update', new_row_json, old_row_json=old_row_json) - self.driver.set_port_status_down.assert_called_once_with("foo-name") - self.assertFalse(self.driver.set_port_status_up.called) + self.mech_driver.set_port_status_down.assert_called_once_with( + "foo-name") + self.assertFalse(self.mech_driver.set_port_status_up.called) def test_lsp_up_update_event_no_old_data(self): new_row_json = {"up": True, "name": "foo-name"} self._test_lsp_helper('update', new_row_json, old_row_json=None) - self.assertFalse(self.driver.set_port_status_up.called) - self.assertFalse(self.driver.set_port_status_down.called) + self.assertFalse(self.mech_driver.set_port_status_up.called) + self.assertFalse(self.mech_driver.set_port_status_down.called) def test_lsp_down_update_event_no_old_data(self): new_row_json = {"up": False, "name": "foo-name"} self._test_lsp_helper('update', new_row_json, old_row_json=None) - self.assertFalse(self.driver.set_port_status_up.called) - self.assertFalse(self.driver.set_port_status_down.called) + self.assertFalse(self.mech_driver.set_port_status_up.called) + self.assertFalse(self.mech_driver.set_port_status_down.called) def test_lsp_other_column_update_event(self): new_row_json = {"up": False, "name": "foo-name", @@ -473,20 +478,22 @@ class TestOvnNbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): old_row_json = {"addresses": ["10.0.0.3"]} self._test_lsp_helper('update', new_row_json, old_row_json=old_row_json) - self.assertFalse(self.driver.set_port_status_up.called) - self.assertFalse(self.driver.set_port_status_down.called) + self.assertFalse(self.mech_driver.set_port_status_up.called) + self.assertFalse(self.mech_driver.set_port_status_down.called) def test_notify_other_table(self): new_row_json = {"name": "foo-name"} self._test_lsp_helper('create', new_row_json, table=self.idl.tables.get("Logical_Switch")) - self.assertFalse(self.driver.set_port_status_up.called) - self.assertFalse(self.driver.set_port_status_down.called) + self.assertFalse(self.mech_driver.set_port_status_up.called) + self.assertFalse(self.mech_driver.set_port_status_down.called) @mock.patch.object(hash_ring_manager.HashRingManager, 'get_node') def test_notify_different_target_node(self, mock_get_node): + self._mock_hash_ring.stop() mock_get_node.return_value = 'this-is-a-different-node' row = fakes.FakeOvsdbRow.create_one_ovsdb_row() + row._table = mock.Mock(name='table-name') self.idl.notify_handler.notify = mock.Mock() self.idl.notify("create", row) # Assert that if the target_node returned by the ring is different @@ -504,10 +511,11 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): sb_helper = ovs_idl.SchemaHelper(schema_json=OVN_SB_SCHEMA) sb_helper.register_table('Chassis') self.driver.agent_chassis_table = 'Chassis' - self.sb_idl = ovsdb_monitor.OvnSbIdl(self.driver, "remote", sb_helper) + self.sb_idl = ovsdb_monitor.OvnSbIdl(self.mech_driver, "remote", + sb_helper) self.sb_idl.post_connect() self.chassis_table = self.sb_idl.tables.get('Chassis') - self.driver.update_segment_host_mapping = mock.Mock() + self.mech_driver.update_segment_host_mapping = mock.Mock() self.l3_plugin = directory.get_plugin(n_const.L3) self.l3_plugin.schedule_unhosted_gateways = mock.Mock() @@ -517,6 +525,10 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): "external_ids": ['map', [["ovn-bridge-mappings", "fake-phynet1:fake-br1"]]] } + self._mock_hash_ring = mock.patch.object( + self.sb_idl._hash_ring, 'get_node', + return_value=self.sb_idl._node_uuid) + self._mock_hash_ring.start() def _test_chassis_helper(self, event, new_row_json, old_row_json=None): row_uuid = uuidutils.generate_uuid() @@ -535,14 +547,14 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): def test_chassis_create_event(self): self._test_chassis_helper('create', self.row_json) - self.driver.update_segment_host_mapping.assert_called_once_with( + self.mech_driver.update_segment_host_mapping.assert_called_once_with( 'fake-hostname', ['fake-phynet1']) self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with( event_from_chassis=None) def test_chassis_delete_event(self): self._test_chassis_helper('delete', self.row_json) - self.driver.update_segment_host_mapping.assert_called_once_with( + self.mech_driver.update_segment_host_mapping.assert_called_once_with( 'fake-hostname', []) self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with( event_from_chassis='fake-name') @@ -552,7 +564,7 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): old_row_json['external_ids'][1][0][1] = ( "fake-phynet2:fake-br2") self._test_chassis_helper('update', self.row_json, old_row_json) - self.driver.update_segment_host_mapping.assert_called_once_with( + self.mech_driver.update_segment_host_mapping.assert_called_once_with( 'fake-hostname', ['fake-phynet1']) self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with( event_from_chassis=None) @@ -563,7 +575,7 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): old_row_json['external_ids'][1][1][1] = ( "foo_value") self._test_chassis_helper('update', self.row_json, old_row_json) - self.driver.update_segment_host_mapping.assert_not_called() + self.mech_driver.update_segment_host_mapping.assert_not_called() self.l3_plugin.schedule_unhosted_gateways.assert_not_called() def test_chassis_update_event_reschedule_lost_physnet(self): @@ -577,7 +589,7 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): old_row_json = copy.deepcopy(self.row_json) self.row_json['external_ids'][1][0][1] += ',foo_physnet:foo_br' self._test_chassis_helper('update', self.row_json, old_row_json) - self.driver.update_segment_host_mapping.assert_called_once_with( + self.mech_driver.update_segment_host_mapping.assert_called_once_with( 'fake-hostname', ['fake-phynet1', 'foo_physnet']) self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with( event_from_chassis=None) @@ -586,7 +598,7 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): old_row_json = copy.deepcopy(self.row_json) self.row_json['external_ids'][1][0][1] = 'foo_physnet:foo_br' self._test_chassis_helper('update', self.row_json, old_row_json) - self.driver.update_segment_host_mapping.assert_called_once_with( + self.mech_driver.update_segment_host_mapping.assert_called_once_with( 'fake-hostname', ['foo_physnet']) self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with( event_from_chassis=None) @@ -599,7 +611,7 @@ class TestOvnSbIdlNotifyHandler(test_mech_driver.OVNMechanismDriverTestCase): 'ovsdb_monitor.ChassisEvent.' 'handle_ha_chassis_group_changes') as mock_ha: self._test_chassis_helper('update', self.row_json, old_row_json) - self.driver.update_segment_host_mapping.assert_not_called() + self.mech_driver.update_segment_host_mapping.assert_not_called() self.l3_plugin.schedule_unhosted_gateways.assert_not_called() mock_ha.assert_not_called() |