Merge pull request #597 from mwhudson/no-ui-controller

add a class for controllers with no ui
This commit is contained in:
Michael Hudson-Doyle 2019-12-14 22:15:54 +13:00 committed by GitHub
commit 7078d47af6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 18 deletions

View File

@ -35,8 +35,7 @@ from subiquitycore.async_helpers import (
run_in_thread,
schedule_task,
)
from subiquitycore.controller import BaseController
from subiquitycore.core import Skip
from subiquitycore.controller import NoUIController
log = logging.getLogger('subiquity.controllers.error')
@ -319,7 +318,7 @@ class ErrorReport(metaclass=urwid.MetaSignals):
return label, root[1:] + '/' + self.base + '.crash'
class ErrorController(BaseController):
class ErrorController(NoUIController):
def __init__(self, app):
super().__init__(app)
@ -359,9 +358,3 @@ class ErrorController(BaseController):
r = ErrorReport.new(self, kind)
self.reports.insert(0, r)
return r
def start_ui(self):
raise Skip
def cancel(self):
pass

View File

@ -22,8 +22,10 @@ import requests.exceptions
from subiquitycore.async_helpers import (
schedule_task,
)
from subiquitycore.controller import BaseController
from subiquitycore.core import Skip
from subiquitycore.controller import (
BaseController,
Skip,
)
log = logging.getLogger('subiquity.controllers.refresh')

View File

@ -20,8 +20,10 @@ import requests.exceptions
from subiquitycore.async_helpers import (
schedule_task,
)
from subiquitycore.controller import BaseController
from subiquitycore.core import Skip
from subiquitycore.controller import (
BaseController,
Skip,
)
from subiquity.models.snaplist import SnapSelection
from subiquity.ui.views.snaplist import SnapListView

View File

@ -21,6 +21,10 @@ import os
log = logging.getLogger("subiquitycore.controller")
class Skip(Exception):
"""Raise this from a controller's start_ui method to skip a screen."""
class BaseController(ABC):
"""Base class for controllers."""
@ -150,3 +154,12 @@ class RepeatedController(BaseController):
def cancel(self):
self.orig.cancel()
class NoUIController(BaseController):
def start_ui(self):
raise Skip
def cancel(self):
pass

View File

@ -26,7 +26,10 @@ import tty
import urwid
import yaml
from subiquitycore.controller import RepeatedController
from subiquitycore.controller import (
RepeatedController,
Skip,
)
from subiquitycore.signals import Signal
from subiquitycore.prober import Prober
from subiquitycore.ui.frame import SubiquityCoreUI
@ -34,10 +37,6 @@ from subiquitycore.ui.frame import SubiquityCoreUI
log = logging.getLogger('subiquitycore.core')
class Skip(Exception):
"""Raise this from a controller's default method to skip a screen."""
# From uapi/linux/kd.h:
KDGKBTYPE = 0x4B33 # get keyboard type