[PATCH 04/11] Clean up container disk set and encryption change handling. (#874714)

David Lehman dlehman at redhat.com
Fri Nov 9 21:09:14 UTC 2012


Also make it a bit easier to see what's going on by performing removals
from the container's disk set separately from toggling member encryption.
---
 pyanaconda/storage/__init__.py |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/pyanaconda/storage/__init__.py b/pyanaconda/storage/__init__.py
index e71be35..79fd36b 100644
--- a/pyanaconda/storage/__init__.py
+++ b/pyanaconda/storage/__init__.py
@@ -1857,17 +1857,30 @@ class Storage(object):
 
         # prepare already-defined member partitions for reallocation
         for member in members[:]:
+            if any([d in remove_disks for d in member.disks]):
+                if isinstance(member, LUKSDevice):
+                    container.removeMember(member)
+                    self.destroyDevice(member)
+                    members.remove(member)
+                    member = member.slave
+                else:
+                    container.removeMember(member)
+                    members.remove(member)
+
+                self.destroyDevice(member)
+                continue
+
             if isinstance(member, LUKSDevice):
-                if member.slave.disk in remove_disks or not factory.encrypted:
+                if not factory.encrypted:
+                    # encryption was toggled for the member devices
                     container.removeMember(member)
                     self.destroyDevice(member)
                     members.remove(member)
-                    if not factory.encrypted:
-                        # encryption was toggled for the member devices
-                        self.formatDevice(member.slave,
-                                          getFormat(factory.member_format))
-                        members.append(member.slave)
-                        container.addMember(member.slave)
+
+                    self.formatDevice(member.slave,
+                                      getFormat(factory.member_format))
+                    members.append(member.slave)
+                    container.addMember(member.slave)
 
                 member = member.slave
             elif factory.encrypted:
@@ -1882,14 +1895,6 @@ class Storage(object):
                 members.append(member)
                 container.addMember(member)
 
-            if member.disk in remove_disks:
-                if member in container.parents:
-                    container.removeMember(member)
-                    members.remove(member)
-
-                self.destroyDevice(member)
-                continue
-
             member.req_base_size = base_size
             member.req_size = member.req_base_size
             member.req_grow = True
-- 
1.7.7.6



More information about the anaconda-patches mailing list