[RHEL 7.2 - PATCH 2/5] Enforce size range on factory fstypes (#1178884)
Robert Marshall
rmarshall at redhat.com
Mon Jul 27 18:40:09 UTC 2015
From: David Lehman <dlehman at redhat.com>
Filesystem formats may have a maximum and minimum size value. Added a
check to ensure factory targets fall within these size constraints.
Cherry pick taken from master commit a800128.
Resolves: rhbz#1178884
---
blivet/devicefactory.py | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/blivet/devicefactory.py b/blivet/devicefactory.py
index 0a86c90..12e9ebc 100644
--- a/blivet/devicefactory.py
+++ b/blivet/devicefactory.py
@@ -350,6 +350,22 @@ class DeviceFactory(object):
free_info = self.storage.getFreeSpace(disks=self.disks)
return sum(d[0] for d in free_info.values())
+ def _normalize_size(self):
+ if self.size is None:
+ self._handle_no_size()
+
+ size = self.size
+ fmt = getFormat(self.fstype)
+ if size < fmt.minSize:
+ size = fmt.minSize
+ elif fmt.maxSize and size > fmt.maxSize:
+ size = fmt.maxSize
+
+ if self.size != size:
+ log.debug("adjusted size from %s to %s to honor format limits",
+ self.size, size)
+ self.size = size
+
def _handle_no_size(self):
""" Set device size so that it grows to the largest size possible. """
if self.size is not None:
@@ -779,7 +795,7 @@ class DeviceFactory(object):
if self.container and self.container.exists:
self.disks = self.container.disks
- self._handle_no_size()
+ self._normalize_size()
self._set_up_child_factory()
# Configure any devices this device will use as building blocks, except
--
1.8.3.1
More information about the anaconda-patches
mailing list