@@ -376,11 +376,14 @@ def setUp(self):
376
376
super (TestOvnNbIdlNotifyHandler , self ).setUp ()
377
377
helper = ovs_idl .SchemaHelper (schema_json = OVN_NB_SCHEMA )
378
378
helper .register_all ()
379
- self .idl = ovsdb_monitor .OvnNbIdl (self .driver , "remote" , helper )
379
+ self .idl = ovsdb_monitor .OvnNbIdl (self .mech_driver , "remote" , helper )
380
380
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 ()
383
383
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 ()
384
387
385
388
def _test_lsp_helper (self , event , new_row_json , old_row_json = None ,
386
389
table = None ):
@@ -403,32 +406,33 @@ def _test_lsp_helper(self, event, new_row_json, old_row_json=None,
403
406
def test_lsp_up_create_event (self ):
404
407
row_data = {"up" : True , "name" : "foo-name" }
405
408
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 )
408
411
409
412
def test_lsp_down_create_event (self ):
410
413
row_data = {"up" : False , "name" : "foo-name" }
411
414
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 )
414
418
415
419
def test_lsp_up_not_set_event (self ):
416
420
row_data = {"up" : ['set' , []], "name" : "foo-name" }
417
421
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 )
420
424
421
425
def test_unwatch_logical_switch_port_create_events (self ):
422
426
self .idl .unwatch_logical_switch_port_create_events ()
423
427
row_data = {"up" : True , "name" : "foo-name" }
424
428
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 )
427
431
428
432
row_data ["up" ] = False
429
433
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 )
432
436
433
437
def test_post_connect (self ):
434
438
self .idl .post_connect ()
@@ -440,51 +444,54 @@ def test_lsp_up_update_event(self):
440
444
old_row_json = {"up" : False }
441
445
self ._test_lsp_helper ('update' , new_row_json ,
442
446
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 )
445
449
446
450
def test_lsp_down_update_event (self ):
447
451
new_row_json = {"up" : False , "name" : "foo-name" }
448
452
old_row_json = {"up" : True }
449
453
self ._test_lsp_helper ('update' , new_row_json ,
450
454
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 )
453
458
454
459
def test_lsp_up_update_event_no_old_data (self ):
455
460
new_row_json = {"up" : True , "name" : "foo-name" }
456
461
self ._test_lsp_helper ('update' , new_row_json ,
457
462
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 )
460
465
461
466
def test_lsp_down_update_event_no_old_data (self ):
462
467
new_row_json = {"up" : False , "name" : "foo-name" }
463
468
self ._test_lsp_helper ('update' , new_row_json ,
464
469
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 )
467
472
468
473
def test_lsp_other_column_update_event (self ):
469
474
new_row_json = {"up" : False , "name" : "foo-name" ,
470
475
"addresses" : ["10.0.0.2" ]}
471
476
old_row_json = {"addresses" : ["10.0.0.3" ]}
472
477
self ._test_lsp_helper ('update' , new_row_json ,
473
478
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 )
476
481
477
482
def test_notify_other_table (self ):
478
483
new_row_json = {"name" : "foo-name" }
479
484
self ._test_lsp_helper ('create' , new_row_json ,
480
485
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 )
483
488
484
489
@mock .patch .object (hash_ring_manager .HashRingManager , 'get_node' )
485
490
def test_notify_different_target_node (self , mock_get_node ):
491
+ self ._mock_hash_ring .stop ()
486
492
mock_get_node .return_value = 'this-is-a-different-node'
487
493
row = fakes .FakeOvsdbRow .create_one_ovsdb_row ()
494
+ row ._table = mock .Mock (name = 'table-name' )
488
495
self .idl .notify_handler .notify = mock .Mock ()
489
496
self .idl .notify ("create" , row )
490
497
# Assert that if the target_node returned by the ring is different
@@ -502,10 +509,11 @@ def setUp(self):
502
509
sb_helper = ovs_idl .SchemaHelper (schema_json = OVN_SB_SCHEMA )
503
510
sb_helper .register_table ('Chassis' )
504
511
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 )
506
514
self .sb_idl .post_connect ()
507
515
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 ()
509
517
self .l3_plugin = directory .get_plugin (n_const .L3 )
510
518
self .l3_plugin .schedule_unhosted_gateways = mock .Mock ()
511
519
@@ -515,6 +523,10 @@ def setUp(self):
515
523
"external_ids" : ['map' , [["ovn-bridge-mappings" ,
516
524
"fake-phynet1:fake-br1" ]]]
517
525
}
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 ()
518
530
519
531
def _test_chassis_helper (self , event , new_row_json , old_row_json = None ):
520
532
row_uuid = uuidutils .generate_uuid ()
@@ -533,14 +545,14 @@ def _test_chassis_helper(self, event, new_row_json, old_row_json=None):
533
545
534
546
def test_chassis_create_event (self ):
535
547
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 (
537
549
'fake-hostname' , ['fake-phynet1' ])
538
550
self .l3_plugin .schedule_unhosted_gateways .assert_called_once_with (
539
551
event_from_chassis = None )
540
552
541
553
def test_chassis_delete_event (self ):
542
554
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 (
544
556
'fake-hostname' , [])
545
557
self .l3_plugin .schedule_unhosted_gateways .assert_called_once_with (
546
558
event_from_chassis = 'fake-name' )
@@ -550,7 +562,7 @@ def test_chassis_update_event(self):
550
562
old_row_json ['external_ids' ][1 ][0 ][1 ] = (
551
563
"fake-phynet2:fake-br2" )
552
564
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 (
554
566
'fake-hostname' , ['fake-phynet1' ])
555
567
self .l3_plugin .schedule_unhosted_gateways .assert_called_once_with (
556
568
event_from_chassis = None )
@@ -561,7 +573,7 @@ def test_chassis_update_event_reschedule_not_needed(self):
561
573
old_row_json ['external_ids' ][1 ][1 ][1 ] = (
562
574
"foo_value" )
563
575
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 ()
565
577
self .l3_plugin .schedule_unhosted_gateways .assert_not_called ()
566
578
567
579
def test_chassis_update_event_reschedule_lost_physnet (self ):
@@ -575,7 +587,7 @@ def test_chassis_update_event_reschedule_add_physnet(self):
575
587
old_row_json = copy .deepcopy (self .row_json )
576
588
self .row_json ['external_ids' ][1 ][0 ][1 ] += ',foo_physnet:foo_br'
577
589
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 (
579
591
'fake-hostname' , ['fake-phynet1' , 'foo_physnet' ])
580
592
self .l3_plugin .schedule_unhosted_gateways .assert_called_once_with (
581
593
event_from_chassis = None )
@@ -584,7 +596,7 @@ def test_chassis_update_event_reschedule_add_and_remove_physnet(self):
584
596
old_row_json = copy .deepcopy (self .row_json )
585
597
self .row_json ['external_ids' ][1 ][0 ][1 ] = 'foo_physnet:foo_br'
586
598
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 (
588
600
'fake-hostname' , ['foo_physnet' ])
589
601
self .l3_plugin .schedule_unhosted_gateways .assert_called_once_with (
590
602
event_from_chassis = None )
@@ -597,7 +609,7 @@ def test_chassis_update_empty_no_external_ids(self):
597
609
'ovsdb_monitor.ChassisEvent.'
598
610
'handle_ha_chassis_group_changes' ) as mock_ha :
599
611
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 ()
601
613
self .l3_plugin .schedule_unhosted_gateways .assert_not_called ()
602
614
mock_ha .assert_not_called ()
603
615
0 commit comments