Skip to content

Commit a06dab2

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Use "OVNMechDriver" instance in "TestOvn[Nb|Sb]IdlNotifyHandler"" into stable/yoga
2 parents 5ccd086 + f15a0b6 commit a06dab2

File tree

1 file changed

+46
-34
lines changed

1 file changed

+46
-34
lines changed

neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py

Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -376,11 +376,14 @@ def setUp(self):
376376
super(TestOvnNbIdlNotifyHandler, self).setUp()
377377
helper = ovs_idl.SchemaHelper(schema_json=OVN_NB_SCHEMA)
378378
helper.register_all()
379-
self.idl = ovsdb_monitor.OvnNbIdl(self.driver, "remote", helper)
379+
self.idl = ovsdb_monitor.OvnNbIdl(self.mech_driver, "remote", helper)
380380
self.lp_table = self.idl.tables.get('Logical_Switch_Port')
381-
self.driver.set_port_status_up = mock.Mock()
382-
self.driver.set_port_status_down = mock.Mock()
381+
self.mech_driver.set_port_status_up = mock.Mock()
382+
self.mech_driver.set_port_status_down = mock.Mock()
383383
mock.patch.object(self.idl, 'handle_db_schema_changes').start()
384+
self._mock_hash_ring = mock.patch.object(
385+
self.idl._hash_ring, 'get_node', return_value=self.idl._node_uuid)
386+
self._mock_hash_ring.start()
384387

385388
def _test_lsp_helper(self, event, new_row_json, old_row_json=None,
386389
table=None):
@@ -403,32 +406,33 @@ def _test_lsp_helper(self, event, new_row_json, old_row_json=None,
403406
def test_lsp_up_create_event(self):
404407
row_data = {"up": True, "name": "foo-name"}
405408
self._test_lsp_helper('create', row_data)
406-
self.driver.set_port_status_up.assert_called_once_with("foo-name")
407-
self.assertFalse(self.driver.set_port_status_down.called)
409+
self.mech_driver.set_port_status_up.assert_called_once_with("foo-name")
410+
self.assertFalse(self.mech_driver.set_port_status_down.called)
408411

409412
def test_lsp_down_create_event(self):
410413
row_data = {"up": False, "name": "foo-name"}
411414
self._test_lsp_helper('create', row_data)
412-
self.driver.set_port_status_down.assert_called_once_with("foo-name")
413-
self.assertFalse(self.driver.set_port_status_up.called)
415+
self.mech_driver.set_port_status_down.assert_called_once_with(
416+
"foo-name")
417+
self.assertFalse(self.mech_driver.set_port_status_up.called)
414418

415419
def test_lsp_up_not_set_event(self):
416420
row_data = {"up": ['set', []], "name": "foo-name"}
417421
self._test_lsp_helper('create', row_data)
418-
self.assertFalse(self.driver.set_port_status_up.called)
419-
self.assertFalse(self.driver.set_port_status_down.called)
422+
self.assertFalse(self.mech_driver.set_port_status_up.called)
423+
self.assertFalse(self.mech_driver.set_port_status_down.called)
420424

421425
def test_unwatch_logical_switch_port_create_events(self):
422426
self.idl.unwatch_logical_switch_port_create_events()
423427
row_data = {"up": True, "name": "foo-name"}
424428
self._test_lsp_helper('create', row_data)
425-
self.assertFalse(self.driver.set_port_status_up.called)
426-
self.assertFalse(self.driver.set_port_status_down.called)
429+
self.assertFalse(self.mech_driver.set_port_status_up.called)
430+
self.assertFalse(self.mech_driver.set_port_status_down.called)
427431

428432
row_data["up"] = False
429433
self._test_lsp_helper('create', row_data)
430-
self.assertFalse(self.driver.set_port_status_up.called)
431-
self.assertFalse(self.driver.set_port_status_down.called)
434+
self.assertFalse(self.mech_driver.set_port_status_up.called)
435+
self.assertFalse(self.mech_driver.set_port_status_down.called)
432436

433437
def test_post_connect(self):
434438
self.idl.post_connect()
@@ -440,51 +444,54 @@ def test_lsp_up_update_event(self):
440444
old_row_json = {"up": False}
441445
self._test_lsp_helper('update', new_row_json,
442446
old_row_json=old_row_json)
443-
self.driver.set_port_status_up.assert_called_once_with("foo-name")
444-
self.assertFalse(self.driver.set_port_status_down.called)
447+
self.mech_driver.set_port_status_up.assert_called_once_with("foo-name")
448+
self.assertFalse(self.mech_driver.set_port_status_down.called)
445449

446450
def test_lsp_down_update_event(self):
447451
new_row_json = {"up": False, "name": "foo-name"}
448452
old_row_json = {"up": True}
449453
self._test_lsp_helper('update', new_row_json,
450454
old_row_json=old_row_json)
451-
self.driver.set_port_status_down.assert_called_once_with("foo-name")
452-
self.assertFalse(self.driver.set_port_status_up.called)
455+
self.mech_driver.set_port_status_down.assert_called_once_with(
456+
"foo-name")
457+
self.assertFalse(self.mech_driver.set_port_status_up.called)
453458

454459
def test_lsp_up_update_event_no_old_data(self):
455460
new_row_json = {"up": True, "name": "foo-name"}
456461
self._test_lsp_helper('update', new_row_json,
457462
old_row_json=None)
458-
self.assertFalse(self.driver.set_port_status_up.called)
459-
self.assertFalse(self.driver.set_port_status_down.called)
463+
self.assertFalse(self.mech_driver.set_port_status_up.called)
464+
self.assertFalse(self.mech_driver.set_port_status_down.called)
460465

461466
def test_lsp_down_update_event_no_old_data(self):
462467
new_row_json = {"up": False, "name": "foo-name"}
463468
self._test_lsp_helper('update', new_row_json,
464469
old_row_json=None)
465-
self.assertFalse(self.driver.set_port_status_up.called)
466-
self.assertFalse(self.driver.set_port_status_down.called)
470+
self.assertFalse(self.mech_driver.set_port_status_up.called)
471+
self.assertFalse(self.mech_driver.set_port_status_down.called)
467472

468473
def test_lsp_other_column_update_event(self):
469474
new_row_json = {"up": False, "name": "foo-name",
470475
"addresses": ["10.0.0.2"]}
471476
old_row_json = {"addresses": ["10.0.0.3"]}
472477
self._test_lsp_helper('update', new_row_json,
473478
old_row_json=old_row_json)
474-
self.assertFalse(self.driver.set_port_status_up.called)
475-
self.assertFalse(self.driver.set_port_status_down.called)
479+
self.assertFalse(self.mech_driver.set_port_status_up.called)
480+
self.assertFalse(self.mech_driver.set_port_status_down.called)
476481

477482
def test_notify_other_table(self):
478483
new_row_json = {"name": "foo-name"}
479484
self._test_lsp_helper('create', new_row_json,
480485
table=self.idl.tables.get("Logical_Switch"))
481-
self.assertFalse(self.driver.set_port_status_up.called)
482-
self.assertFalse(self.driver.set_port_status_down.called)
486+
self.assertFalse(self.mech_driver.set_port_status_up.called)
487+
self.assertFalse(self.mech_driver.set_port_status_down.called)
483488

484489
@mock.patch.object(hash_ring_manager.HashRingManager, 'get_node')
485490
def test_notify_different_target_node(self, mock_get_node):
491+
self._mock_hash_ring.stop()
486492
mock_get_node.return_value = 'this-is-a-different-node'
487493
row = fakes.FakeOvsdbRow.create_one_ovsdb_row()
494+
row._table = mock.Mock(name='table-name')
488495
self.idl.notify_handler.notify = mock.Mock()
489496
self.idl.notify("create", row)
490497
# Assert that if the target_node returned by the ring is different
@@ -502,10 +509,11 @@ def setUp(self):
502509
sb_helper = ovs_idl.SchemaHelper(schema_json=OVN_SB_SCHEMA)
503510
sb_helper.register_table('Chassis')
504511
self.driver.agent_chassis_table = 'Chassis'
505-
self.sb_idl = ovsdb_monitor.OvnSbIdl(self.driver, "remote", sb_helper)
512+
self.sb_idl = ovsdb_monitor.OvnSbIdl(self.mech_driver, "remote",
513+
sb_helper)
506514
self.sb_idl.post_connect()
507515
self.chassis_table = self.sb_idl.tables.get('Chassis')
508-
self.driver.update_segment_host_mapping = mock.Mock()
516+
self.mech_driver.update_segment_host_mapping = mock.Mock()
509517
self.l3_plugin = directory.get_plugin(n_const.L3)
510518
self.l3_plugin.schedule_unhosted_gateways = mock.Mock()
511519

@@ -515,6 +523,10 @@ def setUp(self):
515523
"external_ids": ['map', [["ovn-bridge-mappings",
516524
"fake-phynet1:fake-br1"]]]
517525
}
526+
self._mock_hash_ring = mock.patch.object(
527+
self.sb_idl._hash_ring, 'get_node',
528+
return_value=self.sb_idl._node_uuid)
529+
self._mock_hash_ring.start()
518530

519531
def _test_chassis_helper(self, event, new_row_json, old_row_json=None):
520532
row_uuid = uuidutils.generate_uuid()
@@ -533,14 +545,14 @@ def _test_chassis_helper(self, event, new_row_json, old_row_json=None):
533545

534546
def test_chassis_create_event(self):
535547
self._test_chassis_helper('create', self.row_json)
536-
self.driver.update_segment_host_mapping.assert_called_once_with(
548+
self.mech_driver.update_segment_host_mapping.assert_called_once_with(
537549
'fake-hostname', ['fake-phynet1'])
538550
self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with(
539551
event_from_chassis=None)
540552

541553
def test_chassis_delete_event(self):
542554
self._test_chassis_helper('delete', self.row_json)
543-
self.driver.update_segment_host_mapping.assert_called_once_with(
555+
self.mech_driver.update_segment_host_mapping.assert_called_once_with(
544556
'fake-hostname', [])
545557
self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with(
546558
event_from_chassis='fake-name')
@@ -550,7 +562,7 @@ def test_chassis_update_event(self):
550562
old_row_json['external_ids'][1][0][1] = (
551563
"fake-phynet2:fake-br2")
552564
self._test_chassis_helper('update', self.row_json, old_row_json)
553-
self.driver.update_segment_host_mapping.assert_called_once_with(
565+
self.mech_driver.update_segment_host_mapping.assert_called_once_with(
554566
'fake-hostname', ['fake-phynet1'])
555567
self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with(
556568
event_from_chassis=None)
@@ -561,7 +573,7 @@ def test_chassis_update_event_reschedule_not_needed(self):
561573
old_row_json['external_ids'][1][1][1] = (
562574
"foo_value")
563575
self._test_chassis_helper('update', self.row_json, old_row_json)
564-
self.driver.update_segment_host_mapping.assert_not_called()
576+
self.mech_driver.update_segment_host_mapping.assert_not_called()
565577
self.l3_plugin.schedule_unhosted_gateways.assert_not_called()
566578

567579
def test_chassis_update_event_reschedule_lost_physnet(self):
@@ -575,7 +587,7 @@ def test_chassis_update_event_reschedule_add_physnet(self):
575587
old_row_json = copy.deepcopy(self.row_json)
576588
self.row_json['external_ids'][1][0][1] += ',foo_physnet:foo_br'
577589
self._test_chassis_helper('update', self.row_json, old_row_json)
578-
self.driver.update_segment_host_mapping.assert_called_once_with(
590+
self.mech_driver.update_segment_host_mapping.assert_called_once_with(
579591
'fake-hostname', ['fake-phynet1', 'foo_physnet'])
580592
self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with(
581593
event_from_chassis=None)
@@ -584,7 +596,7 @@ def test_chassis_update_event_reschedule_add_and_remove_physnet(self):
584596
old_row_json = copy.deepcopy(self.row_json)
585597
self.row_json['external_ids'][1][0][1] = 'foo_physnet:foo_br'
586598
self._test_chassis_helper('update', self.row_json, old_row_json)
587-
self.driver.update_segment_host_mapping.assert_called_once_with(
599+
self.mech_driver.update_segment_host_mapping.assert_called_once_with(
588600
'fake-hostname', ['foo_physnet'])
589601
self.l3_plugin.schedule_unhosted_gateways.assert_called_once_with(
590602
event_from_chassis=None)
@@ -597,7 +609,7 @@ def test_chassis_update_empty_no_external_ids(self):
597609
'ovsdb_monitor.ChassisEvent.'
598610
'handle_ha_chassis_group_changes') as mock_ha:
599611
self._test_chassis_helper('update', self.row_json, old_row_json)
600-
self.driver.update_segment_host_mapping.assert_not_called()
612+
self.mech_driver.update_segment_host_mapping.assert_not_called()
601613
self.l3_plugin.schedule_unhosted_gateways.assert_not_called()
602614
mock_ha.assert_not_called()
603615

0 commit comments

Comments
 (0)