Skip to content
This repository has been archived by the owner on Nov 18, 2017. It is now read-only.

Commit

Permalink
Rename test.py -> example.py
Browse files Browse the repository at this point in the history
synced from lvm2.

Signed-off-by: Andy Grover <agrover@redhat.com>
  • Loading branch information
Andy Grover committed Oct 15, 2012
1 parent fcb712b commit cc8aa53
Show file tree
Hide file tree
Showing 2 changed files with 120 additions and 104 deletions.
120 changes: 120 additions & 0 deletions example.py
@@ -0,0 +1,120 @@
#
# Copyright (C) 2012 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 2.1 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#-----------------------------
# Python example code:
#-----------------------------

import lvm

# Note: This example will create a logical unit, tag it and
# delete it, don't run this on production box!

#Dump information about PV
def print_pv(pv):
print 'PV name: ', pv.getName(), ' ID: ', pv.getUuid(), 'Size: ', pv.getSize()


#Dump some information about a specific volume group
def print_vg(vg_name):
#Open read only
vg = lvm.vgOpen(vg_name, 'r')

print 'Volume group:', vg_name, 'Size: ', vg.getSize()

#Retrieve a list of Physical volumes for this volume group
pv_list = vg.listPVs()

#Print out the physical volumes
for p in pv_list:
print_pv(p)

#Get a list of logical volumes in this volume group
lv_list = vg.listLVs()
if len(lv_list):
for l in lv_list:
print 'LV name: ', l.getName(), ' ID: ', l.getUuid()
else:
print 'No logical volumes present!'

vg.close()

#Returns the name of a vg with space available
def find_vg_with_free_space():
free_space = 0
rc = None

vg_names = lvm.listVgNames()
for v in vg_names:
vg = lvm.vgOpen(v, 'r')
c_free = vg.getFreeSize()
if c_free > free_space:
free_space = c_free
rc = v
vg.close()

return rc

#Walk through the volume groups and fine one with space in which we can
#create a new logical volume
def create_delete_logical_volume():
vg_name = find_vg_with_free_space()

print 'Using volume group ', vg_name, ' for example'

if vg_name:
vg = lvm.vgOpen(vg_name, 'w')
lv = vg.createLvLinear('python_lvm_ok_to_delete', vg.getFreeSize())

if lv:
print 'New lv, id= ', lv.getUuid()

#Create a tag
lv.addTag('Demo_tag')

#Get the tags
tags = lv.getTags()
for t in tags:
#Remove tag
lv.removeTag(t)

lv.deactivate()

#Try to rename
lv.rename("python_lvm_renamed")
print 'LV name= ', lv.getName()
lv.remove()

vg.close()
else:
print 'No free space available to create demo lv!'

if __name__ == '__main__':
#What version
print 'lvm version=', lvm.getVersion()

#Get a list of volume group names
vg_names = lvm.listVgNames()

#For each volume group display some information about each of them
for vg_i in vg_names:
print_vg(vg_i)

#Demo creating a logical volume
create_delete_logical_volume()

104 changes: 0 additions & 104 deletions test.py

This file was deleted.

0 comments on commit cc8aa53

Please sign in to comment.