X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2FBootManager.py;h=5270c6ccc555d35ee1d8b3e64a5fbcec52f38403;hb=a583998ec42f6ba8f02bc39471e646ac746ce3c4;hp=32d7ba89669bec83c3f13a6a7d19737ea0566428;hpb=7b5214d6358e7aa2599abf78e455dcd0cd96cf96;p=bootmanager.git diff --git a/source/BootManager.py b/source/BootManager.py index 32d7ba8..5270c6c 100755 --- a/source/BootManager.py +++ b/source/BootManager.py @@ -6,8 +6,9 @@ # Copyright (c) 2004-2006 The Trustees of Princeton University # All rights reserved. +import sys, os +import traceback import string -import sys, os, traceback import time import gzip @@ -109,6 +110,12 @@ class log: """ self.LogEntry( str, 0, 1 ) + def print_stack (self): + """ + dump current stack in log + """ + self.write ( traceback.format_exc() ) + # bm log uploading is available back again, as of nodeconfig-5.0-2 def Upload( self, extra_file=None ): """ @@ -332,18 +339,20 @@ class BootManager: except KeyError, e: self.LOG.write( "\n\nKeyError while running: %s\n" % str(e) ) + self.LOG.print_stack () except BootManagerException, e: self.LOG.write( "\n\nException while running: %s\n" % str(e) ) + self.LOG.print_stack () except BootManagerAuthenticationException, e: self.LOG.write( "\n\nFailed to Authenticate Node: %s\n" % str(e) ) + self.LOG.print_stack () # sets /tmp/CANCEL_BOOT flag StartDebug.Run(self.VARS, self.LOG ) # Return immediately b/c any other calls to API will fail return success except: self.LOG.write( "\n\nImplementation Error\n") - traceback.print_exc(file=self.LOG.OutputFile) - traceback.print_exc() + self.LOG.print_stack () if not success: try: