summaryrefslogtreecommitdiffstats
path: root/autopart.py
diff options
context:
space:
mode:
authorDavid Cantrell <dcantrell@redhat.com>2008-12-03 10:15:07 -1000
committerDavid Cantrell <dcantrell@redhat.com>2008-12-03 10:15:07 -1000
commit0b41f2deb4e22172c6219338d5c33aed033c3133 (patch)
tree49510f948418cfa8f42ebb79f21dd044228109a0 /autopart.py
parente1048bb9968246021fbca15f2345e17365a4c775 (diff)
downloadanaconda-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.py41
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