mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
d1c5b3ae74
When running cluster test with clvmd, the actual 'monitoring' happens in cluster - so the 'already monitored' message is also logged within clvmd code and the command cannot see such effect. clvmd was incapable to report this information back to command so it cannot be displayed this way. Add 'lvs -o+seg_monitor' validation which also works in clustered mode.
66 lines
2.0 KiB
Bash
66 lines
2.0 KiB
Bash
#!/usr/bin/env 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
|
|
SKIP_WITH_LVMPOLLD=1
|
|
|
|
. lib/inittest
|
|
|
|
aux prepare_dmeventd
|
|
|
|
aux prepare_vg 5
|
|
|
|
lvcreate -aey --type mirror -m 3 --nosync --ignoremonitoring -l1 -n 4way $vg
|
|
lvchange --monitor y $vg/4way
|
|
lvcreate -aey --type mirror -m 2 --nosync --ignoremonitoring -l1 -n 3way $vg
|
|
lvchange --monitor y $vg/3way
|
|
|
|
lvcreate -aey -l1 -n $lv1 $vg
|
|
lvcreate -s -l1 -n $lv2 $vg/$lv1
|
|
|
|
dmeventd -R -f &
|
|
echo $! >LOCAL_DMEVENTD
|
|
sleep 2 # wait a bit, so we talk to the new dmeventd later
|
|
|
|
check lv_field $vg/3way seg_monitor "monitored"
|
|
check lv_field $vg/4way seg_monitor "monitored"
|
|
lvchange --monitor y --verbose $vg/3way 2>&1 | tee lvchange.out
|
|
# only non-cluster tests can check command result
|
|
test -e LOCAL_CLVMD || grep 'already monitored' lvchange.out
|
|
lvchange --monitor y --verbose $vg/4way 2>&1 | tee lvchange.out
|
|
test -e LOCAL_CLVMD || grep 'already monitored' lvchange.out
|
|
|
|
# now try what happens if no dmeventd is running
|
|
kill -9 "$(< LOCAL_DMEVENTD)"
|
|
rm LOCAL_DMEVENTD
|
|
|
|
dmeventd -R -f &
|
|
echo $! >LOCAL_DMEVENTD
|
|
|
|
# wait longer as tries to communicate with killed daemon
|
|
sleep 9
|
|
# now dmeventd should not be running
|
|
not pgrep dmeventd
|
|
rm LOCAL_DMEVENTD
|
|
|
|
check lv_field $vg/3way seg_monitor "not monitored"
|
|
check lv_field $vg/4way seg_monitor "not monitored"
|
|
|
|
lvchange --monitor y --verbose $vg/3way 2>&1 | tee lvchange.out
|
|
pgrep -o dmeventd >LOCAL_DMEVENTD
|
|
test -e LOCAL_CLVMD || not grep 'already monitored' lvchange.out
|
|
|
|
lvchange --monitor y --verbose $vg/$lv2 2>&1 | tee lvchange.out
|
|
test -e LOCAL_CLVMD || not grep 'already monitored' lvchange.out
|
|
|
|
vgremove -ff $vg
|