Add clear disk from lvm method.

master3.3
Mike Hiretsky 12 years ago
parent 75e17eec6f
commit 31e4f5553e

@ -164,7 +164,7 @@ class AutoPartition:
def _createPhisicalVolumes(self,devices):
pvCreateProg = getProgPath('/sbin/pvcreate')
return process(pvCreateProg,*devices).success()
return process(pvCreateProg,"-ff",*devices).success()
def _createVolumesGroup(self,vgname,disks):
vgCreateProg = getProgPath('/sbin/vgcreate')
@ -186,6 +186,28 @@ class AutoPartition:
return process(vgRemoveProg,vgname,"-f").success() or \
process(vgRemoveProg,vgname,"-f").success()
def clearLvm(self,devices,dv):
"""
Remove lvm physical volumes from devices
"""
vgRemoveProg = getProgPath('/sbin/vgremove')
pvRemoveProg = getProgPath('/sbin/pvremove')
lvRemoveProg = getProgPath('/sbin/lvremove')
disks = dv.Select('os_disk_dev',where='os_disk_parent',_in=devices)
for group, pair in groupby(dv.Select(['os_lvm_vgname','os_lvm_lvname'],
where='os_lvm_pvname',_in=disks),
key=operator.itemgetter(0)):
for vgname,lvname in pair:
process(lvRemoveProg,"%s/%s"%(vgname,lvname),"-f").success()
process(vgRemoveProg,group,"-f").success()
for pvname in list(set(disks)&set(dv.Get('os_lvm_pvname'))):
process(pvRemoveProg,pvname,"-ffy")
def clearRaid(self,devices):
"""
Remove raid physical volumes from devices
"""
def recreateLvm(self,table,devices,data,vgname):
"""
Create GPT partition table by /sbin/gdisk

@ -31,10 +31,21 @@ from calculate.install.fs_manager import FileSystemManager
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_install3',sys.modules[__name__])
class LvmHelper:
def getLvmData(self):
"""Get route table, exclude specifed iface"""
pvDisplayProg = checkUtils('/sbin/pvdisplay')
pvDisplay = process(pvDisplayProg,"--noh","-Co",
"lv_name,vg_name,pv_name")
for line in pvDisplay:
line = line.split()
if len(line) == 3:
yield line
#######################################################
# Devices variables
#######################################################
class VariableOsLvmData(ReadonlyTableVariable):
class VariableOsLvmData(ReadonlyTableVariable,LvmHelper):
"""
Information about disk devices
"""
@ -43,16 +54,6 @@ class VariableOsLvmData(ReadonlyTableVariable):
'os_lvm_vgname',
'os_lvm_pvname']
def getLvmData(self):
"""Get route table, exclude specifed iface"""
pvDisplayProg = checkUtils('/sbin/pvdisplay')
pvDisplay = process(pvDisplayProg,"--noh","-Co",
"lv_name,vg_name,pv_name")
for line in pvDisplay:
line = line.split()
if len(line) == 3:
yield line
def get(self,hr=False):
"""LVM hash"""
return list(self.getLvmData()) or [[]]

Loading…
Cancel
Save