]> git.puffer.fish Git - matthieu/frr.git/commitdiff
topogen: fix diagnostics failure
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Wed, 13 Sep 2017 15:22:14 +0000 (12:22 -0300)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:12 +0000 (20:22 -0500)
Don't try to log to file if directory doesn't exist.

tests/topotests/lib/topogen.py

index eda4e3128bb36028ee20d36b0a12f9aaf7d661a1..8e0d68e86d61b07fa43b88a41b2437ba1681bf2e 100644 (file)
@@ -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: