mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 21:10:28 +00:00
tests: Adding start and stop topology
Signed-off-by: Ashish Pant <ashish12pant@gmail.com> Adding methods for staring and stopping routers in topology
This commit is contained in:
parent
2ad3d000f0
commit
27339562f8
@ -18,6 +18,90 @@
|
||||
# OF THIS SOFTWARE.
|
||||
#
|
||||
|
||||
import os
|
||||
|
||||
from lib.topolog import logger, logger_config
|
||||
from lib.topogen import TopoRouter
|
||||
|
||||
|
||||
# Creating tmp dir with testsuite name to avoid conflict condition when
|
||||
# multiple testsuites run together. All temporary files would be created
|
||||
# in this dir and this dir would be removed once testsuite run is
|
||||
# completed
|
||||
LOGDIR = "/tmp/topotests/"
|
||||
TMPDIR = None
|
||||
|
||||
|
||||
def start_topology(tgen):
|
||||
"""
|
||||
Starting topology, create tmp files which are loaded to routers
|
||||
to start deamons and then start routers
|
||||
* `tgen` : topogen object
|
||||
"""
|
||||
|
||||
global TMPDIR
|
||||
# Starting topology
|
||||
tgen.start_topology()
|
||||
|
||||
# Starting deamons
|
||||
router_list = tgen.routers()
|
||||
TMPDIR = os.path.join(LOGDIR, tgen.modname)
|
||||
|
||||
# Deleting temporary created dir if exists
|
||||
if os.path.exists("{}".format(TMPDIR)):
|
||||
os.system("rm -rf {}".format(TMPDIR))
|
||||
|
||||
# Create testsuite named temporary dir to save
|
||||
# tmp files
|
||||
os.mkdir("{}".format(TMPDIR))
|
||||
|
||||
for rname, router in router_list.iteritems():
|
||||
try:
|
||||
os.chdir(TMPDIR)
|
||||
|
||||
# Creating rouer named dir and empty zebra.conf bgpd.conf files
|
||||
# inside the current directory
|
||||
os.mkdir("{}".format(rname))
|
||||
os.system("chmod -R go+rw {}".format(rname))
|
||||
os.chdir("{}/{}".format(TMPDIR, rname))
|
||||
os.system("touch zebra.conf bgpd.conf")
|
||||
|
||||
except IOError as (errno, strerror):
|
||||
logger.error("I/O error({0}): {1}".format(errno, strerror))
|
||||
|
||||
# Loading empty zebra.conf file to router, to start the zebra deamon
|
||||
router.load_config(
|
||||
TopoRouter.RD_ZEBRA,
|
||||
"{}/{}/zebra.conf".format(TMPDIR, rname)
|
||||
# os.path.join(TMPDIR, "{}/zebra.conf".format(rname))
|
||||
)
|
||||
# Loading empty bgpd.conf file to router, to start the bgp deamon
|
||||
router.load_config(
|
||||
TopoRouter.RD_BGP,
|
||||
"{}/{}/bgpd.conf".format(TMPDIR, rname)
|
||||
# os.path.join(TMPDIR, "{}/bgpd.conf".format(rname))
|
||||
)
|
||||
|
||||
# Starting routers
|
||||
logger.info("Starting all routers once topology is created")
|
||||
tgen.start_router()
|
||||
|
||||
|
||||
def stop_topology(tgen):
|
||||
"""
|
||||
It will stop topology and remove temporary dirs and files.
|
||||
* `tgen` : topogen object
|
||||
"""
|
||||
|
||||
# This function tears down the whole topology.
|
||||
tgen.stop_topology()
|
||||
|
||||
# Removing tmp dirs and files, once the topology is deleted
|
||||
try:
|
||||
os.system("rm -rf {}".format(TMPDIR))
|
||||
except IOError as (errno, strerror):
|
||||
logger.error("I/O error({0}): {1}".format(errno, strerror))
|
||||
|
||||
|
||||
def number_to_row(routerName):
|
||||
"""
|
||||
@ -34,4 +118,5 @@ def number_to_column(routerName):
|
||||
Calculation based on name a0 = columnn 0, a1 = column 0, b2= column 1,
|
||||
z23 = column 26 etc
|
||||
"""
|
||||
return ord(routerName[0]) - 97
|
||||
return ord(routerName[0]) - 97
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user