Skip to content

Commit 686b749

Browse files
committed
Match package manager with a python match in grow_root_partition
and implement missing command for opensuse Signed-off-by: Gaëtan Lehmann <gaetan.lehmann@vates.tech>
1 parent ebfb4f5 commit 686b749

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

lib/vm.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from lib.vdi import VDI
3030
from lib.vif import VIF
3131

32-
from typing import TYPE_CHECKING, Iterable, List, Literal, overload
32+
from typing import TYPE_CHECKING, Iterable, List, Literal, assert_never, overload
3333

3434
if TYPE_CHECKING:
3535
from lib.host import Host
@@ -527,14 +527,21 @@ def detect_package_manager(self) -> PackageManagerEnum:
527527

528528
def grow_root_partition(self) -> int | None:
529529
pkg_manager = self.detect_package_manager()
530-
if pkg_manager == PackageManagerEnum.APK:
531-
self.ssh('apk add util-linux e2fsprogs-extra')
532-
elif pkg_manager == PackageManagerEnum.APT_GET:
533-
self.ssh('apt-get update && apt-get install -y -qq util-linux e2fsprogs')
534-
elif pkg_manager == PackageManagerEnum.RPM:
535-
self.ssh('yum install -y util-linux e2fsprogs')
536-
else:
537-
return None
530+
match pkg_manager:
531+
case PackageManagerEnum.APK:
532+
self.ssh('apk add util-linux e2fsprogs-extra')
533+
case PackageManagerEnum.APT_GET:
534+
self.ssh('apt-get update && apt-get install -y -qq util-linux e2fsprogs')
535+
case PackageManagerEnum.DNF:
536+
self.ssh('dnf install -y util-linux e2fsprogs')
537+
case PackageManagerEnum.YUM:
538+
self.ssh('yum install -y util-linux e2fsprogs')
539+
case PackageManagerEnum.ZYPPER:
540+
self.ssh('zypper --non-interactive install util-linux e2fsprogs')
541+
case PackageManagerEnum.UNKNOWN:
542+
return None
543+
case _:
544+
assert_never(pkg_manager)
538545
mount_output = self.ssh('mount').strip()
539546
root_match = re.search(r'/dev/(\w+?)(p?)(\d+) on / type (\w+)', mount_output)
540547
assert root_match is not None

0 commit comments

Comments
 (0)