@@ -652,8 +652,83 @@ def test_chassis_db_cleanup():
652
652
653
653
# Mock >= CHASSIS_DB_CLEANUP_MODULE_DOWN_PERIOD module down period for LINE-CARD1
654
654
down_module_key = lc2_name + "|"
655
- module_down_time = sup_module_updater .down_modules [down_module_key ]["down_time" ]
656
- sup_module_updater .down_modules [down_module_key ]["down_time" ] = module_down_time - ((CHASSIS_DB_CLEANUP_MODULE_DOWN_PERIOD + 10 )* 60 )
655
+ assert down_module_key not in sup_module_updater .down_modules .keys ()
656
+
657
+ sup_module_updater .module_down_chassis_db_cleanup ()
658
+
659
+ def test_chassis_db_bootup_with_empty_slot ():
660
+ chassis = MockChassis ()
661
+
662
+ #Supervisor
663
+ index = 0
664
+ sup_name = "SUPERVISOR0"
665
+ desc = "Supervisor card"
666
+ sup_slot = 16
667
+ serial = "RP1000101"
668
+ module_type = ModuleBase .MODULE_TYPE_SUPERVISOR
669
+ supervisor = MockModule (index , sup_name , desc , module_type , sup_slot , serial )
670
+ supervisor .set_midplane_ip ()
671
+ chassis .module_list .append (supervisor )
657
672
658
- # Run module database update from supervisor to run chassis db cleanup
659
- sup_module_updater .module_down_chassis_db_cleanup ()
673
+ #Linecard 0. Host name will be pushed for this to make clean up happen
674
+ index = 1
675
+ lc_name = "LINE-CARD0"
676
+ desc = "36 port 400G card"
677
+ lc_slot = 1
678
+ serial = "LC1000101"
679
+ module_type = ModuleBase .MODULE_TYPE_LINE
680
+ module = MockModule (index , lc_name , desc , module_type , lc_slot , serial )
681
+ module .set_midplane_ip ()
682
+ status = ModuleBase .MODULE_STATUS_ONLINE
683
+ module .set_oper_status (status )
684
+ chassis .module_list .append (module )
685
+
686
+ #Linecard 1. Host name will not be pushed for this so that clean up will not happen
687
+ index = 2
688
+ lc2_name = u"LINE-CARD1"
689
+ desc = "Unavailable'"
690
+ lc2_slot = 2
691
+ serial = "N/A"
692
+ module_type = ModuleBase .MODULE_TYPE_LINE
693
+ module2 = MockModule (index , lc2_name , desc , module_type , lc2_slot , serial )
694
+ module2 .set_midplane_ip ()
695
+ status = ModuleBase .MODULE_STATUS_EMPTY
696
+ module2 .set_oper_status (status )
697
+ chassis .module_list .append (module2 )
698
+
699
+ # Supervisor ModuleUpdater
700
+ sup_module_updater = ModuleUpdater (SYSLOG_IDENTIFIER , chassis , sup_slot , sup_slot )
701
+ sup_module_updater .modules_num_update ()
702
+
703
+ sup_module_updater .module_db_update ()
704
+
705
+ # check LC1 STATUS ONLINE in module table
706
+ fvs = sup_module_updater .module_table .get (lc_name )
707
+ if isinstance (fvs , list ):
708
+ fvs = dict (fvs [- 1 ])
709
+ assert ModuleBase .MODULE_STATUS_ONLINE == fvs [CHASSIS_MODULE_INFO_OPERSTATUS_FIELD ]
710
+
711
+ # check LC2 STATUS EMPTY in module table
712
+ fvs = sup_module_updater .module_table .get (lc2_name )
713
+ if isinstance (fvs , list ):
714
+ fvs = dict (fvs [- 1 ])
715
+ assert ModuleBase .MODULE_STATUS_EMPTY == fvs [CHASSIS_MODULE_INFO_OPERSTATUS_FIELD ]
716
+
717
+ # Both should no tbe in down_module keys.
718
+
719
+ down_module_lc1_key = lc_name + "|"
720
+ assert down_module_lc1_key not in sup_module_updater .down_modules .keys ()
721
+ down_module_lc2_key = lc_name + "|"
722
+ assert down_module_lc2_key not in sup_module_updater .down_modules .keys ()
723
+
724
+ # Change linecard module1 status to OFFLINE
725
+ status = ModuleBase .MODULE_STATUS_OFFLINE
726
+ module .set_oper_status (status )
727
+ sup_module_updater .module_db_update ()
728
+
729
+ fvs = sup_module_updater .module_table .get (lc_name )
730
+ if isinstance (fvs , list ):
731
+ fvs = dict (fvs [- 1 ])
732
+ assert status == fvs [CHASSIS_MODULE_INFO_OPERSTATUS_FIELD ]
733
+ assert down_module_lc1_key in sup_module_updater .down_modules .keys ()
734
+
0 commit comments