sort out UnformattedPartitions nicer

This commit is contained in:
Michael Gerlach 2017-01-31 21:45:40 +01:00
parent e129b33546
commit ff4918f1e0

View file

@ -109,15 +109,14 @@ class MountAdditional(Task):
import os import os
from bootstrapvz.base.fs.partitions.unformatted import UnformattedPartition from bootstrapvz.base.fs.partitions.unformatted import UnformattedPartition
p_map = info.volume.partition_map p_map = info.volume.partition_map
partitions = [] partitions = p_map.partitions;
# we need to get rid of UnformattedPartition and sort the list of additional partitons in order to mount them correctly is_additional = lambda partition: (
for partition in info.volume.partition_map.partitions: not isinstance(partition, UnformattedPartition)
if isinstance(partition, UnformattedPartition): and partition.name not in ["boot", "swap", "root"]
continue )
if partition.name not in ["boot", "swap", "root"]: name_length = lambda partition: len(partition.name)
partitions.append(partition.name) for partition in sorted(filter(is_additional, partitions), key=name_length):
for partition_name in sorted(partitions, key=len, reverse=False): partition = getattr(p_map, partition.name)
partition = getattr(p_map, partition_name)
os.makedirs(os.path.join(info.root, partition.name)) os.makedirs(os.path.join(info.root, partition.name))
if partition.mountopts is None: if partition.mountopts is None:
p_map.root.add_mount(getattr(p_map, partition.name), partition.name) p_map.root.add_mount(getattr(p_map, partition.name), partition.name)
@ -193,6 +192,7 @@ class FStab(Task):
import os.path import os.path
from bootstrapvz.base.fs.partitions.unformatted import UnformattedPartition from bootstrapvz.base.fs.partitions.unformatted import UnformattedPartition
p_map = info.volume.partition_map p_map = info.volume.partition_map
partitions = p_map.partitions;
mount_points = [{'path': '/', mount_points = [{'path': '/',
'partition': p_map.root, 'partition': p_map.root,
'dump': '1', 'dump': '1',
@ -210,10 +210,13 @@ class FStab(Task):
'dump': '1', 'dump': '1',
'pass_num': '0', 'pass_num': '0',
}) })
for partition in info.volume.partition_map.partitions:
if isinstance(partition, UnformattedPartition): is_additional = lambda partition: (
continue not isinstance(partition, UnformattedPartition)
if partition.name not in ["boot", "swap", "root", "type"]: and partition.name not in ["boot", "swap", "root", "type"]
)
name_length = lambda partition: len(partition.name)
for partition in sorted(filter(is_additional, partitions), key=name_length):
mount_points.append({'path': "/" + partition.name, mount_points.append({'path': "/" + partition.name,
'partition': getattr(p_map, partition.name), 'partition': getattr(p_map, partition.name),
'dump': '1', 'dump': '1',