filesystem: store the root directory in the filesystem model

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
This commit is contained in:
Olivier Gayot 2023-08-30 11:19:14 +02:00
parent ab626fd423
commit c210b93458
4 changed files with 7 additions and 6 deletions

View File

@ -253,7 +253,7 @@ class FilesystemController(SubiquityTuiController, FilesystemManipulator):
self.app.next_screen(coro)
return
status = await self.app.wait_with_progress(coro)
self.model = FilesystemModel(status.bootloader)
self.model = FilesystemModel(status.bootloader, root="/")
self.model.load_server_data(status)
if self.model.bootloader == Bootloader.PREP:
self.supports_resilient_boot = False

View File

@ -1281,7 +1281,7 @@ class ActionRenderMode(enum.Enum):
FORMAT_MOUNT = enum.auto()
class FilesystemModel(object):
class FilesystemModel:
target = None
_partition_alignment_data = {
@ -1330,10 +1330,11 @@ class FilesystemModel(object):
else:
return Bootloader.BIOS
def __init__(self, bootloader=None):
def __init__(self, bootloader=None, *, root: str):
if bootloader is None:
bootloader = self._probe_bootloader()
self.bootloader = bootloader
self.root = root
self.storage_version = 1
self._probe_data = None
self.dd_target: Optional[Disk] = None
@ -1356,7 +1357,7 @@ class FilesystemModel(object):
# the original state. _orig_config plays a similar role, but is
# expressed in terms of curtin actions, which are not what we want to
# use on the V2 storage API.
orig_model = FilesystemModel(self.bootloader)
orig_model = FilesystemModel(self.bootloader, root=self.root)
orig_model.target = self.target
orig_model.load_probe_data(self._probe_data)
return orig_model

View File

@ -180,7 +180,7 @@ class SubiquityModel:
self.codecs = CodecsModel()
self.debconf_selections = DebconfSelectionsModel()
self.drivers = DriversModel()
self.filesystem = FilesystemModel()
self.filesystem = FilesystemModel(root=root)
self.identity = IdentityModel()
self.integrity = IntegrityModel()
self.kernel = KernelModel()

View File

@ -135,7 +135,7 @@ class FakeStorageInfo:
def make_model(bootloader=None, storage_version=None):
model = FilesystemModel()
model = FilesystemModel(root="/tmp")
if bootloader is not None:
model.bootloader = bootloader
if storage_version is not None: