Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
c5ba1eb
swss test changes for Virtual chassis
saravanansv Jul 8, 2020
2fddadc
swss test changes for Virtual chassis
saravanansv Jul 8, 2020
c3d9b25
Integrate virtual chassis into conftest
saravanansv Jul 15, 2020
25484c2
Integrate virtual chassis into conftest
saravanansv Jul 15, 2020
b3a79ee
Integrate virtual chassis into conftest
saravanansv Jul 16, 2020
8592abc
verify virutal chassis is ready after creation
saravanansv Jul 21, 2020
59cc05f
Address review comments
saravanansv Jul 23, 2020
2949444
call right getstatusoutput based on version
saravanansv Jul 23, 2020
f1ce8cc
Merge branch 'master' into master-virtualchassistest
saravanansv Jul 23, 2020
5ae8758
use new test fixture for virtual chassis
saravanansv Jul 24, 2020
970f846
address LGTM alert
saravanansv Jul 24, 2020
f84c9b1
change iteritems to items
saravanansv Jul 24, 2020
3fb7109
small comment to retrigger build
saravanansv Jul 24, 2020
9cae70e
small comment to retrigger build
saravanansv Jul 25, 2020
331858f
fix python3 warnings conftest and test_virtual_chassis
saravanansv Jul 31, 2020
e15712c
Merge branch 'master' into master-virtualchassistest
saravanansv Jul 31, 2020
608a4bf
Merge branch 'master' into master-virtualchassistest
saravanansv Aug 1, 2020
8125cfc
Merge branch 'master' into master-virtualchassistest
saravanansv Aug 4, 2020
1006b2a
Merge branch 'master' into master-virtualchassistest
saravanansv Aug 7, 2020
b6daac9
Merge branch 'master' into master-virtualchassistest
saravanansv Aug 7, 2020
2952364
Merge branch 'master' into master-virtualchassistest
saravanansv Aug 8, 2020
7f67163
Merge branch 'master' into master-virtualchassistest
saravanansv Aug 18, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
380 changes: 356 additions & 24 deletions tests/conftest.py

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions tests/test_virtual_chassis.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import time
import json
import redis
import pytest
from swsscommon import swsscommon

class TestVirtualChassis(object):
def check_chassis_sysport(self, dvs):
# check if instance is connected to a chassis db
cfgFile = "/usr/share/sonic/virtual_chassis/default_config.json"
(ret, out) = dvs.runcmd("sonic-cfggen -v DEVICE_METADATA.localhost.chassis_db_address -j %s" % cfgFile)
verifyChassDb = True
if ret != 0 or out.strip() == "":
# instance has no connection to chassis db
verifyChassDb = False
print "verify vs without chassisDb"
(ret, out) = dvs.runcmd("sonic-db-cli CHASSIS_DB keys SYSTEM_PORT\"*\"")
if verifyChassDb:
assert len( out.split() ) == 96
else:
assert 'Invalid database name' in out
(ret, out) = dvs.runcmd("sonic-db-cli CHASSIS_DB HGETALL 'SYSTEM_PORT|Linecard3|Ethernet0'")
out = out.replace("u'", "'")
if verifyChassDb:
assert "'system_port_id': '65'" in out
assert "'switch_id': '2'" in out
else:
assert 'Invalid database name' in out

def test_chassis_sysport(self, dvs, testlog):
dvss = {}
if dvs.vct is not None:
dvss = dvs.vct.dvss
else:
dvss[dvs.ctn.name] = dvs
for dv in dvss.values():
print "checking %s" % dv.ctn.name
self.check_chassis_sysport( dv )

def test_connectivity(self, dvs, testlog):
if dvs.vct is None:
return
vct = dvs.vct
dvss = {}
dvss = vct.dvss
ns = vct.ns
nbrs = {}
nbrs[ "lc1." + ns ] = { "supervisor." + ns : "10.8.1.200",
"lc2." + ns : "10.8.1.2",
"lc3." + ns : "10.8.1.3",
"R1." + ns : "10.8.101.2",
"R4." + ns : "10.8.104.2" }
nbrs[ "lc2." + ns ] = { "supervisor." + ns : "10.8.1.200",
"lc1." + ns : "10.8.1.1",
"lc3." + ns : "10.8.1.3",
"R2." + ns : "10.8.102.2" }
nbrs[ "lc3" + ns ] = { "supervisor." + ns : "10.8.1.200",
"lc1." + ns : "10.8.1.1",
"lc2." + ns : "10.8.1.2",
"R3." + ns : "10.8.103.2" }
for name in dvss.keys():
if name not in nbrs:
continue
for nbr, ip in nbrs[ name ].iteritems():
if nbr not in dvss.keys():
continue
dv = dvss[ nbr ]
print "%s: ping %s (%s)" % ( name, ip, nbr )
_, out = dv.runcmd(['sh', "-c", "ping -c 5 -W 0 -q %s" % ip])
print out
assert '5 received' in out
Loading