1- from swsscommon import swsscommon
2- import redis
31import time
4- import os
52import pytest
6- from pytest import *
7- import json
8- import re
93from port_dpb import Port
104from port_dpb import DPB
115
126@pytest .mark .usefixtures ('dpb_setup_fixture' )
7+ @pytest .mark .usefixtures ('dvs_vlan_manager' )
138class TestPortDPBVlan (object ):
149 def check_syslog (self , dvs , marker , log , expected_cnt ):
1510 (exitcode , num ) = dvs .runcmd (['sh' , '-c' , "awk \' /%s/,ENDFILE {print;}\' /var/log/syslog | grep \" %s\" | wc -l" % (marker , log )])
@@ -19,13 +14,13 @@ def check_syslog(self, dvs, marker, log, expected_cnt):
1914 @pytest.mark.skip()
2015 '''
2116 def test_dependency (self , dvs ):
22- dpb = DPB ()
23- dvs . setup_db ()
17+
18+ vlan = "100"
2419 p = Port (dvs , "Ethernet0" )
2520 p .sync_from_config_db ()
26- dvs . create_vlan ("100" )
21+ self . dvs_vlan . create_vlan (vlan )
2722 #print "Created VLAN100"
28- dvs . create_vlan_member ("100" , p .get_name ())
23+ self . dvs_vlan . create_vlan_member (vlan , p .get_name ())
2924 #print "Added Ethernet0 to VLAN100"
3025 marker = dvs .add_log_marker ()
3126 p .delete_from_config_db ()
@@ -34,7 +29,7 @@ def test_dependency(self, dvs):
3429 self .check_syslog (dvs , marker , "Cannot remove port as bridge port OID is present" , 1 )
3530 assert (p .exists_in_asic_db () == True )
3631
37- dvs . remove_vlan_member ("100" , p .get_name ())
32+ self . dvs_vlan . remove_vlan_member (vlan , p .get_name ())
3833 time .sleep (1 )
3934 # Verify that port is deleted
4035 assert (p .exists_in_asic_db () == False )
@@ -49,19 +44,20 @@ def test_dependency(self, dvs):
4944 p .verify_asic_db ()
5045 #print "ASIC DB verification passed!"
5146
52- dvs . remove_vlan ("100" )
47+ self . dvs_vlan . remove_vlan (vlan )
5348
5449 '''
5550 @pytest.mark.skip()
5651 '''
5752 def test_one_port_one_vlan (self , dvs ):
5853 dpb = DPB ()
59- dvs . setup_db ()
54+ vlan = "100"
6055
6156 # Breakout testing with VLAN dependency
62- dvs . create_vlan ("100" )
57+ self . dvs_vlan . create_vlan (vlan )
6358 #print "Created VLAN100"
64- dvs .create_vlan_member ("100" , "Ethernet0" )
59+ self .dvs_vlan .create_vlan_member (vlan , "Ethernet0" )
60+ self .dvs_vlan .get_and_verify_vlan_member_ids (1 )
6561 #print "Added Ethernet0 to VLAN100"
6662
6763 p = Port (dvs , "Ethernet0" )
@@ -72,17 +68,20 @@ def test_one_port_one_vlan(self, dvs):
7268 assert (p .exists_in_asic_db () == True )
7369 #print "Ethernet0 deleted from config DB and APP DB, waiting to be removed from VLAN"
7470
75- dvs . remove_vlan_member ("100" , "Ethernet0" )
76- time . sleep ( 1 )
71+ self . dvs_vlan . remove_vlan_member (vlan , "Ethernet0" )
72+ self . dvs_vlan . get_and_verify_vlan_member_ids ( 0 )
7773 assert (p .exists_in_asic_db () == False )
7874 #print "Ethernet0 removed from VLAN and also from ASIC DB"
7975
8076 dpb .create_child_ports (dvs , p , 4 )
8177
8278 # Breakin testing with VLAN dependency
8379 port_names = ["Ethernet0" , "Ethernet1" , "Ethernet2" , "Ethernet3" ]
80+ vlan_member_count = 0
8481 for pname in port_names :
85- dvs .create_vlan_member ("100" , pname )
82+ self .dvs_vlan .create_vlan_member (vlan , pname )
83+ vlan_member_count = vlan_member_count + 1
84+ self .dvs_vlan .get_and_verify_vlan_member_ids (vlan_member_count )
8685 #print "Add %s to VLAN"%port_names
8786
8887 child_ports = []
@@ -97,8 +96,9 @@ def test_one_port_one_vlan(self, dvs):
9796 #print "Deleted %s from config DB and APP DB"%port_names
9897
9998 for cp in child_ports :
100- dvs .remove_vlan_member ("100" , cp .get_name ())
101- time .sleep (1 )
99+ self .dvs_vlan .remove_vlan_member (vlan , cp .get_name ())
100+ vlan_member_count = vlan_member_count - 1
101+ self .dvs_vlan .get_and_verify_vlan_member_ids (vlan_member_count )
102102 assert (cp .exists_in_asic_db () == False )
103103 #print "Deleted %s from VLAN"%port_names
104104
@@ -111,22 +111,22 @@ def test_one_port_one_vlan(self, dvs):
111111 p .verify_asic_db ()
112112 #print "ASIC DB verification passed!"
113113
114- dvs . remove_vlan ("100" )
114+ self . dvs_vlan . remove_vlan (vlan )
115115
116116 '''
117117 @pytest.mark.skip()
118118 '''
119119 def test_one_port_multiple_vlan (self , dvs ):
120- dpb = DPB ()
121- dvs .setup_db ()
122120
123- dvs .create_vlan ("100" )
124- dvs .create_vlan ("101" )
125- dvs .create_vlan ("102" )
121+ dpb = DPB ()
122+ vlans = ["100" , "101" , "102" ]
123+ for vlan in vlans :
124+ self .dvs_vlan .create_vlan (vlan )
126125 #print "Created VLAN100, VLAN101, and VLAN102"
127- dvs .create_vlan_member ("100" , "Ethernet0" )
128- dvs .create_vlan_member ("101" , "Ethernet0" )
129- dvs .create_vlan_member ("102" , "Ethernet0" )
126+
127+ for vlan in vlans :
128+ self .dvs_vlan .create_vlan_member (vlan , "Ethernet0" )
129+ self .dvs_vlan .get_and_verify_vlan_member_ids (len (vlans ))
130130 #print "Added Ethernet0 to all three VLANs"
131131
132132 p = Port (dvs , "Ethernet0" )
@@ -137,20 +137,20 @@ def test_one_port_multiple_vlan(self, dvs):
137137 assert (p .exists_in_asic_db () == True )
138138 #print "Ethernet0 deleted from config DB and APP DB, waiting to be removed from VLANs"
139139
140- dvs . remove_vlan_member ("100" , "Ethernet0" )
141- time . sleep ( 1 )
140+ self . dvs_vlan . remove_vlan_member (vlans [ 0 ] , "Ethernet0" )
141+ self . dvs_vlan . get_and_verify_vlan_member_ids ( len ( vlans ) - 1 )
142142 assert (p .exists_in_asic_db () == True )
143143 #print "Ethernet0 removed from VLAN100 and its still present in ASIC DB"
144144
145- dvs . remove_vlan_member ("101" , "Ethernet0" )
146- time . sleep ( 1 )
145+ self . dvs_vlan . remove_vlan_member (vlans [ 1 ] , "Ethernet0" )
146+ self . dvs_vlan . get_and_verify_vlan_member_ids ( len ( vlans ) - 2 )
147147 assert (p .exists_in_asic_db () == True )
148148 #print "Ethernet0 removed from VLAN101 and its still present in ASIC DB"
149149
150- dvs . remove_vlan_member ("102" , "Ethernet0" )
151- time . sleep ( 1 )
150+ self . dvs_vlan . remove_vlan_member (vlans [ 2 ] , "Ethernet0" )
151+ self . dvs_vlan . get_and_verify_vlan_member_ids ( 0 )
152152 assert (p .exists_in_asic_db () == False )
153- #print "Ethernet0 removed from VLAN101 and also from ASIC DB"
153+ #print "Ethernet0 removed from VLAN102 and also from ASIC DB"
154154
155155 dpb .create_child_ports (dvs , p , 4 )
156156 #print "1X40G ---> 4x10G verified"
@@ -174,9 +174,9 @@ def test_one_port_multiple_vlan(self, dvs):
174174 #print "Added port:%s and verified all DBs"%p.get_name()
175175
176176 # Remove all three VLANs
177- dvs .remove_vlan ("100" )
178- dvs .remove_vlan ("101" )
179- dvs .remove_vlan ("102" )
177+ self . dvs_vlan .remove_vlan ("100" )
178+ self . dvs_vlan .remove_vlan ("101" )
179+ self . dvs_vlan .remove_vlan ("102" )
180180 #print "All three VLANs removed"
181181
182182 '''
@@ -197,13 +197,14 @@ def test_all_port_10_vlans(self, dvs):
197197 vlan_names .append (str (start_vlan + i ))
198198
199199 for vlan_name in vlan_names :
200- dvs .create_vlan (vlan_name )
200+ self . dvs_vlan .create_vlan (vlan_name )
201201 #print "%d VLANs created"%num_vlans
202202
203203 for port_name in port_names :
204204 for vlan_name in vlan_names :
205- dvs . create_vlan_member_tagged (vlan_name , port_name )
205+ self . dvs_vlan . create_vlan_member (vlan_name , port_name , tagging_mode = "tagged" )
206206 #print "All %d ports are added to all %d VLANs"%(num_ports,num_vlans)
207+ self .dvs_vlan .get_and_verify_vlan_member_ids (num_ports * num_vlans )
207208
208209 ports = []
209210 for port_name in port_names :
@@ -216,8 +217,9 @@ def test_all_port_10_vlans(self, dvs):
216217 assert (p .exists_in_app_db () == False )
217218 assert (p .exists_in_asic_db () == True )
218219 for vlan_name in vlan_names :
219- dvs .remove_vlan_member (vlan_name , port_name )
220- time .sleep (1 )
220+ self .dvs_vlan .remove_vlan_member (vlan_name , port_name )
221+
222+ self .dvs_vlan .get_and_verify_vlan_member_ids ((num_ports * num_vlans )- (len (ports )* num_vlans ))
221223 assert (p .exists_in_asic_db () == False )
222224 #print "All %d ports are removed from all %d VLANs and deleted"%(num_ports,num_vlans)
223225
@@ -229,5 +231,5 @@ def test_all_port_10_vlans(self, dvs):
229231 #print "Re-created all %d ports"%num_ports
230232
231233 for vlan_name in vlan_names :
232- dvs .remove_vlan (vlan_name )
234+ self . dvs_vlan .remove_vlan (vlan_name )
233235 #print "All %d VLANs removed"%num_vlans
0 commit comments