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
dryrun: probert i18n
$(MAKE) ui-view DRYRUN="--dry-run --uefi"
$(MAKE) ui-view DRYRUN="--dry-run --bootloader uefi"
ui-view:
$(PYTHON) -m subiquity $(DRYRUN) $(MACHARGS)

View File

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

View File

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

View File

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

View File

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

View File

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