David Lehman wrote:
On Sun, 2009-03-01 at 20:32 -1000, David Cantrell wrote:
These properties take in to account the minimum and maximum sizes
imposed by the device and partition type currently in use as well
as the minimum and maximum sizes imposed by the DeviceFormat type
on the device.
Aside from the note below this looks good.
---
storage/devices.py | 41 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/storage/devices.py b/storage/devices.py
index 3cc2599..2301e8b 100644
--- a/storage/devices.py
+++ b/storage/devices.py
@@ -477,6 +477,25 @@ class StorageDevice(Device):
return size
@property
+ def minSize(self):
+ """ The minimum size this device can be. """
+ if self.format:
+ return self.format.minSize
+ else:
+ return self.size
After the constructor has finished, all StorageDevice instances will
have a format. It may be the base format ("Unknown"), whose type attr is
None, but there will be a format there. It allows us to skip
conditionals like this and simplify the code.
Ah, cool. Didn't see that. I've updated the patch and attached it to
this email. minSize is now just on StorageDevice. maxSize is on
StorageDevice but then overridden on PartitionDevice.
+
+ @property
+ def maxSize(self):
+ """ The maximum size this device can be. """
+ if self.format:
+ if self.format.maxSize > self.currentSize:
+ return self.currentSize
+ else:
+ return self.format.maxSize
+ else:
+ return self.currentSize
+
+ @property
def status(self):
""" This device's status.
@@ -1033,6 +1052,28 @@ class PartitionDevice(StorageDevice):
disk = property(lambda p: p._getDisk(), lambda p,d: p._setDisk(d))
+ @property
+ def minSize(self):
+ """ The minimum size this partition can be. """
+ if self.format:
+ return self.format.minSize
+ else:
+ return self.size
+
+ @property
+ def maxSize(self):
+ """ The maximum size this partition can be. """
+ # XXX: this is MB by default
+ max = self.partedPartition.getMaxAvailableSize()
+
+ if self.format:
+ if self.format.maxSize > max:
+ return max
+ else:
+ return self.format.maxSize
+ else:
+ return self.max
+
class DMDevice(StorageDevice):
""" A device-mapper device """
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
--
David Cantrell <dcantrell@xxxxxxxxxx>
Red Hat / Honolulu, HI
>From cba30d1a45e23c1dd1063b9dbe79543b5728f27a Mon Sep 17 00:00:00 2001
From: David Cantrell <dcantrell@xxxxxxxxxx>
Date: Mon, 2 Mar 2009 10:32:12 -1000
Subject: [PATCH 11/11] Add minSize and maxSize properties to StorageDevice and PartitionDevice.
These properties take in to account the minimum and maximum sizes
imposed by the device and partition type currently in use as well
as the minimum and maximum sizes imposed by the DeviceFormat type
on the device.
---
storage/devices.py | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/storage/devices.py b/storage/devices.py
index 4703fa5..d55f120 100644
--- a/storage/devices.py
+++ b/storage/devices.py
@@ -477,6 +477,22 @@ class StorageDevice(Device):
return size
@property
+ def minSize(self):
+ """ The minimum size this device can be. """
+ if self.format.minSize < self.size:
+ return self.format.minSize
+ else:
+ return size
+
+ @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
+
+ @property
def status(self):
""" This device's status.
@@ -1029,6 +1045,17 @@ class PartitionDevice(StorageDevice):
disk = property(lambda p: p._getDisk(), lambda p,d: p._setDisk(d))
+ @property
+ def maxSize(self):
+ """ The maximum size this partition can be. """
+ # XXX: this is MB by default
+ max = self.partedPartition.getMaxAvailableSize()
+
+ if self.format.maxSize > max:
+ return max
+ else:
+ return self.format.maxSize
+
class DMDevice(StorageDevice):
""" A device-mapper device """
--
1.6.1.3
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list