def execute(self, objective=None): # executes the objective if objective is None: if len(self.objectives) != 1: raise ValueError('No objective given, but plan {} has {} ' 'objectives'.format(self, len(self.objectives))) obj = self.objectives.values()[0] else: obj = self.objectives.get(objective) if obj is None: raise ValueError( 'Objective {!r} not found. Valid objectives are {}'.format( objective, ', '.join( repr(o.__name__) for o in self.objectives.values()))) # got our objective, now run it try: return obj() except RebootNeeded as e: log.warning('A reboot has been request on behalf of {}'.format(e)) if config.get_bool('auto_reboot'): delay = int(config['reboot_delay']) log.warning( 'Rebooting, will reconnect after {} seconds'.format(delay)) posix.reboot() time.sleep(delay) raise ReconnectNeeded(obj) else: log.error('Automatic reboots disabled, cannot continue.')
def execute(self, objective=None): # executes the objective if objective is None: if len(self.objectives) != 1: raise ValueError('No objective given, but plan {} has {} ' 'objectives'.format(self, len( self.objectives))) objective = self.objectives.values()[0] else: objective = self.objectives[objective] # got our objective, now run it try: return objective() except RebootNeeded as e: log.warning('A reboot has been request on behalf of {}'.format(e)) if config.get_bool('auto_reboot'): delay = int(config['reboot_delay']) log.warning( 'Rebooting, will reconnect after {} seconds'.format(delay)) posix.reboot() time.sleep(delay) raise ReconnectNeeded(objective) else: log.error('Automatic reboots disabled, cannot continue.')
def init_jessie(): needs_reboot = False # first, expand the filesystem needs_reboot |= expand_root_fs().changed if needs_reboot: posix.reboot() # then, initialize the rng enable_hwrng()
def run(): needs_reboot = False with proc.sudo(): ssh.set_authorized_keys([PUB_KEY], 'root') disable_raspi_config() needs_reboot |= expand_root_fs().changed needs_reboot |= enable_systemd().changed posix.userdel('pi', remove_home=True, force=True) if needs_reboot: posix.reboot()