From 04c7d60d0f807ffb9eef4c9f7654a933dea69cff Mon Sep 17 00:00:00 2001 From: David Lehman Date: Thu, 21 Feb 2013 13:16:46 +0100 Subject: [PATCH 06/13] Allow changing the size of encrypted devices via DeviceFactory. (#913169) --- blivet/devicefactory.py | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/blivet/devicefactory.py b/blivet/devicefactory.py index 6a1f9d5..3982570 100644 --- a/blivet/devicefactory.py +++ b/blivet/devicefactory.py @@ -674,21 +674,27 @@ class PartitionFactory(DeviceFactory): def set_device_size(self, container, device=None): size = self.size if device: - if size != device.size: + if isinstance(device, LUKSDevice): + use_dev = device.slave + else: + use_dev = device + + if size != use_dev.size: log.info("adjusting device size from %.2f to %.2f" - % (device.size, size)) + % (use_dev.size, size)) + # use device here since the leaf format is what we're concerned with base_size = max(PartitionFactory.default_size, device.format.minSize) size = max(base_size, size) - device.req_base_size = base_size - device.req_size = base_size - device.req_max_size = size - device.req_grow = size > base_size + use_dev.req_base_size = base_size + use_dev.req_size = base_size + use_dev.req_max_size = size + use_dev.req_grow = size > base_size # this probably belongs somewhere else but this is our chance to # update the disk set - device.req_disks = self.disks[:] + use_dev.req_disks = self.disks[:] return size @@ -769,7 +775,12 @@ class LVMFactory(DeviceFactory): size = self.size free = container.freeSpace if device: - free += device.size + if isinstance(device, LUKSDevice): + use_dev = device.slave + else: + use_dev = device + + free += use_dev.size if free < size: log.info("adjusting device size from %.2f to %.2f so it fits " @@ -777,11 +788,11 @@ class LVMFactory(DeviceFactory): size = free if device: - if size != device.size: + if size != use_dev.size: log.info("adjusting device size from %.2f to %.2f" - % (device.size, size)) + % (use_dev.size, size)) - device.size = size + use_dev.size = size return size -- 1.8.1