Skip to content

Commit 9ff993d

Browse files
authored
Modified the test file to remove click commands and do the REDIS-DB u… (sonic-net#2264)
Remove the CLICK commands in the test_mclag_cfg.py and use REDIS_DB for config updates.
1 parent 9e376af commit 9ff993d

File tree

1 file changed

+41
-70
lines changed

1 file changed

+41
-70
lines changed

tests/test_mclag_cfg.py

+41-70
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,37 @@ def check_table_doesnt_exists(db, table, key):
3535
return True, error_info
3636

3737

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)
3969

4070
# Test MCLAG Configs
4171
class TestMclagConfig(object):
@@ -72,8 +102,7 @@ def test_mclag_cfg_domain_add(self, dvs, testlog):
72102
delete_table_keys(self.cfg_db, self.CFG_MCLAG_DOMAIN_TABLE)
73103
delete_table_keys(self.cfg_db, self.CFG_MCLAG_INTERFACE_TABLE)
74104

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)
77106
time.sleep(2)
78107

79108
#check whether domain cfg table contents are same as configured values
@@ -86,27 +115,12 @@ def test_mclag_cfg_domain_add(self, dvs, testlog):
86115
)
87116
assert ok,error_info
88117

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-
103118

104119
# Testcase 3 Verify Configuration of MCLAG Interface to existing domain
105120
@pytest.mark.dev_sanity
106121
def test_mclag_cfg_intf_add(self, dvs, testlog):
107122
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)
110124
time.sleep(2)
111125

112126
#check whether mclag interface config is reflected
@@ -118,9 +132,7 @@ def test_mclag_cfg_intf_add(self, dvs, testlog):
118132
@pytest.mark.dev_sanity
119133
def test_mclag_cfg_intf_remove_and_add(self, dvs, testlog):
120134
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)
124136
time.sleep(2)
125137

126138
#check whether mclag interface is removed
@@ -129,13 +141,12 @@ def test_mclag_cfg_intf_remove_and_add(self, dvs, testlog):
129141
assert ok,error_info
130142

131143
#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)
134145
time.sleep(2)
135146

136147
#check whether new mclag interface is added
137148
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)
139150
assert ok,error_info
140151

141152
# 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):
144155
self.cfg_db = swsscommon.DBConnector(swsscommon.CONFIG_DB, dvs.redis_sock, 0)
145156

146157
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+
149160
time.sleep(2)
150161

151162
#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):
165176
self.cfg_db = swsscommon.DBConnector(swsscommon.CONFIG_DB, dvs.redis_sock, 0)
166177

167178
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)
170180
time.sleep(2)
171-
172181
#check whether domain cfg table contents are same as configured values
173182
ok,error_info = dvs.all_table_entry_has(self.cfg_db, self.CFG_MCLAG_DOMAIN_TABLE, self.MCLAG_DOMAIN_ID,
174183
[
@@ -181,50 +190,12 @@ def test_mclag_cfg_ka_valid_values(self, dvs, testlog):
181190
assert ok,error_info
182191

183192

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
222194
@pytest.mark.dev_sanity
223195
def test_mclag_cfg_domain_del(self, dvs, testlog):
224196
self.cfg_db = swsscommon.DBConnector(swsscommon.CONFIG_DB, dvs.redis_sock, 0)
225197

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)
228199
time.sleep(2)
229200

230201
#check whether domain cfg table contents are same as configured values

0 commit comments

Comments
 (0)