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. --- autopart.py | 26 ++++++++++++++++++++++---- lvm.py | 57 +++++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 59 insertions(+), 24 deletions(-) diff --git a/autopart.py b/autopart.py index ff62f37..64237dd 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,6 +1649,7 @@ def autoCreateLVMPartitionRequests(autoreq): requests.append(nr) volnum = 0 + for (mntpt, fstype, minsize, maxsize, grow, format, asvol) in autoreq: if fstype: ptype = fsset.fileSystemTypeGet(fstype) @@ -1663,17 +1664,34 @@ 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"): + 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 diff --git a/lvm.py b/lvm.py index 00f7c02..0e07a1f 100644 --- a/lvm.py +++ b/lvm.py @@ -528,45 +528,62 @@ def getMaxLVSize(pe): else: return (16*1024*1024) #Max is 16TiB -def createSuggestedVGName(partitions): +def createSuggestedVGName(partitions, network): """Given list of partition requests, come up with a reasonable VG name partitions - list of requests """ - i = 0 - while 1: - tmpname = "VolGroup%02d" % (i,) - if not partitions.isVolumeGroupNameInUse(tmpname): - break - i = i + 1 - if i>99: - tmpname = "" + # try to create a volume group name incorporating the hostname + hn = network.hostname + if hn is not None and hn != '': + if hn == 'localhost' or hn == 'localhost.localdomain': + vgtemplate = "VolGroup" + elif hn.find('.') != -1: + vgtemplate = "vg_%s" % (hn.split('.')[0].lower(),) + else: + vgtemplate = "vg_%s" % (hn.lower(),) + else: + vgtemplate = "VolGroup" + + if not partitions.isVolumeGroupNameInUse(vgtemplate): + return vgtemplate + else: + i = 0 + while 1: + tmpname = "%s%02d" % (vgtemplate, i,) + if not partitions.isVolumeGroupNameInUse(tmpname): + break + + i += 1 + if i > 99: + tmpname = "" + + return tmpname - return tmpname - def createSuggestedLVName(logreqs): """Given list of LV requests, come up with a reasonable LV name partitions - list of LV requests for this VG """ + i = 0 lnames = [] for lv in logreqs: - lnames.append(lv.logicalVolumeName) - + lnames.append(lv.logicalVolumeName) + while 1: - tmpname = "LogVol%02d" % (i,) - if (logreqs is None) or (tmpname not in lnames): - break + tmpname = "LogVol%02d" % (i,) + if (logreqs is None) or (tmpname not in lnames): + break - i = i + 1 - if i>99: - tmpname = "" + i += 1 + if i > 99: + tmpname = "" return tmpname - + def getVGUsedSpace(vgreq, requests, diskset): vgused = 0 for request in requests.requests: -- 1.6.0.3 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list