[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[PATCH] Better naming for LVM volume groups and logical volumes (#461682)
- From: David Cantrell <dcantrell redhat com>
- To: anaconda-devel-list redhat com
- Cc:
- Subject: [PATCH] Better naming for LVM volume groups and logical volumes (#461682)
- Date: Tue, 2 Dec 2008 12:42:53 -1000
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
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]