[f22-branch 1/2] Allow adding new partitions to disks with active devices

vojtechtrefny installerbot-noreply at redhat.com
Tue Jun 2 07:44:58 UTC 2015


From: Vojtech Trefny <vtrefny at redhat.com>

Parted doesn't allow changing disklabel when there is an active
partition on the disk. Current implementation of
findActiveDevicesOnActionDisks doesn't allow adding new partitions
when there is an existing active (child) device other than another
partition (eg. VG). New version checks only actions that actually
changes the disklabel and checks status of formats of (child) devices
on the disk with changes.

(cherry picked from commit b72e957d2b23444824316331ae21d1c594371e9c)

Signed-off-by: Vojtech Trefny <vtrefny at redhat.com>
---
 blivet/devicetree.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/blivet/devicetree.py b/blivet/devicetree.py
index 8f7acd8..d1f1e9d 100644
--- a/blivet/devicetree.py
+++ b/blivet/devicetree.py
@@ -329,18 +329,21 @@ def findActiveDevicesOnActionDisks(self):
         disks = []
         for action in self._actions:
             disk = None
-            if action.isDevice and isinstance(action.device, PartitionDevice):
-                disk = action.device.disk
-            elif action.isFormat and action.format.type == "disklabel":
+            if action.isFormat and action.format.type == "disklabel":
                 disk = action.device
 
             if disk is not None and disk not in disks:
                 disks.append(disk)
 
-        active = (dev for dev in self.devices
-                        if (dev.status and
-                            (not dev.isDisk and
-                             not isinstance(dev, PartitionDevice))))
+        active = []
+        for dev in self.devices:
+            if dev.status and not dev.isDisk and \
+               not isinstance(dev, PartitionDevice):
+                active.append(dev)
+
+            elif dev.format.status and not dev.isDisk:
+                active.append(dev)
+
         devices = [a.name for a in active if any(d in disks for d in a.disks)]
         return devices
 


-- 
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/4114a842f4ee08eeae2aebf52d048ea5db63ab0f


More information about the anaconda-patches mailing list