Replace --uefi with --bootloader to select any bootloader style for dry-run

Relatedly, make 'MAKE_BOOT in disk.supported_actions' depend on
bootloader style not architecture.
This commit is contained in:
Michael Hudson-Doyle 2019-05-08 23:25:30 +12:00
parent 9862fa9049
commit 05f9b10974
6 changed files with 22 additions and 15 deletions

View File

@ -30,7 +30,7 @@ i18n:
$(PYTHON) setup.py build $(PYTHON) setup.py build
dryrun: probert i18n dryrun: probert i18n
$(MAKE) ui-view DRYRUN="--dry-run --uefi" $(MAKE) ui-view DRYRUN="--dry-run --bootloader uefi"
ui-view: ui-view:
$(PYTHON) -m subiquity $(DRYRUN) $(MACHARGS) $(PYTHON) -m subiquity $(DRYRUN) $(MACHARGS)

View File

@ -63,9 +63,9 @@ def parse_options(argv):
parser.add_argument('--machine-config', metavar='CONFIG', parser.add_argument('--machine-config', metavar='CONFIG',
dest='machine_config', dest='machine_config',
help="Don't Probe. Use probe data file") help="Don't Probe. Use probe data file")
parser.add_argument('--uefi', action='store_true', parser.add_argument('--bootloader',
dest='uefi', choices=['none', 'bios', 'prep', 'uefi'],
help='run in uefi support mode') help='Override style of bootloader to use')
parser.add_argument('--screens', action='append', dest='screens', parser.add_argument('--screens', action='append', dest='screens',
default=[]) default=[])
parser.add_argument('--script', metavar="SCRIPT", action='append', parser.add_argument('--script', metavar="SCRIPT", action='append',

View File

@ -58,8 +58,9 @@ class FilesystemController(BaseController):
def __init__(self, common): def __init__(self, common):
super().__init__(common) super().__init__(common)
self.model = self.base_model.filesystem self.model = self.base_model.filesystem
if self.opts.dry_run and self.opts.uefi: if self.opts.dry_run and self.opts.bootloader:
self.model.bootloader = Bootloader.UEFI name = self.opts.bootloader.upper()
self.model.bootloader = getattr(Bootloader, name)
self.answers = self.all_answers.get("Filesystem", {}) self.answers = self.all_answers.get("Filesystem", {})
self.answers.setdefault('guided', False) self.answers.setdefault('guided', False)
self.answers.setdefault('guided-index', 0) self.answers.setdefault('guided-index', 0)

View File

@ -37,7 +37,7 @@ def make_controller_and_disk():
common['answers'] = {} common['answers'] = {}
opts = Thing() opts = Thing()
opts.dry_run = True opts.dry_run = True
opts.uefi = True opts.bootloader = "UEFI"
common['opts'] = opts common['opts'] = opts
controller = FilesystemController(common) controller = FilesystemController(common)
return controller, disk return controller, disk

View File

@ -541,14 +541,18 @@ class Disk(_Device):
return self.serial return self.serial
return self.path return self.path
supported_actions = [ @property
DeviceAction.INFO, def supported_actions(self):
DeviceAction.PARTITION, actions = [
DeviceAction.FORMAT, DeviceAction.INFO,
DeviceAction.REMOVE, DeviceAction.PARTITION,
] DeviceAction.FORMAT,
if platform.machine() != 's390x': DeviceAction.REMOVE,
supported_actions.append(DeviceAction.MAKE_BOOT) ]
if self._m.bootloader != Bootloader.NONE:
actions.append(DeviceAction.MAKE_BOOT)
return actions
_can_INFO = True _can_INFO = True
_can_PARTITION = property(lambda self: self.free_for_partitions > 0) _can_PARTITION = property(lambda self: self.free_for_partitions > 0)
_can_FORMAT = property( _can_FORMAT = property(

View File

@ -8,6 +8,7 @@ from subiquitycore.testing import view_helpers
from subiquity.controllers.filesystem import FilesystemController from subiquity.controllers.filesystem import FilesystemController
from subiquity.models.filesystem import ( from subiquity.models.filesystem import (
Bootloader,
Disk, Disk,
FilesystemModel, FilesystemModel,
) )
@ -24,6 +25,7 @@ class FilesystemViewTests(unittest.TestCase):
def make_view(self, model, devices=[]): def make_view(self, model, devices=[]):
controller = mock.create_autospec(spec=FilesystemController) controller = mock.create_autospec(spec=FilesystemController)
controller.ui = mock.Mock() controller.ui = mock.Mock()
model.bootloader = Bootloader.NONE
model.all_devices.return_value = devices model.all_devices.return_value = devices
model.grub_install_device = None model.grub_install_device = None
return FilesystemView(model, controller) return FilesystemView(model, controller)