diff options
author | David Cantrell <dcantrell@redhat.com> | 2008-12-03 10:15:07 -1000 |
---|---|---|
committer | David Cantrell <dcantrell@redhat.com> | 2008-12-03 10:15:07 -1000 |
commit | 0b41f2deb4e22172c6219338d5c33aed033c3133 (patch) | |
tree | 49510f948418cfa8f42ebb79f21dd044228109a0 /autopart.py | |
parent | e1048bb9968246021fbca15f2345e17365a4c775 (diff) | |
download | anaconda-0b41f2deb4e22172c6219338d5c33aed033c3133.tar.gz anaconda-0b41f2deb4e22172c6219338d5c33aed033c3133.tar.xz anaconda-0b41f2deb4e22172c6219338d5c33aed033c3133.zip |
Better naming for LVM volume groups and logical volumes (#461682)
Try to name volume groups as vg_HOSTNAME and logical volumes as
lv_MOUNTPOINT, if we can. Swap partitions will be lv_swapNN where
NN is a unique number in the instance where more than one swap
partition in use. The / partition will get the name lv_root.
Fall back on the old naming system (VolGroupNN for volume groups
and LogVolNN for logical volumes) for people doing custom setup
or where the hostname is localhost.
For swap partition naming, tack on an NN designation when there
are more than 1 swap partitions requested. If only one is
requested, it will be "lv_swap".
Diffstat (limited to 'autopart.py')
-rw-r--r-- | autopart.py | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/autopart.py b/autopart.py index ff62f372e..716fb1250 100644 --- a/autopart.py +++ b/autopart.py @@ -1463,7 +1463,7 @@ def doAutoPartition(anaconda): # FIXME: this is a hack so that autopartition'd vgs # can have a unique name if req.autoname == 1 and req.volumeGroupName == "lvm": - n = lvm.createSuggestedVGName(partitions) + n = lvm.createSuggestedVGName(partitions, anaconda.id.network) req.volumeGroupName = n if (isinstance(req, partRequests.LogicalVolumeRequestSpec)): @@ -1649,11 +1649,15 @@ def autoCreateLVMPartitionRequests(autoreq): requests.append(nr) volnum = 0 + swapvol = 0 + totalswaps = 0 + for (mntpt, fstype, minsize, maxsize, grow, format, asvol) in autoreq: - if fstype: - ptype = fsset.fileSystemTypeGet(fstype) - else: - ptype = fsset.fileSystemTypeGetDefault() + if fsset.fileSystemTypeGet(fstype) == fsset.fileSystemTypeGet("swap"): + totalswaps += 1 + + for (mntpt, fstype, minsize, maxsize, grow, format, asvol) in autoreq: + ptype = fsset.fileSystemTypeGet(fstype) if not asvol: newrequest = partRequests.PartitionSpec(ptype, @@ -1663,17 +1667,38 @@ def autoCreateLVMPartitionRequests(autoreq): grow = grow, format = format) else: + # try to incorporate the mount point in to the logical volume name + if mntpt is not None and mntpt != '': + if mntpt == '/': + lvtemplate = 'lv_root' + else: + tmp = string.strip(mntpt) + tmp = tmp.replace('/', '_') + + while tmp.startswith('_'): + tmp = tmp[1:] + + lvtemplate = "lv_%s" % (tmp,) + else: + if ptype == fsset.fileSystemTypeGet("swap"): + if totalswaps > 1: + lvtemplate = "lv_swap%02d" % (swapvol,) + swapvol += 1 + else: + lvtemplate = "lv_swap" + else: + lvtemplate = "LogVol%02d" % (volnum,) + volnum += 1 + newrequest = partRequests.LogicalVolumeRequestSpec(ptype, mountpoint = mntpt, size = minsize, maxSizeMB = maxsize, grow = grow, format = format, - lvname = "LogVol%02d" %(volnum,), + lvname = "%s" % (lvtemplate,), volgroup = "lvm") - volnum += 1 - requests.append(newrequest) return requests |