at the top of each of the invididual step functions.
"""
- def _nodeNotInstalled():
+ def _nodeNotInstalled(message='MSG_NODE_NOT_INSTALLED'):
# called by the _xxxState() functions below upon failure
self.VARS['RUN_LEVEL']= 'failboot'
+ notify = getattr(notify_messages, message)
self.VARS['STATE_CHANGE_NOTIFY']= 1
- self.VARS['STATE_CHANGE_NOTIFY_MESSAGE']= \
- notify_messages.MSG_NODE_NOT_INSTALLED
- raise BootManagerException, \
- notify_messages.MSG_NODE_NOT_INSTALLED
+ self.VARS['STATE_CHANGE_NOTIFY_MESSAGE']= notify
+ raise BootManagerException, notify
def _bootRun():
# implements the boot logic, which consists of first
pass
InstallInit.Run( self.VARS, self.LOG )
- if ValidateNodeInstall.Run( self.VARS, self.LOG ):
+ ret = ValidateNodeInstall.Run( self.VARS, self.LOG )
+ if ret == 1:
WriteModprobeConfig.Run( self.VARS, self.LOG )
MakeInitrd.Run( self.VARS, self.LOG )
WriteNetworkConfig.Run( self.VARS, self.LOG )
CheckForNewDisks.Run( self.VARS, self.LOG )
SendHardwareConfigToPLC.Run( self.VARS, self.LOG )
ChainBootNode.Run( self.VARS, self.LOG )
+ elif ret == -1:
+ _nodeNotInstalled('MSG_NODE_FILESYSTEM_CORRUPT')
+ elif ret == -2:
+ _nodeNotInstalled('MSG_NODE_MOUNT_FAILED')
+ elif ret == -3:
+ _nodeNotInstalled('MSG_NODE_MISSING_KERNEL')
else:
_nodeNotInstalled()
MSG_NO_NODE_CONFIG_FILE= "noconfig"
MSG_AUTH_FAIL= "authfail"
MSG_NODE_NOT_INSTALLED= "notinstalled"
+MSG_NODE_FILESYSTEM_CORRUPT= "filesystemcorrupted"
+MSG_NODE_MOUNT_FAILED= "mountfailed"
+MSG_NODE_MISSING_KERNEL= "missingkernel"
MSG_HOSTNAME_NOT_RESOLVE= "hostnamenotresolve"
MSG_NO_DETECTED_NETWORK= "nodetectednetwork"
except BootManagerException, e:
log.write( "BootManagerException during fsck of /root and /vservers : %s\n" %
str(e) )
- return 0
+ return -1
try:
# then attempt to mount them
except BootManagerException, e:
log.write( "BootManagerException during mount of /root, /vservers and /proc: %s\n" %
str(e) )
- return 0
+ return -2
ROOT_MOUNTED= 1
vars['ROOT_MOUNTED']= 1
os.stat("%s/boot/initrd-boot" % SYSIMG_PATH)
except OSError, e:
log.write( "Couldn't locate base kernel (you might be using the stock kernel).\n")
- return 0
+ return -3
# check if the model specified kernel is installed
option = ''