From 4a303007149ea1205bbd454e70810e7dfa343d4c Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Fri, 5 Jun 2015 10:17:11 +0300 Subject: wic: Refactored getting root device name Replaced DirectImageCreator._get_boot_config private method with a 'rootdev' property. Simplified the code and API. Used 'uuid' property instead of incorrectly used 'part_type'. Signed-off-by: Ed Bartosh Signed-off-by: Ross Burton --- scripts/lib/wic/imager/direct.py | 28 ++++++++++------------ scripts/lib/wic/plugins/source/bootimg-efi.py | 6 ++--- scripts/lib/wic/plugins/source/bootimg-pcbios.py | 3 +-- .../lib/wic/plugins/source/rootfs_pcbios_ext.py | 3 +-- 4 files changed, 16 insertions(+), 24 deletions(-) diff --git a/scripts/lib/wic/imager/direct.py b/scripts/lib/wic/imager/direct.py index 83f9688878..36150c9ad3 100644 --- a/scripts/lib/wic/imager/direct.py +++ b/scripts/lib/wic/imager/direct.py @@ -346,27 +346,23 @@ class DirectImageCreator(BaseImageCreator): msger.info(msg) - def _get_boot_config(self): + @property + def rootdev(self): """ - Return the rootdev/root_part_uuid (if specified by - --part-type) + Get root device name to use as a 'root' parameter + in kernel command line. Assume partition order same as in wks """ - rootdev = None - root_part_uuid = None parts = self._get_parts() - for num, p in enumerate(parts, 1): - if p.mountpoint == "/": - part = '' - if p.disk.startswith('mmcblk'): - part = 'p' - - pnum = self.__get_part_num(num, parts) - rootdev = "/dev/%s%s%-d" % (p.disk, part, pnum) - root_part_uuid = p.part_type - - return (rootdev, root_part_uuid) + for num, part in enumerate(parts, 1): + if part.mountpoint == "/": + if part.uuid: + return "PARTUUID=%s" % part.uuid + else: + suffix = 'p' if part.disk.startswith('mmcblk') else '' + pnum = self.__get_part_num(num, parts) + return "/dev/%s%s%-d" % (part.disk, suffix, pnum) def _cleanup(self): if not self.__image is None: diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py index 400e3a2df8..39ce9f375e 100644 --- a/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -47,7 +47,6 @@ class BootimgEFIPlugin(SourcePlugin): else: splashline = "" - (rootdev, root_part_uuid) = cr._get_boot_config() options = cr.ks.handler.bootloader.appendLine grubefi_conf = "" @@ -62,7 +61,7 @@ class BootimgEFIPlugin(SourcePlugin): kernel = "/bzImage" if cr.ptable_format in ('msdos', 'gpt'): - rootstr = rootdev + rootstr = cr.rootdev else: raise ImageError("Unsupported partition table format found") @@ -87,7 +86,6 @@ class BootimgEFIPlugin(SourcePlugin): install_cmd = "install -d %s/loader/entries" % hdddir exec_cmd(install_cmd) - (rootdev, root_part_uuid) = cr._get_boot_config() options = cr.ks.handler.bootloader.appendLine timeout = kickstart.get_timeout(cr.ks) @@ -107,7 +105,7 @@ class BootimgEFIPlugin(SourcePlugin): kernel = "/bzImage" if cr.ptable_format in ('msdos', 'gpt'): - rootstr = rootdev + rootstr = cr.rootdev else: raise ImageError("Unsupported partition table format found") diff --git a/scripts/lib/wic/plugins/source/bootimg-pcbios.py b/scripts/lib/wic/plugins/source/bootimg-pcbios.py index 1c3c6e605c..dd49480141 100644 --- a/scripts/lib/wic/plugins/source/bootimg-pcbios.py +++ b/scripts/lib/wic/plugins/source/bootimg-pcbios.py @@ -83,7 +83,6 @@ class BootimgPcbiosPlugin(SourcePlugin): else: splashline = "" - (rootdev, root_part_uuid) = cr._get_boot_config() options = cr.ks.handler.bootloader.appendLine syslinux_conf = "" @@ -105,7 +104,7 @@ class BootimgPcbiosPlugin(SourcePlugin): syslinux_conf += "KERNEL " + kernel + "\n" if cr.ptable_format in ('msdos', 'gpt'): - rootstr = rootdev + rootstr = cr.rootdev else: raise ImageError("Unsupported partition table format found") diff --git a/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py b/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py index 50b221382c..90dac05dca 100644 --- a/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py +++ b/scripts/lib/wic/plugins/source/rootfs_pcbios_ext.py @@ -82,7 +82,6 @@ class RootfsPlugin(SourcePlugin): Called before do_prepare_partition() """ - rootdev = image_creator._get_boot_config()[0] options = image_creator.ks.handler.bootloader.appendLine syslinux_conf = "" @@ -102,7 +101,7 @@ class RootfsPlugin(SourcePlugin): syslinux_conf += " KERNEL /boot/bzImage\n" if image_creator.ptable_format in ('msdos', 'gpt'): - rootstr = rootdev + rootstr = image_creator.rootdev else: raise ImageError("Unsupported partition table format found") -- cgit 1.2.3-korg