be more systematic about when to start postinstall configuration
This commit is contained in:
parent
8cfca35e9c
commit
ad1a0092f3
|
@ -49,4 +49,5 @@ class IdentityController(BaseController):
|
|||
safe_spec['password'] = '<REDACTED>'
|
||||
log.debug("User input: {}".format(safe_spec))
|
||||
self.model.add_user(user_spec)
|
||||
self.signal.emit_signal('installprogress:identity-config-done')
|
||||
self.signal.emit_signal('next-screen')
|
||||
|
|
|
@ -102,6 +102,7 @@ class InstallProgressController(BaseController):
|
|||
signals = [
|
||||
('installprogress:filesystem-config-done', 'filesystem_config_done'),
|
||||
('installprogress:identity-config-done', 'identity_config_done'),
|
||||
('installprogress:ssh-config-done', 'ssh_config_done'),
|
||||
('installprogress:snap-config-done', 'snap_config_done'),
|
||||
]
|
||||
|
||||
|
@ -113,8 +114,12 @@ class InstallProgressController(BaseController):
|
|||
self.progress_view_showing = False
|
||||
self.install_state = InstallState.NOT_STARTED
|
||||
self.journal_listener_handle = None
|
||||
self._identity_config_done = False
|
||||
self._snap_config_done = False
|
||||
self._postinstall_prerequisites = {
|
||||
'install': False,
|
||||
'ssh': False,
|
||||
'identity': False,
|
||||
'snap': False,
|
||||
}
|
||||
self._event_indent = ""
|
||||
self._event_syslog_identifier = 'curtin_event.%s' % (os.getpid(),)
|
||||
self._log_syslog_identifier = 'curtin_log.%s' % (os.getpid(),)
|
||||
|
@ -122,19 +127,19 @@ class InstallProgressController(BaseController):
|
|||
def filesystem_config_done(self):
|
||||
self.curtin_start_install()
|
||||
|
||||
def _step_done(self, step):
|
||||
self._postinstall_prerequisites[step] = True
|
||||
if all(self._postinstall_prerequisites.values()):
|
||||
self.start_postinstall_configuration()
|
||||
|
||||
def identity_config_done(self):
|
||||
if self.install_state == InstallState.DONE and \
|
||||
self._snap_config_done:
|
||||
self.postinstall_configuration()
|
||||
else:
|
||||
self._identity_config_done = True
|
||||
self._step_done('identity')
|
||||
|
||||
def ssh_config_done(self):
|
||||
self._step_done('ssh')
|
||||
|
||||
def snap_config_done(self):
|
||||
if self.install_state == InstallState.DONE and \
|
||||
self._identity_config_done:
|
||||
self.postinstall_configuration()
|
||||
else:
|
||||
self._snap_config_done = True
|
||||
self._step_done('snap')
|
||||
|
||||
def curtin_error(self):
|
||||
log.debug('curtin_error')
|
||||
|
@ -266,8 +271,7 @@ class InstallProgressController(BaseController):
|
|||
else:
|
||||
# Re-set footer so progress bar updates.
|
||||
self.ui.set_footer(_("Thank you for using Ubuntu!"))
|
||||
if self._identity_config_done:
|
||||
self.postinstall_configuration()
|
||||
self._step_done('install')
|
||||
|
||||
def cancel(self):
|
||||
pass
|
||||
|
@ -300,7 +304,7 @@ class InstallProgressController(BaseController):
|
|||
]
|
||||
self._bg_run_command_logged(cmd)
|
||||
|
||||
def postinstall_configuration(self):
|
||||
def start_postinstall_configuration(self):
|
||||
self.copy_logs_to_target()
|
||||
|
||||
class w(TaskWatcher):
|
||||
|
|
|
@ -124,5 +124,5 @@ class SSHController(BaseController):
|
|||
self.model.authorized_keys = result.get('authorized_keys', [])
|
||||
self.model.pwauth = result.get('pwauth', True)
|
||||
self.model.ssh_import_id = result.get('ssh_import_id', None)
|
||||
self.signal.emit_signal('installprogress:identity-config-done')
|
||||
self.signal.emit_signal('installprogress:ssh-config-done')
|
||||
self.signal.emit_signal('next-screen')
|
||||
|
|
Loading…
Reference in New Issue