Use "OVNMechDriver" instance in "TestOvn[Nb|Sb]IdlNotifyHandler"
The test classes "TestOvn[Nb|Sb]IdlNotifyHandler" now use the "OVNMechDriver" instance to create the "OvnNbIdl" instance, that is stored in "self.mech_driver", instead of "self.driver". Closes-Bug: #1990374 Change-Id: Ieef6c8a02ca0cf85bc72b9f7d09b46dbd0e073be
This commit is contained in:
parent
cd2c5be839
commit
e9b5a27001
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue