notinstalled
filesystem corrupted
mount failed
missing kernel
Each of these events occurs with enough frequency that differentiating them
is helpful both for operators and for the user.
at the top of each of the invididual step functions.
"""
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'
# 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']= 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
def _bootRun():
# implements the boot logic, which consists of first
pass
InstallInit.Run( self.VARS, self.LOG )
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 )
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()
else:
_nodeNotInstalled()
MSG_NO_NODE_CONFIG_FILE= "noconfig"
MSG_AUTH_FAIL= "authfail"
MSG_NODE_NOT_INSTALLED= "notinstalled"
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"
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) )
except BootManagerException, e:
log.write( "BootManagerException during fsck of /root and /vservers : %s\n" %
str(e) )
try:
# then attempt to mount them
try:
# then attempt to mount them
except BootManagerException, e:
log.write( "BootManagerException during mount of /root, /vservers and /proc: %s\n" %
str(e) )
except BootManagerException, e:
log.write( "BootManagerException during mount of /root, /vservers and /proc: %s\n" %
str(e) )
ROOT_MOUNTED= 1
vars['ROOT_MOUNTED']= 1
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")
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")
# check if the model specified kernel is installed
option = ''
# check if the model specified kernel is installed
option = ''