[PATCH] Ensure we are specifying sensible target sizes for resize. (#1120964)
David Lehman
dlehman at redhat.com
Thu Oct 30 18:23:11 UTC 2014
On 10/30/2014 01:16 PM, David Lehman wrote:
> ---
> pyanaconda/kickstart.py | 4 ++++
> pyanaconda/ui/gui/spokes/custom.py | 1 +
> pyanaconda/ui/gui/spokes/lib/resize.py | 4 ++--
> 3 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
> index 27c2a1b..2c09774 100644
> --- a/pyanaconda/kickstart.py
> +++ b/pyanaconda/kickstart.py
> @@ -871,6 +871,7 @@ class LogVolData(commands.logvol.F21_LogVolData):
> msg=_("Logical volume \"%s\" given in logvol command does not exist.") % self.name))
>
> if self.resize:
> + size = dev.alignTargetSize(size)
> if size < dev.currentSize:
> # shrink
> try:
> @@ -932,6 +933,7 @@ class LogVolData(commands.logvol.F21_LogVolData):
> removeExistingFormat(device, storage)
>
> if self.resize:
> + size = device.alignTargetSize(size)
> try:
> devicetree.registerAction(ActionResizeDevice(device, size))
> except ValueError:
> @@ -1169,6 +1171,7 @@ class PartitionData(commands.partition.F18_PartData):
> msg=_("Partition \"%s\" given in part command does not exist.") % self.onPart))
>
> if self.resize:
> + size = dev.raw_device.alignTargetSize(size)
> if size < dev.currentSize:
> # shrink
> try:
> @@ -1261,6 +1264,7 @@ class PartitionData(commands.partition.F18_PartData):
>
> removeExistingFormat(device, storage)
> if self.resize:
> + size = device.raw_device.alignTargetSize(size)
> try:
> devicetree.registerAction(ActionResizeDevice(device, size))
> except ValueError:
> diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py
> index 9b01b51..ae7ddd0 100644
> --- a/pyanaconda/ui/gui/spokes/custom.py
> +++ b/pyanaconda/ui/gui/spokes/custom.py
> @@ -746,6 +746,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
> use_old_size = use_dev.size
>
> # bound size to boundaries given by the device
> + use_size = udev_dev.alignTargetSize(use_size)
That won't work, will it? Fixed locally.
> size = storage_utils.bound_size(use_size, use_dev, use_old_size)
>
> # And then we need to re-check that the max size is actually
> diff --git a/pyanaconda/ui/gui/spokes/lib/resize.py b/pyanaconda/ui/gui/spokes/lib/resize.py
> index ee9c322..0f52f22 100644
> --- a/pyanaconda/ui/gui/spokes/lib/resize.py
> +++ b/pyanaconda/ui/gui/spokes/lib/resize.py
> @@ -435,8 +435,8 @@ class ResizeDialog(GUIObject):
> return False
> elif obj.action == _(SHRINK) and int(device.size) != int(obj.target):
> if device.resizable:
> - # round this up to nearest MB? MiB? Maybe in targetSize setter.
> - self.storage.resizeDevice(device, Size(obj.target))
> + aligned = device.alignTargetSize(Size(obj.target))
> + self.storage.resizeDevice(device, aligned)
> else:
> self._recursiveRemove(device)
> elif obj.action == _(DELETE):
>
More information about the anaconda-patches
mailing list