@@ -35,7 +35,37 @@ def check_table_doesnt_exists(db, table, key):
35
35
return True , error_info
36
36
37
37
38
-
38
+ def create_mclag_domain (dvs , domain_id , source_ip , peer_ip , peer_link ):
39
+ tbl = swsscommon .Table (dvs .cdb , "MCLAG_DOMAIN" )
40
+ fvs = swsscommon .FieldValuePairs ([("source_ip" , source_ip ),
41
+ ("peer_ip" , peer_ip ),
42
+ ("peer_link" , peer_link )])
43
+ tbl .set (domain_id , fvs )
44
+ time .sleep (1 )
45
+
46
+ def remove_mclag_domain (dvs , domain_id ):
47
+ tbl = swsscommon .Table (dvs .cdb , "MCLAG_DOMAIN" )
48
+ tbl ._del (domain_id )
49
+ time .sleep (1 )
50
+
51
+ def add_mclag_domain_field (dvs , domain_id , field , value ):
52
+ tbl = swsscommon .Table (dvs .cdb , "MCLAG_DOMAIN" )
53
+ fvs = swsscommon .FieldValuePairs ([(field , value )])
54
+ tbl .set (domain_id , fvs )
55
+ time .sleep (1 )
56
+
57
+ def create_mclag_interface (dvs , domain_id , mclag_interface ):
58
+ tbl = swsscommon .Table (dvs .cdb , "MCLAG_INTERFACE" )
59
+ fvs = swsscommon .FieldValuePairs ([("if_type" , "PortChannel" )])
60
+ key_string = domain_id + "|" + mclag_interface
61
+ tbl .set (key_string , fvs )
62
+ time .sleep (1 )
63
+
64
+ def remove_mclag_interface (dvs , domain_id , mclag_interface ):
65
+ tbl = swsscommon .Table (dvs .cdb , "MCLAG_INTERFACE" )
66
+ key_string = domain_id + "|" + mclag_interface
67
+ tbl ._del (key_string )
68
+ time .sleep (1 )
39
69
40
70
# Test MCLAG Configs
41
71
class TestMclagConfig (object ):
@@ -72,8 +102,7 @@ def test_mclag_cfg_domain_add(self, dvs, testlog):
72
102
delete_table_keys (self .cfg_db , self .CFG_MCLAG_DOMAIN_TABLE )
73
103
delete_table_keys (self .cfg_db , self .CFG_MCLAG_INTERFACE_TABLE )
74
104
75
- cmd_string = "config mclag add {} {} {} {}" .format (self .MCLAG_DOMAIN_ID , self .MCLAG_SRC_IP , self .MCLAG_PEER_IP , self .MCLAG_PEER_LINK )
76
- dvs .runcmd (cmd_string )
105
+ create_mclag_domain (dvs , self .MCLAG_DOMAIN_ID , self .MCLAG_SRC_IP , self .MCLAG_PEER_IP , self .MCLAG_PEER_LINK )
77
106
time .sleep (2 )
78
107
79
108
#check whether domain cfg table contents are same as configured values
@@ -86,27 +115,12 @@ def test_mclag_cfg_domain_add(self, dvs, testlog):
86
115
)
87
116
assert ok ,error_info
88
117
89
- # Testcase 2 Verify that second domain addition fails when there is already a domain configured
90
- @pytest .mark .dev_sanity
91
- def test_mclag_cfg_domain_add_2nd (self , dvs , testlog ):
92
- self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
93
- cmd_string = "config mclag add {} {} {} {}" .format (self .MCLAG_DOMAIN_2 , self .MCLAG_SRC_IP , self .MCLAG_PEER_IP , self .MCLAG_PEER_LINK )
94
- dvs .runcmd (cmd_string )
95
- time .sleep (2 )
96
-
97
- #check whether second domain config is not added to config db
98
- key_string = self .MCLAG_DOMAIN_2
99
- ok ,error_info = check_table_doesnt_exists (self .cfg_db , self .CFG_MCLAG_DOMAIN_TABLE , key_string )
100
- assert ok ,error_info
101
-
102
-
103
118
104
119
# Testcase 3 Verify Configuration of MCLAG Interface to existing domain
105
120
@pytest .mark .dev_sanity
106
121
def test_mclag_cfg_intf_add (self , dvs , testlog ):
107
122
self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
108
- cmd_string = "config mclag member add {} {}" .format (self .MCLAG_DOMAIN_ID , self .MCLAG_INTERFACE1 )
109
- dvs .runcmd (cmd_string )
123
+ create_mclag_interface (dvs , self .MCLAG_DOMAIN_ID , self .MCLAG_INTERFACE1 )
110
124
time .sleep (2 )
111
125
112
126
#check whether mclag interface config is reflected
@@ -118,9 +132,7 @@ def test_mclag_cfg_intf_add(self, dvs, testlog):
118
132
@pytest .mark .dev_sanity
119
133
def test_mclag_cfg_intf_remove_and_add (self , dvs , testlog ):
120
134
self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
121
-
122
- cmd_string = "config mclag member del {} {}" .format (self .MCLAG_DOMAIN_ID , self .MCLAG_INTERFACE1 )
123
- dvs .runcmd (cmd_string )
135
+ remove_mclag_interface (dvs , self .MCLAG_DOMAIN_ID , self .MCLAG_INTERFACE1 )
124
136
time .sleep (2 )
125
137
126
138
#check whether mclag interface is removed
@@ -129,13 +141,12 @@ def test_mclag_cfg_intf_remove_and_add(self, dvs, testlog):
129
141
assert ok ,error_info
130
142
131
143
#add different mclag interface
132
- cmd_string = "config mclag member del {} {}" .format (self .MCLAG_DOMAIN_ID , self .MCLAG_INTERFACE2 )
133
- dvs .runcmd (cmd_string )
144
+ create_mclag_interface (dvs , self .MCLAG_DOMAIN_ID , self .MCLAG_INTERFACE2 )
134
145
time .sleep (2 )
135
146
136
147
#check whether new mclag interface is added
137
148
key_string = self .MCLAG_DOMAIN_ID + "|" + self .MCLAG_INTERFACE2
138
- ok ,error_info = check_table_doesnt_exists (self .cfg_db , self .CFG_MCLAG_INTERFACE_TABLE , key_string )
149
+ ok ,error_info = check_table_exists (self .cfg_db , self .CFG_MCLAG_INTERFACE_TABLE , key_string )
139
150
assert ok ,error_info
140
151
141
152
# Testcase 5 Verify Configuration of valid values for session timeout
@@ -144,8 +155,8 @@ def test_mclag_cfg_session_timeout_valid_values(self, dvs, testlog):
144
155
self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
145
156
146
157
for value in self .MCLAG_SESS_TMOUT_VALID_LIST :
147
- cmd_string = "config mclag session-timeout {} {}" . format ( self .MCLAG_DOMAIN_ID , value )
148
- dvs . runcmd ( cmd_string )
158
+ add_mclag_domain_field ( dvs , self .MCLAG_DOMAIN_ID , "session_timeout" , value )
159
+
149
160
time .sleep (2 )
150
161
151
162
#check whether domain cfg table contents are same as configured values
@@ -165,10 +176,8 @@ def test_mclag_cfg_ka_valid_values(self, dvs, testlog):
165
176
self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
166
177
167
178
for value in self .MCLAG_KA_VALID_LIST :
168
- cmd_string = "config mclag keepalive-interval {} {}" .format (self .MCLAG_DOMAIN_ID , value )
169
- dvs .runcmd (cmd_string )
179
+ add_mclag_domain_field (dvs , self .MCLAG_DOMAIN_ID , "keepalive_interval" , value )
170
180
time .sleep (2 )
171
-
172
181
#check whether domain cfg table contents are same as configured values
173
182
ok ,error_info = dvs .all_table_entry_has (self .cfg_db , self .CFG_MCLAG_DOMAIN_TABLE , self .MCLAG_DOMAIN_ID ,
174
183
[
@@ -181,50 +190,12 @@ def test_mclag_cfg_ka_valid_values(self, dvs, testlog):
181
190
assert ok ,error_info
182
191
183
192
184
-
185
- # Testcase 7 Verify Configuration of invalid values for KA
186
- @pytest .mark .dev_sanity
187
- def test_mclag_cfg_ka_invalid_values (self , dvs , testlog ):
188
- self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
189
-
190
- for value in self .MCLAG_KA_INVALID_LIST :
191
- cmd_string = "config mclag keepalive-interval {} {}" .format (self .MCLAG_DOMAIN_ID , value )
192
- dvs .runcmd (cmd_string )
193
- time .sleep (2 )
194
-
195
- #check whether domain cfg table contents are same as configured values
196
- found ,error_info = dvs .all_table_entry_has (self .cfg_db , self .CFG_MCLAG_DOMAIN_TABLE , self .MCLAG_DOMAIN_ID ,
197
- [
198
- ("keepalive_interval" ,value )
199
- ]
200
- )
201
- assert found == False , "invalid keepalive value %s written to CONFIG_DB" % value
202
-
203
- # Testcase 8 Verify Configuration of invalid values for session timeout
204
- @pytest .mark .dev_sanity
205
- def test_mclag_cfg_session_invalid_values (self , dvs , testlog ):
206
- self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
207
-
208
- for value in self .MCLAG_SESS_TMOUT_INVALID_LIST :
209
- cmd_string = "config mclag session-timeout {} {}" .format (self .MCLAG_DOMAIN_ID , value )
210
- dvs .runcmd (cmd_string )
211
- time .sleep (2 )
212
-
213
- #check whether domain cfg table contents are same as configured values
214
- found ,error_info = dvs .all_table_entry_has (self .cfg_db , self .CFG_MCLAG_DOMAIN_TABLE , self .MCLAG_DOMAIN_ID ,
215
- [
216
- ("session_timeout" ,value )
217
- ]
218
- )
219
- assert found == False , "invalid keepalive value %s written to CONFIG_DB" % value
220
-
221
- # Testcase 9 Verify Deletion of MCLAG Domain
193
+ # Testcase 7 Verify Deletion of MCLAG Domain
222
194
@pytest .mark .dev_sanity
223
195
def test_mclag_cfg_domain_del (self , dvs , testlog ):
224
196
self .cfg_db = swsscommon .DBConnector (swsscommon .CONFIG_DB , dvs .redis_sock , 0 )
225
197
226
- cmd_string = "config mclag del {}" .format (self .MCLAG_DOMAIN_ID )
227
- dvs .runcmd (cmd_string )
198
+ remove_mclag_domain (dvs , self .MCLAG_DOMAIN_ID )
228
199
time .sleep (2 )
229
200
230
201
#check whether domain cfg table contents are same as configured values
0 commit comments