diff --git a/diskimage_builder/block_device/level1/partitioning.py b/diskimage_builder/block_device/level1/partitioning.py index f690aba06..05114898b 100644 --- a/diskimage_builder/block_device/level1/partitioning.py +++ b/diskimage_builder/block_device/level1/partitioning.py @@ -151,14 +151,19 @@ class Partitioning(Digraph.Node): # Parameter check if 'base' not in config: - self._config_error("Partitioning config needs 'base'") + raise BlockDeviceSetupException("Partitioning config needs 'base'") self.base = config['base'] + if 'partitions' not in config: + raise BlockDeviceSetupException( + "Partitioning config needs 'partitions'") + if 'label' not in config: - self._config_error("Partitioning config needs 'label'") + raise BlockDeviceSetupException( + "Partitioning config needs 'label'") self.label = config['label'] if self.label not in ("mbr", ): - self._config_error("Label must be 'mbr'") + raise BlockDeviceSetupException("Label must be 'mbr'") # It is VERY important to get the alignment correct. If this # is not correct, the disk performance might be very poor. @@ -175,15 +180,13 @@ class Partitioning(Digraph.Node): if 'align' in config: self.align = parse_abs_size_spec(config['align']) - if 'partitions' not in config: - self._config_error("Partitioning config needs 'partitions'") - self.partitions = [] prev_partition = None for part_cfg in config['partitions']: if 'name' not in part_cfg: - self.config_error("Missing 'name' in partition config") + raise BlockDeviceSetupException( + "Missing 'name' in partition config") part_name = part_cfg['name'] flags = set() @@ -194,12 +197,13 @@ class Partitioning(Digraph.Node): elif f == 'primary': flags.add(Partitioning.flag_primary) else: - self._config_error("Unknown flag [%s] in " - "partitioning for [%s]" - % (f, part_name)) + raise BlockDeviceSetupException( + "Unknown flag [%s] in partitioning for [%s]" + % (f, part_name)) + if 'size' not in part_cfg: - self._config_error("No 'size' in partition [%s]" - % part_name) + raise BlockDeviceSetupException("No 'size' in partition [%s]" + % part_name) size = part_cfg['size'] ptype = int(part_cfg['type'], 16) if 'type' in part_cfg else 0x83 @@ -210,10 +214,6 @@ class Partitioning(Digraph.Node): prev_partition = np logger.debug(part_cfg) - def _config_error(self, msg): - logger.error(msg) - raise BlockDeviceSetupException(msg) - def _size_of_block_dev(self, dev): with open(dev, "r") as fd: fd.seek(0, 2) diff --git a/diskimage_builder/block_device/level2/mkfs.py b/diskimage_builder/block_device/level2/mkfs.py index fe27dda88..4ce4cdd27 100644 --- a/diskimage_builder/block_device/level2/mkfs.py +++ b/diskimage_builder/block_device/level2/mkfs.py @@ -43,16 +43,13 @@ file_system_max_label_length = { class Filesystem(Digraph.Node): - def _config_error(self, msg): - logger.error(msg) - raise BlockDeviceSetupException(msg) - def __init__(self, config): logger.debug("Create filesystem object; config [%s]" % config) # Parameter check (mandatory) for pname in ['base', 'name', 'type']: if pname not in config: - self._config_error("Mkfs config needs [%s]" % pname) + raise BlockDeviceSetupException( + "Mkfs config needs [%s]" % pname) setattr(self, pname, config[pname]) # Parameter check (optional) @@ -71,20 +68,19 @@ class Filesystem(Digraph.Node): self.label = "img-rootfs" if self.label in file_system_labels: - self._config_error( - "File system label [%s] used more than once" % - self.label) + raise BlockDeviceSetupException( + "File system label [%s] used more than once" % self.label) file_system_labels.add(self.label) if self.type in file_system_max_label_length: - if file_system_max_label_length[self.type] < \ - len(self.label): - self._config_error( - "Label [%s] too long for filesystem [%s]: " - "maximum length [%d] provided length [%d]" % - (self.label, self.type, - file_system_max_label_length[self.type], - len(self.label))) + if file_system_max_label_length[self.type] < len(self.label): + raise BlockDeviceSetupException( + "Label [{label}] too long for filesystem [{type}]: " + " [{len}] > [{max_len}]".format({ + 'label': self.label, + 'type': self.type, + 'len': len(self.label), + 'max': file_system_max_label_length[self.type]})) else: logger.warning("Length of label [%s] cannot be checked for " "filesystem [%s]: unknown max length" % diff --git a/diskimage_builder/block_device/level3/mount.py b/diskimage_builder/block_device/level3/mount.py index b247b1f8e..a0f0e91c6 100644 --- a/diskimage_builder/block_device/level3/mount.py +++ b/diskimage_builder/block_device/level3/mount.py @@ -35,17 +35,13 @@ sorted_mount_points = None class MountPoint(Digraph.Node): - @staticmethod - def _config_error(msg): - logger.error(msg) - raise BlockDeviceSetupException(msg) - def __init__(self, mount_base, config): # Parameter check self.mount_base = mount_base for pname in ['base', 'name', 'mount_point']: if pname not in config: - self._config_error("MountPoint config needs [%s]" % pname) + raise BlockDeviceSetupException( + "MountPoint config needs [%s]" % pname) setattr(self, pname, config[pname]) Digraph.Node.__init__(self, self.name) logger.debug("MountPoint created [%s]" % self) @@ -57,8 +53,9 @@ class MountPoint(Digraph.Node): def insert_node(self, dg): global mount_points if self.mount_point in mount_points: - self._config_error("Mount point [%s] specified more than once" - % self.mount_point) + raise BlockDeviceSetupException( + "Mount point [%s] specified more than once" + % self.mount_point) logger.debug("Insert node [%s]" % self) mount_points[self.mount_point] = self dg.add_node(self) @@ -136,17 +133,14 @@ class Mount(object): type_string = "mount" tree_config = TreeConfig("mount") - def _config_error(self, msg): - logger.error(msg) - raise BlockDeviceSetupException(msg) - def __init__(self, config, params): logger.debug("Mounting object; config [%s]" % config) self.config = config self.params = params if 'mount-base' not in self.params: - MountPoint._config_error("Mount default config needs 'mount-base'") + raise BlockDeviceSetupException( + "Mount default config needs 'mount-base'") self.mount_base = self.params['mount-base'] self.mount_points = {} diff --git a/diskimage_builder/block_device/level4/fstab.py b/diskimage_builder/block_device/level4/fstab.py index dc91ebc79..7f3cacd75 100644 --- a/diskimage_builder/block_device/level4/fstab.py +++ b/diskimage_builder/block_device/level4/fstab.py @@ -14,8 +14,6 @@ import logging -from diskimage_builder.block_device.blockdevice \ - import BlockDeviceSetupException from diskimage_builder.block_device.tree_config import TreeConfig from diskimage_builder.graph.digraph import Digraph @@ -28,10 +26,6 @@ class Fstab(Digraph.Node): type_string = "fstab" tree_config = TreeConfig("fstab") - def _config_error(self, msg): - logger.error(msg) - raise BlockDeviceSetupException(msg) - def __init__(self, config, params): logger.debug("Fstab object; config [%s]" % config) self.config = config