@@ -456,19 +456,30 @@ def test_agent_change_controller(self):
456
456
type (neutron_agent .AgentCache ()[self .chassis_name ]))
457
457
458
458
def test_agent_updated_at_use_nb_cfg_timestamp (self ):
459
+ def check_agent_ts ():
460
+ agent = neutron_agent .AgentCache ()[self .chassis_name ]
461
+ chassis_ts = self .sb_api .db_get (
462
+ 'Chassis_Private' , self .chassis_name ,
463
+ 'nb_cfg_timestamp' ).execute (check_error = True )
464
+ updated_at = datetime .datetime .fromtimestamp (
465
+ int (chassis_ts / 1000 ), datetime .timezone .utc )
466
+ return agent .updated_at == updated_at
467
+
459
468
if not self .sb_api .is_table_present ('Chassis_Private' ):
460
469
self .skipTest ('Ovn sb not support Chassis_Private' )
461
470
timestamp = timeutils .utcnow_ts ()
462
471
nb_cfg_timestamp = timestamp * 1000
463
- updated_at = datetime .datetime .fromtimestamp (
464
- timestamp , datetime .timezone .utc )
465
472
self .sb_api .db_set ('Chassis_Private' , self .chassis_name , (
466
473
'nb_cfg_timestamp' , nb_cfg_timestamp )).execute (check_error = True )
467
- n_utils .wait_until_true (lambda :
468
- neutron_agent .AgentCache ()[self .chassis_name ].
469
- chassis_private .nb_cfg_timestamp == nb_cfg_timestamp )
470
- agent = neutron_agent .AgentCache ()[self .chassis_name ]
471
- self .assertEqual (updated_at , agent .updated_at )
474
+ try :
475
+ n_utils .wait_until_true (check_agent_ts , timeout = 5 )
476
+ except n_utils .WaitTimeout :
477
+ agent = neutron_agent .AgentCache ()[self .chassis_name ]
478
+ chassis_ts = self .sb_api .db_get (
479
+ 'Chassis_Private' , self .chassis_name ,
480
+ 'nb_cfg_timestamp' ).execute (check_error = True )
481
+ self .fail ('Chassis timestamp: %s, agent updated_at: %s' %
482
+ (chassis_ts , str (agent .updated_at )))
472
483
473
484
474
485
class TestOvnIdlProbeInterval (base .TestOVNFunctionalBase ):
0 commit comments