diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-06-13 09:19:02 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-13 09:19:02 -0400 |
| commit | 6a81b60a94e10b4e86affe4caea8b4890de3ed0a (patch) | |
| tree | 006f2f1c6ce5fe4aaeabda8e825a8f472d40dacd /tests/topotests/lib/topotest.py | |
| parent | a8baba69aef8bdcb1e3f3eaea468e392ba6a0116 (diff) | |
| parent | 04ce2b970e7d4da8be717f958045c827342ff957 (diff) | |
Merge pull request #4502 from opensourcerouting/topotest-backward-compat
topotests: backward compatibility fix
Diffstat (limited to 'tests/topotests/lib/topotest.py')
| -rw-r--r-- | tests/topotests/lib/topotest.py | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/tests/topotests/lib/topotest.py b/tests/topotests/lib/topotest.py index 2acb04fb0e..86993665ce 100644 --- a/tests/topotests/lib/topotest.py +++ b/tests/topotests/lib/topotest.py @@ -38,6 +38,11 @@ import time 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.net import Mininet from mininet.node import Node, OVSSwitch, Host @@ -624,6 +629,20 @@ class Router(Node): super(Router, self).__init__(name, **params) 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 # specified, then attempt to generate an unique logdir. if self.logdir is None: @@ -652,7 +671,7 @@ class Router(Node): "Configure FRR binaries" self.daemondir = params.get('frrdir') 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') if not os.path.isfile(zebra_path): @@ -662,7 +681,7 @@ class Router(Node): "Configure Quagga binaries" self.daemondir = params.get('quaggadir') 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') 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. self.daemondir = params.get('daemondir') 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': self._config_quagga(**params) else: @@ -688,7 +710,7 @@ class Router(Node): raise Exception('No zebra binary found in {}'.format(zpath)) # Allow user to specify routertype when the path was specified. if params.get('routertype') is not None: - self.routertype = self.params.get('routertype') + self.routertype = params.get('routertype') self.cmd('ulimit -c unlimited') # Set ownership of config files |
