mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
d66abfb82a
If user requests report attribute from PVSEG type and PV is orphan (or all devices is set), the report is empty. Try for example (when only orphan PV are present) #pvs #pvs -o +devices # pvs /dev/sdb1 PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 -- 46.58G 46.58G # pvs -o +devices /dev/sdb1 (no output) The problem is caused by empty pv->segments list. Fix it by providing fake segment here (similar to fake structures in _pvsegs_sub_single() calls.
84 lines
2.3 KiB
Bash
84 lines
2.3 KiB
Bash
# Copyright (C) 2008 Red Hat, Inc. All rights reserved.
|
|
#
|
|
# This copyrighted material is made available to anyone wishing to use,
|
|
# modify, copy, or redistribute it subject to the terms and conditions
|
|
# of the GNU General Public License v.2.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
#
|
|
# tests functionality of lvs, pvs, vgs, *display tools
|
|
#
|
|
|
|
. ./test-utils.sh
|
|
|
|
get_lvs_()
|
|
{
|
|
case $(lvs --units s --nosuffix --noheadings -o $1_read_ahead "$vg"/"$lv") in
|
|
*$2) true ;;
|
|
*) false ;;
|
|
esac
|
|
}
|
|
|
|
aux prepare_devs 5
|
|
|
|
pvcreate $dev1
|
|
pvcreate --metadatacopies 0 $dev2
|
|
pvcreate --metadatacopies 0 $dev3
|
|
pvcreate $dev4
|
|
pvcreate --metadatacopies 0 $dev5
|
|
|
|
#COMM bz195276 -- pvs doesn't show PVs until a VG is created
|
|
pvs --noheadings|tee out
|
|
test $(wc -l <out) -eq 5
|
|
|
|
#COMM pvs with segment attributes works even for orphans
|
|
pvs --noheadings -o seg_all,pv_all,lv_all,vg_all | tee out
|
|
test $(wc -l <out) -eq 5
|
|
|
|
vgcreate -c n $vg $devs
|
|
|
|
#COMM pvs and vgs report mda_count, mda_free (bz202886, bz247444)
|
|
pvs -o +pv_mda_count,pv_mda_free $devs
|
|
for I in $dev2 $dev3 $dev5; do
|
|
aux check_pv_field_ $I pv_mda_count 0
|
|
aux check_pv_field_ $I pv_mda_free 0
|
|
done
|
|
vgs -o +vg_mda_count,vg_mda_free $vg
|
|
aux check_vg_field_ $vg vg_mda_count 2
|
|
|
|
#COMM pvs doesn't display --metadatacopies 0 PVs as orphans (bz409061)
|
|
pvdisplay $dev2|grep "VG Name.*$vg"
|
|
test $(pvs -o vg_name --noheadings $dev2) = $vg
|
|
|
|
#COMM lvs displays snapshots (bz171215)
|
|
lvcreate -l4 -n $lv1 $vg
|
|
lvcreate -l4 -s -n $lv2 $vg/$lv1
|
|
lvs $vg --noheadings|tee out
|
|
test $(wc -l <out) -eq 2
|
|
lvs -a --noheadings|tee out
|
|
# should lvs -a display cow && real devices? (it doesn't)
|
|
test $(wc -l <out) -eq 2
|
|
dmsetup ls|grep $PREFIX|grep -v "LVMTEST.*pv."
|
|
lvremove -f $vg/$lv2
|
|
|
|
#COMM lvs -a displays mirror legs and log
|
|
lvcreate -l4 -m2 -n$lv3 $vg
|
|
lvs $vg --noheadings|tee out
|
|
test $(wc -l <out) -eq 2
|
|
lvs -a --noheadings|tee out
|
|
test $(wc -l <out) -eq 6
|
|
dmsetup ls|grep $PREFIX|grep -v "LVMTEST.*pv."
|
|
|
|
#COMM vgs with options from pvs still treats arguments as VGs (bz193543)
|
|
vgs -o pv_name,vg_name $vg
|
|
# would complain if not
|
|
|
|
#COMM pvdisplay --maps feature (bz149814)
|
|
pvdisplay $devs >out
|
|
pvdisplay --maps $devs >out2
|
|
not diff out out2
|
|
|