Exemple #1
0
 def start(self):
     if self.model.bootloader == Bootloader.PREP:
         self.supports_resilient_boot = False
     else:
         release = lsb_release()['release']
         self.supports_resilient_boot = release >= '20.04'
     self._start_task = schedule_task(self._start())
 async def _guided_choice(self, choice):
     status = await self.app.wait_with_progress(
         self.endpoint.guided.POST(choice))
     self.model = FilesystemModel(status.bootloader)
     self.model.load_server_data(status)
     if self.model.bootloader == Bootloader.PREP:
         self.supports_resilient_boot = False
     else:
         release = lsb_release()['release']
         self.supports_resilient_boot = release >= '20.04'
     self.ui.set_body(FilesystemView(self.model, self))
Exemple #3
0
 def __init__(self, model, controller):
     self.title = self.title.format(lsb_release().get(
         'release', 'Unknown Release'))
     self.model = model
     self.controller = controller
     self.items = []
     back = back_btn(_("Back"), on_press=self.cancel)
     super().__init__(
         screen(self._build_choices(), [back],
                focus_buttons=False,
                excerpt=_(self.excerpt)))
Exemple #4
0
 async def make_ui_real(self, status):
     if status.status == ProbeStatus.FAILED:
         self.app.show_error_report(status.error_report)
         return ProbingFailed(self, status.error_report)
     self.model = FilesystemModel(status.bootloader)
     self.model.load_server_data(status)
     if self.model.bootloader == Bootloader.PREP:
         self.supports_resilient_boot = False
     else:
         release = lsb_release()['release']
         self.supports_resilient_boot = release >= '20.04'
     if status.error_report:
         self.app.show_error_report(status.error_report)
     return GuidedDiskSelectionView(self)
Exemple #5
0
 def about(self, sender=None):
     info = lsb_release()
     if 'LTS' in info['description']:
         template = _(ABOUT_INSTALLER_LTS)
     else:
         template = _(ABOUT_INSTALLER)
     info.update({
         'snap_version':
         os.environ.get("SNAP_VERSION", "SNAP_VERSION"),
         'snap_revision':
         os.environ.get("SNAP_REVISION", "SNAP_REVISION"),
     })
     self._show_overlay(
         SimpleTextStretchy(self.app, _("About the installer"),
                            template.format(**info)))
Exemple #6
0
 def load_autoinstall_data(self, data):
     if data is None:
         return
     package = data.get('package')
     flavor = data.get('flavor')
     if package is None:
         if flavor is None or flavor == 'generic':
             package = 'linux-generic'
         else:
             if flavor is None:
                 package = 'generic'
             else:
                 if flavor == 'hwe':
                     flavor = 'generic-hwe'
                 # Should check this package exists really but
                 # that's a bit tricky until we get cleverer about
                 # the apt config in general.
                 package = 'linux-{flavor}-{release}'.format(
                     flavor=flavor, release=lsb_release()['release'])
     self.model.metapkg_name = package
Exemple #7
0
 def __init__(self, app):
     self.ai_data = {}
     super().__init__(app)
     self.model.target = app.base_model.target
     if self.opts.dry_run and self.opts.bootloader:
         name = self.opts.bootloader.upper()
         self.model.bootloader = getattr(Bootloader, name)
     self.answers.setdefault('guided', False)
     self.answers.setdefault('guided-index', 0)
     self.answers.setdefault('manual', [])
     self._monitor = None
     self._crash_reports = {}
     self._probe_once_task = SingleInstanceTask(self._probe_once,
                                                propagate_errors=False)
     self._probe_task = SingleInstanceTask(self._probe,
                                           propagate_errors=False)
     if self.model.bootloader == Bootloader.PREP:
         self.supports_resilient_boot = False
     else:
         release = lsb_release()['release']
         self.supports_resilient_boot = release >= '20.04'