[tor-commits] [arm/master] Removing sysTools' getFileErrorMsg() function

atagar at torproject.org atagar at torproject.org
Sun Sep 15 22:29:21 UTC 2013


commit 4f78691b376b8ec228ae5d3ece46f3e330d0e0b7
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Sep 15 11:48:12 2013 -0700

    Removing sysTools' getFileErrorMsg() function
    
    The sole purpose of getFileErrorMsg() was to strip off the errno component of
    IOErrors from the output we print or log. On reflection however, that's exactly
    what the IOError's strerror attribute is so might as well use this instead.
    Only funcitonal difference of this change is that we no longer call lower() on
    the messages.
---
 arm/configPanel.py    |    4 ++--
 arm/controller.py     |    2 +-
 arm/logPanel.py       |   13 ++++++++-----
 arm/starter.py        |   11 ++++++-----
 arm/util/sysTools.py  |   20 --------------------
 arm/util/torConfig.py |   16 +++++++++-------
 6 files changed, 26 insertions(+), 40 deletions(-)

diff --git a/arm/configPanel.py b/arm/configPanel.py
index 8a11be4..9ae4fa8 100644
--- a/arm/configPanel.py
+++ b/arm/configPanel.py
@@ -9,7 +9,7 @@ import threading
 import arm.controller
 import popups
 
-from arm.util import panel, sysTools, torConfig, torTools, uiTools
+from arm.util import panel, torConfig, torTools, uiTools
 
 import stem.control
 
@@ -474,7 +474,7 @@ class ConfigPanel(panel.Panel):
             torConfig.saveConf(configLocation, configLines)
             msg = "Saved configuration to %s" % configLocation
           except IOError, exc:
-            msg = "Unable to save configuration (%s)" % sysTools.getFileErrorMsg(exc)
+            msg = "Unable to save configuration (%s)" % exc.strerror
           
           popups.showMsg(msg, 2)
     finally: popups.finalize()
diff --git a/arm/controller.py b/arm/controller.py
index f6a1f6e..a72c634 100644
--- a/arm/controller.py
+++ b/arm/controller.py
@@ -665,7 +665,7 @@ def drawTorMonitor(stdscr, startTime):
       if confirmationKey in (ord('x'), ord('X')):
         try: torTools.getConn().reload()
         except IOError, exc:
-          log.error("Error detected when reloading tor: %s" % sysTools.getFileErrorMsg(exc))
+          log.error("Error detected when reloading tor: %s" % exc.strerror)
     elif key == ord('h') or key == ord('H'):
       overrideKey = arm.popups.showHelpPopup()
     elif key == ord('l') - 96:
diff --git a/arm/logPanel.py b/arm/logPanel.py
index 1f3067c..e9b3d06 100644
--- a/arm/logPanel.py
+++ b/arm/logPanel.py
@@ -18,7 +18,7 @@ from stem.util import conf, log, system
 
 import arm.popups
 from arm import __version__
-from arm.util import panel, sysTools, torTools, uiTools
+from arm.util import panel, torTools, uiTools
 
 TOR_EVENT_TYPES = {
   "d": "DEBUG",   "a": "ADDRMAP",          "k": "DESCCHANGED",  "s": "STREAM",
@@ -555,8 +555,11 @@ class LogPanel(panel.Panel, threading.Thread, logging.Handler):
         
         self.logFile = open(logPath, "a")
         log.notice("arm %s opening log file (%s)" % (__version__, logPath))
-      except (IOError, OSError), exc:
-        log.error("Unable to write to log file: %s" % sysTools.getFileErrorMsg(exc))
+      except IOError, exc:
+        log.error("Unable to write to log file: %s" % exc.strerror)
+        self.logFile = None
+      except OSError, exc:
+        log.error("Unable to write to log file: %s" % exc)
         self.logFile = None
     
     stem_logger = log.get_logger()
@@ -652,7 +655,7 @@ class LogPanel(panel.Panel, threading.Thread, logging.Handler):
         self.logFile.write(event.getDisplayMessage(True) + "\n")
         self.logFile.flush()
       except IOError, exc:
-        log.error("Unable to write to log file: %s" % sysTools.getFileErrorMsg(exc))
+        log.error("Unable to write to log file: %s" % exc.strerror)
         self.logFile = None
     
     self.valsLock.acquire()
@@ -786,7 +789,7 @@ class LogPanel(panel.Panel, threading.Thread, logging.Handler):
         self.saveSnapshot(pathInput)
         popups.showMsg("Saved: %s" % pathInput, 2)
       except IOError, exc:
-        popups.showMsg("Unable to save snapshot: %s" % sysTools.getFileErrorMsg(exc), 2)
+        popups.showMsg("Unable to save snapshot: %s" % exc.strerror, 2)
   
   def clear(self):
     """
diff --git a/arm/starter.py b/arm/starter.py
index 53c24ff..c804745 100644
--- a/arm/starter.py
+++ b/arm/starter.py
@@ -16,7 +16,6 @@ import time
 
 import arm.controller
 import arm.logPanel
-import arm.util.sysTools
 import arm.util.torConfig
 import arm.util.torTools
 import arm.util.uiTools
@@ -85,7 +84,7 @@ try:
   config = stem.util.conf.get_config("arm")
   config.load("%sarm/settings.cfg" % pathPrefix)
 except IOError, exc:
-  stem.util.log.warn(NO_INTERNAL_CFG_MSG % arm.util.sysTools.getFileErrorMsg(exc))
+  stem.util.log.warn(NO_INTERNAL_CFG_MSG % exc.strerror)
 
 
 def _get_args(argv):
@@ -314,15 +313,17 @@ def main():
       osLabel = "Platform: %s (%s)" % (platform.system(), " ".join(platform.dist()))
       
       stem.util.log.trace("%s\n%s\n%s\n%s\n" % (initMsg, pythonVersionLabel, osLabel, "-" * 80))
-    except (OSError, IOError), exc:
-      print "Unable to write to debug log file: %s" % arm.util.sysTools.getFileErrorMsg(exc)
+    except OSError, exc:
+      print "Unable to write to debug log file: %s" % exc
+    except IOError, exc:
+      print "Unable to write to debug log file: %s" % exc.strerror
   
   # loads user's personal armrc if available
   if os.path.exists(args.config):
     try:
       config.load(args.config)
     except IOError, exc:
-      stem.util.log.warn(CONFIG['msg.unable_to_read_config'].format(error = arm.util.sysTools.getFileErrorMsg(exc)))
+      stem.util.log.warn(CONFIG['msg.unable_to_read_config'].format(error = exc.strerror))
   else:
     # no armrc found, falling back to the defaults in the source
     stem.util.log.notice(CONFIG['msg.config_not_found'].format(path = args.config))
diff --git a/arm/util/sysTools.py b/arm/util/sysTools.py
index 3763826..80e5c12 100644
--- a/arm/util/sysTools.py
+++ b/arm/util/sysTools.py
@@ -40,26 +40,6 @@ def getSysCpuUsage():
   runtimeSum = sum([entry[1] for entry in RUNTIMES])
   return runtimeSum / SAMPLING_PERIOD
 
-def getFileErrorMsg(exc):
-  """
-  Strips off the error number prefix for file related IOError messages. For
-  instance, instead of saying:
-  [Errno 2] No such file or directory
-  
-  this would return:
-  no such file or directory
-  
-  Arguments:
-    exc - file related IOError exception
-  """
-  
-  excStr = str(exc)
-  if excStr.startswith("[Errno ") and "] " in excStr:
-    excStr = excStr[excStr.find("] ") + 2:].strip()
-    excStr = excStr[0].lower() + excStr[1:]
-  
-  return excStr
-
 def getResourceTracker(pid, noSpawn = False):
   """
   Provides a running singleton ResourceTracker instance for the given pid.
diff --git a/arm/util/torConfig.py b/arm/util/torConfig.py
index 34fc989..978f44c 100644
--- a/arm/util/torConfig.py
+++ b/arm/util/torConfig.py
@@ -9,7 +9,7 @@ import threading
 
 import stem.version
 
-from arm.util import sysTools, torTools, uiTools
+from arm.util import torTools, uiTools
 
 from stem.util import conf, enum, log, str_tools, system
 
@@ -727,7 +727,7 @@ class Torrc():
       configFile.close()
     except IOError, exc:
       if logFailure and not self.isLoadFailWarned:
-        log.warn("Unable to load torrc (%s)" % sysTools.getFileErrorMsg(exc))
+        log.warn("Unable to load torrc (%s)" % exc.strerror)
         self.isLoadFailWarned = True
       
       self.valsLock.release()
@@ -1086,7 +1086,7 @@ def loadConfigurationDescriptions(pathPrefix):
         
         log.info(DESC_LOAD_SUCCESS_MSG % (descriptorPath, time.time() - loadStartTime))
       except IOError, exc:
-        log.info(DESC_LOAD_FAILED_MSG % sysTools.getFileErrorMsg(exc))
+        log.info(DESC_LOAD_FAILED_MSG % exc.strerror)
     
     # fetches configuration options from the man page
     if not isConfigDescriptionsLoaded:
@@ -1097,7 +1097,7 @@ def loadConfigurationDescriptions(pathPrefix):
         
         log.info(DESC_READ_MAN_SUCCESS_MSG % (time.time() - loadStartTime))
       except IOError, exc:
-        log.notice(DESC_READ_MAN_FAILED_MSG % sysTools.getFileErrorMsg(exc))
+        log.notice(DESC_READ_MAN_FAILED_MSG % exc.strerror)
       
       # persists configuration descriptions 
       if isConfigDescriptionsLoaded and descriptorPath:
@@ -1105,8 +1105,10 @@ def loadConfigurationDescriptions(pathPrefix):
           loadStartTime = time.time()
           saveOptionDescriptions(descriptorPath)
           log.info(DESC_SAVE_SUCCESS_MSG % (descriptorPath, time.time() - loadStartTime))
-        except (IOError, OSError), exc:
-          log.notice(DESC_SAVE_FAILED_MSG % sysTools.getFileErrorMsg(exc))
+        except IOError, exc:
+          log.notice(DESC_SAVE_FAILED_MSG % exc.strerror)
+        except OSError, exc:
+          log.notice(DESC_SAVE_FAILED_MSG % exc)
     
     # finally fall back to the cached descriptors provided with arm (this is
     # often the case for tbb and manual builds)
@@ -1117,5 +1119,5 @@ def loadConfigurationDescriptions(pathPrefix):
         isConfigDescriptionsLoaded = True
         log.notice(DESC_INTERNAL_LOAD_SUCCESS_MSG % loadedVersion)
       except IOError, exc:
-        log.error(DESC_INTERNAL_LOAD_FAILED_MSG % sysTools.getFileErrorMsg(exc))
+        log.error(DESC_INTERNAL_LOAD_FAILED_MSG % exc.strerror)
 





More information about the tor-commits mailing list