From fcfbc7696bddd37d903ca16d7b1b082208486212 Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Wed, 13 Sep 2017 12:22:14 -0300 Subject: [PATCH] topogen: fix diagnostics failure Don't try to log to file if directory doesn't exist. --- tests/topotests/lib/topogen.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/tests/topotests/lib/topogen.py b/tests/topotests/lib/topogen.py index eda4e3128b..8e0d68e86d 100644 --- a/tests/topotests/lib/topogen.py +++ b/tests/topotests/lib/topogen.py @@ -884,13 +884,18 @@ def diagnose_env(): """ ret = True - # Log diagnostics to file so it can be examined later. - fhandler = logging.FileHandler(filename='/tmp/topotests/diagnostics.txt') - fhandler.setLevel(logging.DEBUG) - fhandler.setFormatter( - logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s') - ) - logger.addHandler(fhandler) + # Test log path exists before installing handler. + if not os.path.isdir('/tmp'): + logger.warning('could not find /tmp for logs') + else: + os.system('mkdir /tmp/topotests') + # Log diagnostics to file so it can be examined later. + fhandler = logging.FileHandler(filename='/tmp/topotests/diagnostics.txt') + fhandler.setLevel(logging.DEBUG) + fhandler.setFormatter( + logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s') + ) + logger.addHandler(fhandler) logger.info('Running environment diagnostics') @@ -1002,9 +1007,6 @@ def diagnose_env(): '{} -v 2>&1 >/tmp/topotests/quagga_zebra.txt'.format(path) ) - if not os.path.isdir('/tmp'): - logger.warning('could not find /tmp for logs') - # Test MPLS availability krel = platform.release() if topotest.version_cmp(krel, '4.5') < 0: -- 2.39.5