mirror of
https://github.com/FRRouting/frr.git
synced 2025-05-01 05:57:15 +02:00
topotests: backward compatibility fix
Allow old topologies to use default parameters from `pytest.ini`. Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
parent
6aba4eeaec
commit
04ce2b970e
|
@ -38,6 +38,11 @@ import time
|
||||||
|
|
||||||
from lib.topolog import logger
|
from lib.topolog import logger
|
||||||
|
|
||||||
|
if sys.version_info[0] > 2:
|
||||||
|
import configparser
|
||||||
|
else:
|
||||||
|
import ConfigParser as configparser
|
||||||
|
|
||||||
from mininet.topo import Topo
|
from mininet.topo import Topo
|
||||||
from mininet.net import Mininet
|
from mininet.net import Mininet
|
||||||
from mininet.node import Node, OVSSwitch, Host
|
from mininet.node import Node, OVSSwitch, Host
|
||||||
|
@ -624,6 +629,20 @@ class Router(Node):
|
||||||
super(Router, self).__init__(name, **params)
|
super(Router, self).__init__(name, **params)
|
||||||
self.logdir = params.get('logdir')
|
self.logdir = params.get('logdir')
|
||||||
|
|
||||||
|
# Backward compatibility:
|
||||||
|
# Load configuration defaults like topogen.
|
||||||
|
self.config_defaults = configparser.ConfigParser({
|
||||||
|
'verbosity': 'info',
|
||||||
|
'frrdir': '/usr/lib/frr',
|
||||||
|
'quaggadir': '/usr/lib/quagga',
|
||||||
|
'routertype': 'frr',
|
||||||
|
'memleak_path': None,
|
||||||
|
})
|
||||||
|
self.config_defaults.read(
|
||||||
|
os.path.join(os.path.dirname(os.path.realpath(__file__)),
|
||||||
|
'../pytest.ini')
|
||||||
|
)
|
||||||
|
|
||||||
# If this topology is using old API and doesn't have logdir
|
# If this topology is using old API and doesn't have logdir
|
||||||
# specified, then attempt to generate an unique logdir.
|
# specified, then attempt to generate an unique logdir.
|
||||||
if self.logdir is None:
|
if self.logdir is None:
|
||||||
|
@ -652,7 +671,7 @@ class Router(Node):
|
||||||
"Configure FRR binaries"
|
"Configure FRR binaries"
|
||||||
self.daemondir = params.get('frrdir')
|
self.daemondir = params.get('frrdir')
|
||||||
if self.daemondir is None:
|
if self.daemondir is None:
|
||||||
self.daemondir = '/usr/lib/frr'
|
self.daemondir = self.config_defaults.get('topogen', 'frrdir')
|
||||||
|
|
||||||
zebra_path = os.path.join(self.daemondir, 'zebra')
|
zebra_path = os.path.join(self.daemondir, 'zebra')
|
||||||
if not os.path.isfile(zebra_path):
|
if not os.path.isfile(zebra_path):
|
||||||
|
@ -662,7 +681,7 @@ class Router(Node):
|
||||||
"Configure Quagga binaries"
|
"Configure Quagga binaries"
|
||||||
self.daemondir = params.get('quaggadir')
|
self.daemondir = params.get('quaggadir')
|
||||||
if self.daemondir is None:
|
if self.daemondir is None:
|
||||||
self.daemondir = '/usr/lib/quagga'
|
self.daemondir = self.config_defaults.get('topogen', 'quaggadir')
|
||||||
|
|
||||||
zebra_path = os.path.join(self.daemondir, 'zebra')
|
zebra_path = os.path.join(self.daemondir, 'zebra')
|
||||||
if not os.path.isfile(zebra_path):
|
if not os.path.isfile(zebra_path):
|
||||||
|
@ -676,7 +695,10 @@ class Router(Node):
|
||||||
# User did not specify the daemons directory, try to autodetect it.
|
# User did not specify the daemons directory, try to autodetect it.
|
||||||
self.daemondir = params.get('daemondir')
|
self.daemondir = params.get('daemondir')
|
||||||
if self.daemondir is None:
|
if self.daemondir is None:
|
||||||
self.routertype = params.get('routertype', 'frr')
|
self.routertype = params.get('routertype',
|
||||||
|
self.config_defaults.get(
|
||||||
|
'topogen',
|
||||||
|
'routertype'))
|
||||||
if self.routertype == 'quagga':
|
if self.routertype == 'quagga':
|
||||||
self._config_quagga(**params)
|
self._config_quagga(**params)
|
||||||
else:
|
else:
|
||||||
|
@ -688,7 +710,7 @@ class Router(Node):
|
||||||
raise Exception('No zebra binary found in {}'.format(zpath))
|
raise Exception('No zebra binary found in {}'.format(zpath))
|
||||||
# Allow user to specify routertype when the path was specified.
|
# Allow user to specify routertype when the path was specified.
|
||||||
if params.get('routertype') is not None:
|
if params.get('routertype') is not None:
|
||||||
self.routertype = self.params.get('routertype')
|
self.routertype = params.get('routertype')
|
||||||
|
|
||||||
self.cmd('ulimit -c unlimited')
|
self.cmd('ulimit -c unlimited')
|
||||||
# Set ownership of config files
|
# Set ownership of config files
|
||||||
|
|
Loading…
Reference in a new issue