summaryrefslogtreecommitdiffstats
path: root/autopart.py
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2001-06-20 23:01:55 +0000
committerJeremy Katz <katzj@redhat.com>2001-06-20 23:01:55 +0000
commitb26dac1f878c9472ce9bc943a698f0ff3b8d9b47 (patch)
tree2d09d945a4fa7c09373e7eb400456e0837d04df8 /autopart.py
parent2f404c65334cf32f276dac546aa6c008f0720176 (diff)
downloadanaconda-b26dac1f878c9472ce9bc943a698f0ff3b8d9b47.tar.gz
anaconda-b26dac1f878c9472ce9bc943a698f0ff3b8d9b47.tar.xz
anaconda-b26dac1f878c9472ce9bc943a698f0ff3b8d9b47.zip
partition by cylinder in tui specifying either end cylinder or size
Diffstat (limited to 'autopart.py')
-rw-r--r--autopart.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/autopart.py b/autopart.py
index 4461a3766..670991671 100644
--- a/autopart.py
+++ b/autopart.py
@@ -55,14 +55,23 @@ def fitConstrained(diskset, requests, primOnly=0):
continue
if primOnly and not request.primary:
continue
- if request.drive and (request.start != None) and request.end:
+ if request.drive and (request.start != None):
+ if not request.end and not request.size:
+ raise PartitioningError, "Tried to create constrained partition without size or end"
+
fsType = request.fstype.getPartedFileSystemType()
disk = diskset.disks[request.drive]
if not disk: # this shouldn't happen
raise PartitioningError, "Selected to put partition on non-existent disk!"
startSec = start_cyl_to_sector(disk.dev, request.start)
- endSec = end_cyl_to_sector(disk.dev, request.end)
+
+ if request.end:
+ endCyl = request.end
+ elif request.size:
+ endCyl = end_sector_to_cyl(disk.dev, ((1024 * 1024 * request.size) / disk.dev.sector_size) + startSec)
+
+ endSec = end_cyl_to_sector(disk.dev, endCyl)
# XXX need to check overlaps properly here
if startSec < 0:
@@ -100,7 +109,7 @@ def fitConstrained(diskset, requests, primOnly=0):
"a flag that is not available.")
newp.set_flag(flag, 1)
request.device = PartedPartitionDevice(newp).getDevice()
- request.currentDrive = drive
+ request.currentDrive = request.drive
return PARTITION_SUCCESS