mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 00:55:19 +00:00
Merge pull request #3018 from techhat/develop
Add basic Linux LVM support
This commit is contained in:
commit
e06ad3d3ba
141
salt/modules/linux_lvm.py
Normal file
141
salt/modules/linux_lvm.py
Normal file
@ -0,0 +1,141 @@
|
||||
'''
|
||||
Support for Linux LVM2
|
||||
'''
|
||||
|
||||
# Import salt libs
|
||||
import salt.utils
|
||||
|
||||
|
||||
def __virtual__():
|
||||
'''
|
||||
Only load the module if lvm is installed
|
||||
'''
|
||||
if salt.utils.which('lvm'):
|
||||
return 'lvm'
|
||||
return False
|
||||
|
||||
|
||||
def version():
|
||||
'''
|
||||
Return LVM version from lvm version
|
||||
|
||||
CLI Example::
|
||||
|
||||
salt '*' lvm.version
|
||||
'''
|
||||
cmd = 'lvm version'
|
||||
out = __salt__['cmd.run'](cmd).splitlines()
|
||||
ret = out[0].split(': ')
|
||||
return ret[1].strip()
|
||||
|
||||
|
||||
def fullversion():
|
||||
'''
|
||||
Return all version info from lvm version
|
||||
|
||||
CLI Example::
|
||||
|
||||
salt '*' lvm.fullversion
|
||||
'''
|
||||
ret = {}
|
||||
cmd = 'lvm version'
|
||||
out = __salt__['cmd.run'](cmd).splitlines()
|
||||
for line in out:
|
||||
comps = line.split(':')
|
||||
ret[comps[0].strip()] = comps[1].strip()
|
||||
return ret
|
||||
|
||||
|
||||
def pvdisplay(pvname=''):
|
||||
'''
|
||||
Return information about the physical volume(s)
|
||||
CLI Examples::
|
||||
|
||||
salt '*' lvm.pvdisplay
|
||||
salt '*' lvm.pvdisplay /dev/md0
|
||||
'''
|
||||
ret = {}
|
||||
cmd = 'pvdisplay -c {0}'.format(pvname)
|
||||
out = __salt__['cmd.run'](cmd).splitlines()
|
||||
for line in out:
|
||||
comps = line.strip().split(':')
|
||||
ret[comps[0]] = {
|
||||
'Physical Volume Device': comps[0],
|
||||
'Volume Group Name': comps[1],
|
||||
'Physical Volume Size (kB)': comps[2],
|
||||
'Internal Physical Volume Number': comps[3],
|
||||
'Physical Volume Status': comps[4],
|
||||
'Physical Volume (not) Allocatable': comps[5],
|
||||
'Current Logical Volumes Here': comps[6],
|
||||
'Physical Extent Size (kB)': comps[7],
|
||||
'Total Physical Extents': comps[8],
|
||||
'Free Physical Extents': comps[9],
|
||||
'Allocated Physical Extents': comps[10],
|
||||
}
|
||||
return ret
|
||||
|
||||
|
||||
def vgdisplay(vgname=''):
|
||||
'''
|
||||
Return information about the volume group(s)
|
||||
CLI Examples::
|
||||
|
||||
salt '*' lvm.vgdisplay
|
||||
salt '*' lvm.vgdisplay nova-volumes
|
||||
'''
|
||||
ret = {}
|
||||
cmd = 'vgdisplay -c {0}'.format(vgname)
|
||||
out = __salt__['cmd.run'](cmd).splitlines()
|
||||
for line in out:
|
||||
comps = line.strip().split(':')
|
||||
ret[comps[0]] = {
|
||||
'Volume Group Name': comps[0],
|
||||
'Volume Group Access': comps[1],
|
||||
'Volume Group Status': comps[2],
|
||||
'Internal Volume Group Number': comps[3],
|
||||
'Maximum Logical Volumes': comps[4],
|
||||
'Current Logical Volumes': comps[5],
|
||||
'Open Logical Volumes': comps[6],
|
||||
'Maximum Logical Volume Size': comps[7],
|
||||
'Maximum Phisical Volumes': comps[8],
|
||||
'Current Physical Volumes': comps[9],
|
||||
'Actual Physical Volumes': comps[10],
|
||||
'Volume Group Size (kB)': comps[11],
|
||||
'Physical Extent Size (kB)': comps[12],
|
||||
'Total Physical Extents': comps[13],
|
||||
'Allocated Physical Extents': comps[14],
|
||||
'Free Physical Extents': comps[15],
|
||||
'UUID': comps[16],
|
||||
}
|
||||
return ret
|
||||
|
||||
|
||||
def lvdisplay(lvname=''):
|
||||
'''
|
||||
Return information about the logical volume(s)
|
||||
CLI Examples::
|
||||
|
||||
salt '*' lvm.lvdisplay
|
||||
salt '*' lvm.lvdisplay /dev/vg_myserver/root
|
||||
'''
|
||||
ret = {}
|
||||
cmd = 'lvdisplay -c {0}'.format(lvname)
|
||||
out = __salt__['cmd.run'](cmd).splitlines()
|
||||
for line in out:
|
||||
comps = line.strip().split(':')
|
||||
ret[comps[0]] = {
|
||||
'Logical Volume Name': comps[0],
|
||||
'Volume Group Name': comps[1],
|
||||
'Logical Volume Access': comps[2],
|
||||
'Logical Volume Status': comps[3],
|
||||
'Internal Logical Volume Number': comps[4],
|
||||
'Open Logical Volumes': comps[5],
|
||||
'Logical Volume Size': comps[6],
|
||||
'Current Logical Extents Associated': comps[7],
|
||||
'Allocated Logical Extents': comps[8],
|
||||
'Allocation Policy': comps[9],
|
||||
'Read Ahead Sectors': comps[10],
|
||||
'Major Device Number': comps[11],
|
||||
'Minor Device Number': comps[12],
|
||||
}
|
||||
return ret
|
Loading…
Reference in New Issue
Block a user