[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