summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMina Galić <freebsd@igalic.co>2023-05-11 20:31:43 +0100
committerGitHub <noreply@github.com>2023-05-11 14:31:43 -0500
commit60248d88f2d9e963a0bd0510180ec7b4d41cebd9 (patch)
treebef069ce3bf872995c68eb86bf4cb06a2ee1bb41
parent481bf4d3c3460fe398c74c950eb02f8562e1c20a (diff)
downloadcloud-init-git-60248d88f2d9e963a0bd0510180ec7b4d41cebd9.tar.gz
FreeBSD (and friends): better identify MBR slices (#2168)
The code is already in the Dragonfly path, we just need to use it. LP: #2016350 Sponsored by: The FreeBSD Foundation
-rw-r--r--cloudinit/config/cc_growpart.py32
1 files changed, 17 insertions, 15 deletions
diff --git a/cloudinit/config/cc_growpart.py b/cloudinit/config/cc_growpart.py
index cce2f686..068e678f 100644
--- a/cloudinit/config/cc_growpart.py
+++ b/cloudinit/config/cc_growpart.py
@@ -111,7 +111,7 @@ LOG = logging.getLogger(__name__)
def resizer_factory(mode: str, distro: Distro):
resize_class = None
if mode == "auto":
- for (_name, resizer) in RESIZERS:
+ for _name, resizer in RESIZERS:
cur = resizer(distro)
if cur.available():
resize_class = cur
@@ -122,7 +122,7 @@ def resizer_factory(mode: str, distro: Distro):
else:
mmap = {}
- for (k, v) in RESIZERS:
+ for k, v in RESIZERS:
mmap[k] = v
if mode not in mmap:
@@ -263,16 +263,20 @@ def device_part_info(devpath):
bname = os.path.basename(rpath)
syspath = "/sys/class/block/%s" % bname
- # FreeBSD doesn't know of sysfs so just get everything we need from
- # the device, like /dev/vtbd0p2.
- if util.is_FreeBSD():
- freebsd_part = "/dev/" + util.find_freebsd_part(devpath)
- m = re.search("^(/dev/.+)p([0-9])$", freebsd_part)
- return (m.group(1), m.group(2))
- elif util.is_DragonFlyBSD():
- dragonflybsd_part = "/dev/" + util.find_dragonflybsd_part(devpath)
- m = re.search("^(/dev/.+)s([0-9])$", dragonflybsd_part)
- return (m.group(1), m.group(2))
+ if util.is_BSD():
+ # FreeBSD doesn't know of sysfs so just get everything we need from
+ # the device, like /dev/vtbd0p2.
+ fpart = "/dev/" + util.find_freebsd_part(devpath)
+ m = re.search("^(/dev/.+)p([0-9])$", fpart)
+ if m:
+ return m.group(1), m.group(2)
+
+ # alternatively, we could be dealing with MBR slices,
+ # or we're on DragonFly
+ fslice = "/dev/" + util.find_dragonflybsd_part(devpath)
+ m = re.search("^(/dev/.+)s([0-9])$", fslice)
+ if m:
+ return m.group(1), m.group(2)
if not os.path.exists(syspath):
raise ValueError("%s had no syspath (%s)" % (devpath, syspath))
@@ -613,7 +617,7 @@ def handle(name: str, cfg: Config, cloud: Cloud, args: list) -> None:
func=resize_devices,
args=(resizer, devices),
)
- for (entry, action, msg) in resized:
+ for entry, action, msg in resized:
if action == RESIZE.CHANGED:
LOG.info("'%s' resized: %s", entry, msg)
else:
@@ -621,5 +625,3 @@ def handle(name: str, cfg: Config, cloud: Cloud, args: list) -> None:
RESIZERS = (("growpart", ResizeGrowPart), ("gpart", ResizeGpart))
-
-# vi: ts=4 expandtab