[PATCH 2/5] Make minSize, maxSize consistent and correct.

David Lehman dlehman at redhat.com
Thu Mar 20 17:06:37 UTC 2014


StorageDevice defaults should be dependent on whether the device is
resizable -- not whether or not the format has known size limits.

Any minSize or maxSize may be zero, meaning there is no known limit.
---
 blivet/devices.py | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/blivet/devices.py b/blivet/devices.py
index 47ad3b3..750ce8a 100644
--- a/blivet/devices.py
+++ b/blivet/devices.py
@@ -850,18 +850,12 @@ class StorageDevice(Device):
     @property
     def minSize(self):
         """ The minimum size this device can be. """
-        if self.format.minSize:
-            return self.format.minSize
-        else:
-            return self.size
+        return self.format.minSize if self.resizable else self.currentSize
 
     @property
     def maxSize(self):
         """ The maximum size this device can be. """
-        if self.format.maxSize > self.currentSize:
-            return self.currentSize
-        else:
-            return self.format.maxSize
+        return self.format.maxSize if self.resizable else self.currentSize
 
     @property
     def status(self):
@@ -1715,7 +1709,11 @@ class PartitionDevice(StorageDevice):
             if partition.type == parted.PARTITION_FREESPACE:
                 maxPartSize = self.size + Size(bytes=partition.getLength(unit="B"))
 
-        return min(self.format.maxSize, maxPartSize)
+        limits = [maxPartSize]
+        if self.format.maxSize > 0:
+            limits.append(self.format.maxSize)
+
+        return min(limits)
 
     @property
     def currentSize(self):
@@ -2641,7 +2639,11 @@ class LVMLogicalVolumeDevice(DMDevice):
     @property
     def maxSize(self):
         """ The maximum size this lv can be. """
-        return min(self.format.maxSize, self.size + self.vg.freeSpace)
+        limits = [self.size + self.vg.freeSpace]
+        if self.format.maxSize > 0:
+            limits.append(self.format.maxSize)
+
+        return min(limits)
 
     @property
     def vgSpaceUsed(self):
-- 
1.8.5.3



More information about the anaconda-patches mailing list