From 0e1da11c3619846d8b83f725ffa29983fab586ed Mon Sep 17 00:00:00 2001 From: Dan Bungert Date: Wed, 7 Jun 2023 10:37:15 -0600 Subject: [PATCH] filesystem: allow zpool to satisfy mount --- subiquity/models/filesystem.py | 8 +++++++- subiquity/models/tests/test_filesystem.py | 12 ++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/subiquity/models/filesystem.py b/subiquity/models/filesystem.py index 0a89d53e..b8e58405 100644 --- a/subiquity/models/filesystem.py +++ b/subiquity/models/filesystem.py @@ -1788,7 +1788,13 @@ class FilesystemModel(object): "unknown bootloader type {}".format(self.bootloader)) def _mount_for_path(self, path): - return self._one(type='mount', path=path) + mount = self._one(type='mount', path=path) + if mount is not None: + return mount + zpool = self._one(type='zpool', mountpoint=path) + if zpool is not None: + return zpool + return None def is_root_mounted(self): return self._mount_for_path('/') is not None diff --git a/subiquity/models/tests/test_filesystem.py b/subiquity/models/tests/test_filesystem.py index d15c683b..6d5b4253 100644 --- a/subiquity/models/tests/test_filesystem.py +++ b/subiquity/models/tests/test_filesystem.py @@ -1290,3 +1290,15 @@ class TestZPool(SubiTestCase): self.assertEqual('zfs-1', zfs.id) self.assertEqual(zpool, zfs.pool) self.assertEqual('/ROOT', zfs.volume) + + +class TestRootfs(SubiTestCase): + def test_zpool_may_provide_rootfs(self): + m = make_model() + make_zpool(model=m, mountpoint='/') + self.assertTrue(m.is_root_mounted()) + + def test_zpool_nonrootfs_mountpoint(self): + m = make_model() + make_zpool(model=m, mountpoint='/srv') + self.assertFalse(m.is_root_mounted())