22import re
33import time
44import json
5- import redis
65import pytest
76
87from swsscommon import swsscommon
@@ -37,29 +36,6 @@ def getCrmConfigStr(dvs, key, counter):
3736 return k [1 ]
3837 return ""
3938
40- def setReadOnlyAttr (dvs , obj , attr , val ):
41-
42- db = swsscommon .DBConnector (swsscommon .ASIC_DB , dvs .redis_sock , 0 )
43- tbl = swsscommon .Table (db , "ASIC_STATE:{0}" .format (obj ))
44- keys = tbl .getKeys ()
45-
46- assert len (keys ) == 1
47-
48- swVid = keys [0 ]
49- r = redis .Redis (unix_socket_path = dvs .redis_sock , db = swsscommon .ASIC_DB ,
50- encoding = "utf-8" , decode_responses = True )
51- swRid = r .hget ("VIDTORID" , swVid )
52-
53- assert swRid is not None
54-
55- ntf = swsscommon .NotificationProducer (db , "SAI_VS_UNITTEST_CHANNEL" )
56- fvp = swsscommon .FieldValuePairs ()
57- ntf .send ("enable_unittests" , "true" , fvp )
58- fvp = swsscommon .FieldValuePairs ([(attr , val )])
59- key = "SAI_OBJECT_TYPE_SWITCH:" + swRid
60-
61- ntf .send ("set_ro" , key , fvp )
62-
6339def check_syslog (dvs , marker , err_log , expected_cnt ):
6440 (exitcode , num ) = dvs .runcmd (['sh' , '-c' , "awk \' /%s/,ENDFILE {print;}\' /var/log/syslog | grep \" %s\" | wc -l" % (marker , err_log )])
6541 assert num .strip () >= str (expected_cnt )
@@ -74,7 +50,7 @@ def test_CrmFdbEntry(self, dvs, testlog):
7450 dvs .servers [2 ].runcmd ("sysctl -w net.ipv6.conf.eth0.disable_ipv6=1" )
7551 dvs .runcmd ("crm config polling interval 1" )
7652
77- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
53+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
7854
7955 time .sleep (2 )
8056
@@ -101,7 +77,7 @@ def test_CrmFdbEntry(self, dvs, testlog):
10177 tbl .set ("Vlan2|Ethernet8" , fvs )
10278
10379 # update available counter
104- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '999' )
80+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '999' )
10581
10682 time .sleep (2 )
10783
@@ -113,7 +89,7 @@ def test_CrmFdbEntry(self, dvs, testlog):
11389 assert avail_counter - new_avail_counter == 1
11490
11591 # update available counter
116- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
92+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_FDB_ENTRY' , '1000' )
11793
11894 time .sleep (2 )
11995
@@ -143,7 +119,7 @@ def test_CrmIpv4Route(self, dvs, testlog):
143119
144120 dvs .runcmd ("crm config polling interval 1" )
145121
146- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
122+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
147123
148124 # add static neighbor
149125 dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
@@ -160,7 +136,7 @@ def test_CrmIpv4Route(self, dvs, testlog):
160136
161137 # add route and update available counter
162138 ps .set ("2.2.2.0/24" , fvs )
163- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '999' )
139+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '999' )
164140
165141 time .sleep (2 )
166142
@@ -174,7 +150,7 @@ def test_CrmIpv4Route(self, dvs, testlog):
174150 # remove route and update available counter
175151 ps ._del ("2.2.2.0/24" )
176152 dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
177- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
153+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_ROUTE_ENTRY' , '1000' )
178154
179155 time .sleep (2 )
180156
@@ -213,7 +189,7 @@ def test_CrmIpv6Route(self, dvs, testlog):
213189
214190 dvs .runcmd ("crm config polling interval 1" )
215191
216- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
192+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
217193
218194 # get neighbor and arp entry
219195 dvs .servers [0 ].runcmd ("ping6 -c 4 fc00::1" )
@@ -230,7 +206,7 @@ def test_CrmIpv6Route(self, dvs, testlog):
230206
231207 # add route and update available counter
232208 ps .set ("2001::/64" , fvs )
233- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '999' )
209+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '999' )
234210
235211 time .sleep (2 )
236212
@@ -244,7 +220,7 @@ def test_CrmIpv6Route(self, dvs, testlog):
244220 # remove route and update available counter
245221 ps ._del ("2001::/64" )
246222 dvs .runcmd ("ip -6 neigh del fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
247- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
223+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_ROUTE_ENTRY' , '1000' )
248224
249225 time .sleep (2 )
250226
@@ -276,7 +252,7 @@ def test_CrmIpv4Nexthop(self, dvs, testlog):
276252
277253 dvs .runcmd ("crm config polling interval 1" )
278254
279- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
255+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
280256
281257 time .sleep (2 )
282258
@@ -286,7 +262,7 @@ def test_CrmIpv4Nexthop(self, dvs, testlog):
286262
287263 # add nexthop and update available counter
288264 dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
289- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '999' )
265+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '999' )
290266
291267 time .sleep (2 )
292268
@@ -299,7 +275,7 @@ def test_CrmIpv4Nexthop(self, dvs, testlog):
299275
300276 # remove nexthop and update available counter
301277 dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
302- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
278+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEXTHOP_ENTRY' , '1000' )
303279
304280 time .sleep (2 )
305281
@@ -335,7 +311,7 @@ def test_CrmIpv6Nexthop(self, dvs, testlog):
335311
336312 dvs .runcmd ("crm config polling interval 1" )
337313
338- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
314+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
339315
340316 time .sleep (2 )
341317
@@ -345,7 +321,7 @@ def test_CrmIpv6Nexthop(self, dvs, testlog):
345321
346322 # add nexthop and update available counter
347323 dvs .runcmd ("ip -6 neigh replace fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
348- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '999' )
324+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '999' )
349325
350326 time .sleep (2 )
351327
@@ -358,7 +334,7 @@ def test_CrmIpv6Nexthop(self, dvs, testlog):
358334
359335 # remove nexthop and update available counter
360336 dvs .runcmd ("ip -6 neigh del fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
361- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
337+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEXTHOP_ENTRY' , '1000' )
362338
363339 time .sleep (2 )
364340
@@ -390,7 +366,7 @@ def test_CrmIpv4Neighbor(self, dvs, testlog):
390366
391367 dvs .runcmd ("crm config polling interval 1" )
392368
393- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
369+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
394370
395371 time .sleep (2 )
396372
@@ -400,7 +376,7 @@ def test_CrmIpv4Neighbor(self, dvs, testlog):
400376
401377 # add neighbor and update available counter
402378 dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
403- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '999' )
379+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '999' )
404380
405381 time .sleep (2 )
406382
@@ -413,7 +389,7 @@ def test_CrmIpv4Neighbor(self, dvs, testlog):
413389
414390 # remove neighbor and update available counter
415391 dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
416- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
392+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV4_NEIGHBOR_ENTRY' , '1000' )
417393
418394 time .sleep (2 )
419395
@@ -449,7 +425,7 @@ def test_CrmIpv6Neighbor(self, dvs, testlog):
449425
450426 dvs .runcmd ("crm config polling interval 1" )
451427
452- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
428+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
453429
454430 time .sleep (2 )
455431
@@ -459,7 +435,7 @@ def test_CrmIpv6Neighbor(self, dvs, testlog):
459435
460436 # add neighbor and update available counter
461437 dvs .runcmd ("ip -6 neigh replace fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
462- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '999' )
438+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '999' )
463439
464440 time .sleep (2 )
465441
@@ -472,7 +448,7 @@ def test_CrmIpv6Neighbor(self, dvs, testlog):
472448
473449 # remove neighbor and update available counter
474450 dvs .runcmd ("ip -6 neigh del fc00::2 lladdr 11:22:33:44:55:66 dev Ethernet0" )
475- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
451+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_IPV6_NEIGHBOR_ENTRY' , '1000' )
476452
477453 time .sleep (2 )
478454
@@ -507,7 +483,7 @@ def test_CrmNexthopGroup(self, dvs, testlog):
507483
508484 dvs .runcmd ("crm config polling interval 1" )
509485
510- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
486+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
511487
512488 # add neighbors
513489 dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
@@ -525,7 +501,7 @@ def test_CrmNexthopGroup(self, dvs, testlog):
525501
526502 # add route and update available counter
527503 ps .set ("2.2.2.0/24" , fvs )
528- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '999' )
504+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '999' )
529505
530506 time .sleep (2 )
531507
@@ -540,7 +516,7 @@ def test_CrmNexthopGroup(self, dvs, testlog):
540516 ps ._del ("2.2.2.0/24" )
541517 dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
542518 dvs .runcmd ("ip neigh del 10.0.0.3 lladdr 11:22:33:44:55:66 dev Ethernet4" )
543- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
519+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_ENTRY' , '1000' )
544520
545521 time .sleep (2 )
546522
@@ -582,7 +558,7 @@ def test_CrmNexthopGroupMember(self, dvs, testlog):
582558
583559 dvs .runcmd ("crm config polling interval 1" )
584560
585- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
561+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
586562
587563 # add neighbors
588564 dvs .runcmd ("ip neigh replace 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
@@ -600,7 +576,7 @@ def test_CrmNexthopGroupMember(self, dvs, testlog):
600576
601577 # add route and update available counter
602578 ps .set ("2.2.2.0/24" , fvs )
603- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '998' )
579+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '998' )
604580
605581 time .sleep (2 )
606582
@@ -615,7 +591,7 @@ def test_CrmNexthopGroupMember(self, dvs, testlog):
615591 ps ._del ("2.2.2.0/24" )
616592 dvs .runcmd ("ip neigh del 10.0.0.1 lladdr 11:22:33:44:55:66 dev Ethernet0" )
617593 dvs .runcmd ("ip neigh del 10.0.0.3 lladdr 11:22:33:44:55:66 dev Ethernet4" )
618- setReadOnlyAttr (dvs , 'SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
594+ dvs . setReadOnlyAttr ('SAI_OBJECT_TYPE_SWITCH' , 'SAI_SWITCH_ATTR_AVAILABLE_NEXT_HOP_GROUP_MEMBER_ENTRY' , '1000' )
619595
620596 time .sleep (2 )
621597
0 commit comments