@@ -278,6 +278,9 @@ def test_chassis_system_neigh(self, vct):
278
278
279
279
assert test_neigh != "" , "Neigh not found in ASIC_DB"
280
280
281
+ # Preserve test neigh asic db key for delete verification later
282
+ test_neigh_asic_db_key = test_neigh
283
+
281
284
# Check for presence of encap index, retrieve and store it for sync verification
282
285
test_neigh_entry = asic_db .wait_for_entry ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" , test_neigh )
283
286
test_neigh_entry_attrs = asic_db .wait_for_fields ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" , test_neigh , ["SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_INDEX" ])
@@ -308,6 +311,9 @@ def test_chassis_system_neigh(self, vct):
308
311
309
312
assert test_sysneigh != "" , "Neigh is not sync-ed to chassis app db"
310
313
314
+ # Preserve test sys neigh chassis app db key for delete verification later
315
+ test_sysneigh_chassis_app_db_key = test_sysneigh
316
+
311
317
test_sysneigh_entry = chassis_app_db .get_entry ("SYSTEM_NEIGH" , test_sysneigh )
312
318
sys_neigh_encap_index = test_sysneigh_entry .get ("encap_index" )
313
319
assert sys_neigh_encap_index != "" , "System neigh in chassis app db does not have encap index"
@@ -335,6 +341,7 @@ def test_chassis_system_neigh(self, vct):
335
341
if lc_switch_id != "0" :
336
342
# Linecard other than linecard 1
337
343
asic_db = dvs .get_asic_db ()
344
+ asic_db .wait_for_n_keys ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" , 1 )
338
345
neighkeys = asic_db .get_keys ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" )
339
346
assert len (neighkeys ), "No neigh entries in ASIC_DB"
340
347
@@ -347,6 +354,9 @@ def test_chassis_system_neigh(self, vct):
347
354
break
348
355
349
356
assert remote_neigh != "" , "Remote neigh not found in ASIC_DB"
357
+
358
+ # Preserve remote neigh asic db neigh key for delete verification later
359
+ test_remote_neigh_asic_db_key = remote_neigh
350
360
351
361
# Check for kernel entries
352
362
@@ -406,16 +416,8 @@ def test_chassis_system_neigh(self, vct):
406
416
# Check for presence of the neighbor in ASIC_DB. The deleted neighbor should
407
417
# not be present in the asic db
408
418
asic_db = dvs .get_asic_db ()
409
- neighkeys = asic_db .get_keys ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" )
410
-
411
- test_neigh = ""
412
- for nkey in neighkeys :
413
- ne = ast .literal_eval (nkey )
414
- if ne ['ip' ] == test_neigh_ip :
415
- test_neigh = nkey
416
- break
417
-
418
- assert test_neigh == "" , "Stale neigh entry found in ASIC_DB"
419
+ neighkeys = asic_db .wait_for_deleted_entry ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" , test_neigh_asic_db_key )
420
+ assert len (neighkeys ) == 0 , "Stale neigh entry found in ASIC_DB"
419
421
420
422
break
421
423
@@ -425,17 +427,8 @@ def test_chassis_system_neigh(self, vct):
425
427
if name .startswith ("supervisor" ):
426
428
dvs = dvss [name ]
427
429
chassis_app_db = DVSDatabase (swsscommon .CHASSIS_APP_DB , dvs .redis_chassis_sock )
428
- sysneighkeys = chassis_app_db .get_keys ("SYSTEM_NEIGH" )
429
-
430
- test_sysneigh = ""
431
- for sysnk in sysneighkeys :
432
- sysnk_tok = sysnk .split ("|" )
433
- assert len (sysnk_tok ) == 3 , "Invalid system neigh key in chassis app db"
434
- if sysnk_tok [2 ] == test_neigh_ip :
435
- test_sysneigh = sysnk
436
- break
437
-
438
- assert test_sysneigh == "" , "Stale neigh entry in chassis app db"
430
+ sysneighkeys = chassis_app_db .wait_for_deleted_entry ("SYSTEM_NEIGH" , test_sysneigh_chassis_app_db_key )
431
+ assert len (sysneighkeys ) == 0 , "Stale neigh entry in chassis app db"
439
432
440
433
break
441
434
@@ -459,16 +452,8 @@ def test_chassis_system_neigh(self, vct):
459
452
# Check for presence of the remote neighbor in ASIC_DB. The remote neighbor corresponding
460
453
# to the deleted static neigbor should not be present
461
454
asic_db = dvs .get_asic_db ()
462
- neighkeys = asic_db .get_keys ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" )
463
-
464
- remote_neigh = ""
465
- for nkey in neighkeys :
466
- ne = ast .literal_eval (nkey )
467
- if ne ['ip' ] == test_neigh_ip :
468
- remote_neigh = nkey
469
- break
470
-
471
- assert remote_neigh == "" , "Stale remote neigh in ASIC_DB"
455
+ neighkeys = asic_db .wait_for_deleted_entry ("ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY" , test_remote_neigh_asic_db_key )
456
+ assert len (neighkeys ) == 0 , "Stale remote neigh in ASIC_DB"
472
457
473
458
# Check for kernel entries. Kernel entries (neigh and route) should have been removed
474
459
0 commit comments