diff options
Diffstat (limited to 'test/shell/dmeventd-restart.sh')
-rw-r--r-- | test/shell/dmeventd-restart.sh | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/test/shell/dmeventd-restart.sh b/test/shell/dmeventd-restart.sh index fa9db46..0def8c1 100644 --- a/test/shell/dmeventd-restart.sh +++ b/test/shell/dmeventd-restart.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/usr/bin/env bash + # Copyright (C) 2008 Red Hat, Inc. All rights reserved. # # This copyrighted material is made available to anyone wishing to use, @@ -7,45 +8,59 @@ # # 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 +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + -. lib/test +SKIP_WITH_LVMPOLLD=1 + +. lib/inittest aux prepare_dmeventd aux prepare_vg 5 -lvcreate -m 3 --ig -L 1 -n 4way $vg +lvcreate -aey --type mirror -m 3 --nosync --ignoremonitoring -l1 -n 4way $vg lvchange --monitor y $vg/4way -lvcreate -m 2 --ig -L 1 -n 3way $vg +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 -grep 'already monitored' 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 -grep 'already monitored' lvchange.out +test -e LOCAL_CLVMD || grep 'already monitored' lvchange.out # now try what happens if no dmeventd is running -kill -9 $(cat LOCAL_DMEVENTD) -rm LOCAL_DMEVENTD +kill -9 "$(< LOCAL_DMEVENTD)" +rm LOCAL_DMEVENTD debug.log* dmeventd -R -f & echo $! >LOCAL_DMEVENTD # wait longer as tries to communicate with killed daemon -sleep 7 +sleep 9 # now dmeventd should not be running not pgrep dmeventd rm LOCAL_DMEVENTD -# set dmeventd path -aux lvmconf "dmeventd/executable=\"$abs_top_builddir/test/lib/dmeventd\"" +# First lvs restarts 'dmeventd' (initiate a socket connection to a daemon) +check lv_field $vg/3way seg_monitor "not monitored" +pgrep -o dmeventd >LOCAL_DMEVENTD +check lv_field $vg/4way seg_monitor "not monitored" + lvchange --monitor y --verbose $vg/3way 2>&1 | tee lvchange.out -pgrep dmeventd >LOCAL_DMEVENTD -not grep 'already monitored' lvchange.out +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 |