diff options
author | Jeremy Katz <katzj@redhat.com> | 2002-04-19 06:28:35 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2002-04-19 06:28:35 +0000 |
commit | 8e7a9bc91b98a02e41dd6d53e8a2027c482346a8 (patch) | |
tree | 1c94bb1caace167e96375666ad0cc9467e83d471 /autopart.py | |
parent | 34e94e67312be97452e79939ae7104afae3c041b (diff) | |
download | anaconda-8e7a9bc91b98a02e41dd6d53e8a2027c482346a8.tar.gz anaconda-8e7a9bc91b98a02e41dd6d53e8a2027c482346a8.tar.xz anaconda-8e7a9bc91b98a02e41dd6d53e8a2027c482346a8.zip |
more merging fun from the hampton branch. I'm pretty sure this doesn't
work now, at least in gui. text mode might, though
Diffstat (limited to 'autopart.py')
-rw-r--r-- | autopart.py | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/autopart.py b/autopart.py index 10f6e72d3..d058374e4 100644 --- a/autopart.py +++ b/autopart.py @@ -24,6 +24,7 @@ import partRequests from constants import * from translate import _, N_ from partErrors import * +from log import log PARTITION_FAIL = -1 PARTITION_SUCCESS = 0 @@ -262,7 +263,7 @@ def fitSized(diskset, requests, primOnly = 0, newParts = None): largestPart = (0, None) drives = getDriveList(request, diskset) -# print "Trying drives to find best free space out of", free +# log("Trying drives to find best free space out of", free) for drive in drives: # this request is bootable and we've found a large enough # partition already, so we don't need to keep trying other @@ -271,11 +272,24 @@ def fitSized(diskset, requests, primOnly = 0, newParts = None): break # print "Trying drive", drive disk = diskset.disks[drive] + numPrimary = len(partedUtils.get_primary_partitions(disk)) + + # if there is an extended partition add it in + if disk.extended_partition: + numPrimary = numPrimary + 1 + + maxPrimary = disk.max_primary_partition_count for part in free[drive]: -# print "Trying partition", printFreespaceitem(part) + # if this is a free space outside extended partition + # make sure we have free primary partition slots + if not part.type & parted.PARTITION_LOGICAL: + if numPrimary == maxPrimary: + continue + +# log( "Trying partition %s" % (printFreespaceitem(part),)) partSize = partedUtils.getPartSizeMB(part) -# print "partSize %s request %s" % (partSize, request.requestSize) +# log("partSize %s request %s" % (partSize, request.requestSize)) if partSize >= request.requestSize and partSize > largestPart[0]: if not request.primary or (not part.type & parted.PARTITION_LOGICAL): largestPart = (partSize, part) @@ -286,7 +300,7 @@ def fitSized(diskset, requests, primOnly = 0, newParts = None): return PARTITION_FAIL # raise PartitioningError, "Can't fulfill request for partition: \n%s" %(request) -# print "largestPart is",largestPart +# log( "largestPart is %s" % (largestPart,)) freespace = largestPart[1] freeStartSec = freespace.geom.start freeEndSec = freespace.geom.end @@ -348,7 +362,7 @@ def fitSized(diskset, requests, primOnly = 0, newParts = None): raise PartitioningError, "Impossible partition to create" fsType = request.fstype.getPartedFileSystemType() -# print "creating newp with start=%s, end=%s, len=%s" % (startSec, endSec, endSec - startSec) +# log("creating newp with start=%s, end=%s, len=%s" % (startSec, endSec, endSec - startSec)) newp = disk.partition_new (partType, fsType, startSec, endSec) constraint = disk.constraint_any () @@ -754,7 +768,6 @@ def doPartitioning(diskset, requests, doRefresh = 1): if ret == PARTITION_FAIL: raise PartitioningError, "Partitioning failed: %s" %(msg) - ret = growParts(diskset, requests, newParts) newParts.reset() @@ -894,7 +907,6 @@ def doAutoPartition(dir, diskset, partitions, intf, instClass, dispatch): # XXX only do this if we're dirty ## id.diskset.refreshDevices() ## id.partrequests = PartitionRequests(id.diskset) - doClearPartAction(partitions, diskset) # XXX clearpartdrives is overloaded as drives we want to use for linux |