# 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
"""
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 ):
"""
If requriements not met, but tests were succesfull, return 0.
for steps that run within the installer, they are expected to either
- complete succesfully and return 1, or throw an execption.
+ complete succesfully and return 1, or throw an exception.
For exact return values and expected operations, see the comments
at the top of each of the invididual step functions.
# has disappeared (Daniel suggested modules.aliases could be used instead)
# and second, in any case it's been years now that modprobe.conf was deprecated
# so most likely this code has no actual effect
- if vars['virt'] == 'vs':
+ if self.VARS['virt'] == 'vs':
WriteModprobeConfig.Run( self.VARS, self.LOG )
WriteNetworkConfig.Run( self.VARS, self.LOG )
CheckForNewDisks.Run( self.VARS, self.LOG )
self.VARS['STATE_CHANGE_NOTIFY']= 1
self.VARS['STATE_CHANGE_NOTIFY_MESSAGE']= \
notify_messages.MSG_INSTALL_FINISHED
+ AnsibleHook.Run( self.VARS, self.LOG )
UpdateBootStateWithPLC.Run( self.VARS, self.LOG )
_bootRun()
if not ConfirmInstallWithUser.Run( self.VARS, self.LOG ):
return 0
self.VARS['BOOT_STATE']= 'reinstall'
+
+ AnsibleHook.Run( self.VARS, self.LOG )
_reinstallRun()
def _debugRun(state='failboot'):
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: