@@ -21,6 +21,8 @@ def ensure_system(cmd):
21
21
def pytest_addoption (parser ):
22
22
parser .addoption ("--dvsname" , action = "store" , default = None ,
23
23
help = "dvs name" )
24
+ parser .addoption ("--keeptb" , action = "store_true" , default = False ,
25
+ help = "keep testbed after test" )
24
26
25
27
class AsicDbValidator (object ):
26
28
def __init__ (self , dvs ):
@@ -127,7 +129,7 @@ def runcmd_async(self, cmd):
127
129
return subprocess .Popen ("ip netns exec %s %s" % (self .nsname , cmd ), shell = True )
128
130
129
131
class DockerVirtualSwitch (object ):
130
- def __init__ (self , name = None ):
132
+ def __init__ (self , name = None , keeptb = False ):
131
133
self .basicd = ['redis-server' ,
132
134
'rsyslogd' ]
133
135
self .swssd = ['orchagent' ,
@@ -147,7 +149,10 @@ def __init__(self, name=None):
147
149
self .client = docker .from_env ()
148
150
149
151
self .ctn = None
150
- self .cleanup = True
152
+ if keeptb :
153
+ self .cleanup = False
154
+ else :
155
+ self .cleanup = True
151
156
if name != None :
152
157
# get virtual switch container
153
158
for ctn in self .client .containers .list ():
@@ -556,7 +561,8 @@ def setReadOnlyAttr(self, obj, attr, val):
556
561
@pytest .yield_fixture (scope = "module" )
557
562
def dvs (request ):
558
563
name = request .config .getoption ("--dvsname" )
559
- dvs = DockerVirtualSwitch (name )
564
+ keeptb = request .config .getoption ("--keeptb" )
565
+ dvs = DockerVirtualSwitch (name , keeptb )
560
566
yield dvs
561
567
if name == None :
562
568
dvs .get_logs (request .module .__name__ )
0 commit comments