X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2FBootManager.py;h=2857d9d8fe53161dcdf40c4480278c62e55ed3e5;hb=dc8926ef97d1058c3dcfaad5f1628e2984297e4e;hp=fd5c06fd380e925662b82417eae65d5cb4591f00;hpb=fbb0f48516a3d3fb8b2e67e700a0b7fa6dea0869;p=bootmanager.git diff --git a/source/BootManager.py b/source/BootManager.py index fd5c06f..2857d9d 100755 --- a/source/BootManager.py +++ b/source/BootManager.py @@ -163,10 +163,11 @@ class BootManager: # file containing initial variables/constants # the set of valid node run states - NodeRunStates = {'reinstall':None, - 'boot':None, - 'safeboot':None, - 'disabled':None, + NodeRunStates = {'reinstall' : None, + 'upgrade' : None, + 'boot' : None, + 'safeboot' : None, + 'disabled' : None, } def __init__(self, log, forceState): @@ -257,7 +258,7 @@ class BootManager: else: _nodeNotInstalled() - def _reinstallRun(): + def _reinstallRun(upgrade=False): # starting the fallback/debug ssh daemon for safety: # if the node install somehow hangs, or if it simply takes ages, @@ -276,8 +277,9 @@ class BootManager: raise BootManagerException, "Hardware requirements not met." # runinstaller - InstallPartitionDisks.Run( self.VARS, self.LOG ) InstallInit.Run(self.VARS, self.LOG) + if not upgrade: + InstallPartitionDisks.Run(self.VARS, self.LOG) InstallBootstrapFS.Run(self.VARS, self.LOG) InstallWriteConfig.Run(self.VARS, self.LOG) InstallUninitHardware.Run(self.VARS, self.LOG) @@ -315,7 +317,8 @@ class BootManager: _debugRun() # setup state -> function hash table - BootManager.NodeRunStates['reinstall'] = _reinstallRun + BootManager.NodeRunStates['reinstall'] = lambda : _reinstallRun(upgrade=False) + BootManager.NodeRunStates['upgrade'] = lambda : _reinstallRun(upgrade=True) BootManager.NodeRunStates['boot'] = _bootRun BootManager.NodeRunStates['safeboot'] = lambda : _debugRun('safeboot') BootManager.NodeRunStates['disabled'] = lambda : _debugRun('disabled') @@ -334,7 +337,7 @@ class BootManager: self.VARS['BOOT_STATE'] = self.forceState UpdateBootStateWithPLC.Run(self.VARS, self.LOG) - stateRun = BootManager.NodeRunStates.get(self.VARS['BOOT_STATE'],_badstateRun) + stateRun = BootManager.NodeRunStates.get(self.VARS['BOOT_STATE'], _badstateRun) stateRun() success = 1