1) Destruction of partitions goes before destruction of partitioned devices. 2) Creation of two partitions on the same disk should be sorted by partition number, not name. 3) Resize of partitioned devices is not supported, so don't clutter the sorting function with code to handle it. --- storage/devicetree.py | 24 ++++++++---------------- 1 files changed, 8 insertions(+), 16 deletions(-) diff --git a/storage/devicetree.py b/storage/devicetree.py index 14239b0..75dde9c 100644 --- a/storage/devicetree.py +++ b/storage/devicetree.py @@ -514,10 +514,10 @@ class DeviceTree(object): ret = cmp(a2.device.name, a1.device.name) elif isinstance(a1.device, PartitionDevice) and \ a2.device.partitioned: - ret = 1 + ret = -1 elif isinstance(a2.device, PartitionDevice) and \ a1.device.partitioned: - ret = -1 + ret = 1 else: ret = 0 elif a1.isDestroy(): @@ -555,18 +555,6 @@ class DeviceTree(object): elif isinstance(a1.device, PartitionDevice) and \ isinstance(a2.device, PartitionDevice): ret = cmp(a1.device.name, a2.device.name) - elif isinstance(a1.device, PartitionDevice) and \ - a2.device.partitioned: - if a1.isGrow(): - ret = -1 - else: - ret = 1 - elif isinstance(a2.device, PartitionDevice) and \ - a1.device.partitioned: - if a2.isGrow(): - ret = 1 - else: - ret = -1 else: ret = 0 elif a1.isResize(): @@ -622,9 +610,13 @@ class DeviceTree(object): ret = -1 elif isinstance(a1.device, PartitionDevice) and \ isinstance(a2.device, PartitionDevice): - ret = cmp(a1.device.name, a2.device.name) + if a1.device.disk == a2.device.disk: + ret = cmp(a1.device.partedPartition.number, + a2.device.partedPartition.number) + else: + ret = cmp(a1.device.name, a2.device.name) else: - ret = cmp(a1.device.name, a2.device.name) + ret = 0 else: ret = 0 -- 1.6.6 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list