#! /bin/sh # PCP QA Test No. 647 # Install/Remove for Memory Mapped Value PMDA # # Copyright (c) 2009 Aconex. All Rights Reserved. # seq=`basename $0` echo "QA output created by $seq" # get standard filters . ./common.product . ./common.filter . ./common.check rm -f $seq.out if [ $PCP_VER -lt 3600 ] then ln $seq.out.1 $seq.out || exit 1 else ln $seq.out.2 $seq.out || exit 1 fi status=1 username=`id -u -n` done_clean=false MMV_STATS_DIR="$PCP_TMP_DIR/mmv" # for QA the default install for mmv PMDA is as a dso, not a daemon # cat <$tmp.input b dso End-of-File _cleanup() { if $done_clean then : else [ -f $tmp.pmcd.conf ] && $sudo mv $tmp.pmcd.conf $PCP_PMCDCONF_PATH if [ -d $tmp.mmv.dir ] then $sudo rm -fr "$MMV_STATS_DIR" $sudo mv $tmp.mmv.dir $MMV_STATS_DIR fi $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start _wait_for_pmcd _wait_for_pmlogger if $install_on_cleanup then ( cd $PCP_PMDAS_DIR/mmv; $sudo ./Install <$tmp.input >/dev/null 2>&1 ) else ( cd $PCP_PMDAS_DIR/mmv; $sudo ./Remove /dev/null 2>&1 ) fi rm -f $tmp.* done_clean=true fi exit $status } install_on_cleanup=false pminfo mmv >/dev/null 2>&1 && install_on_cleanup=true trap "_cleanup" 0 1 2 3 15 _filter_mmv_values() { sed -e \ 's/"eggs"\] value .*/"eggs"] value USEC/g' } # real QA test starts here home="$PCP_PMDAS_DIR" iam=mmv if [ ! -d "$home/$iam" ] then echo "Where is $home/$iam?" exit 1 fi cd "$home/$iam" unset ROOT MAKEFLAGS # copy the pmcd config file to restore state later. cp $PCP_PMCDCONF_PATH "$tmp.pmcd.conf" # move the MMV directory to restore contents later. [ -d $MMV_STATS_DIR ] && $sudo mv -f $MMV_STATS_DIR $tmp.mmv.dir # start from a known starting point $sudo ./Remove >/dev/null 2>&1 # create a directory we can write and pcp group can read $sudo mkdir -m 755 "$MMV_STATS_DIR" $sudo chown $username "$MMV_STATS_DIR" $sudo chgrp pcp "$MMV_STATS_DIR" echo echo "=== $iam agent installation ===" $sudo ./Install $tmp.out 2>&1 _filter_pmda_install <$tmp.out $here/src/mmv_genstats echo echo "=== validate values ===" if pminfo $iam | LC_COLLATE=POSIX sort >$tmp.names then for name in `cat $tmp.names` do pminfo -fdmtT $name | _filter_mmv_values done else echo "... failed! ... here is the Install log ..." cat $tmp.out fi $here/src/mmv_noinit echo echo "=== validate metrics ===" if pminfo $iam | LC_COLLATE=POSIX sort >$tmp.names then for name in `cat $tmp.names` do pminfo -fdmtT $name done else echo "... failed! ... here is the Install log ..." cat $tmp.out fi echo echo "=== remove $iam agent ===" $sudo ./Remove >$tmp.out 2>&1 _filter_pmda_remove <$tmp.out echo echo "=== $iam agent re-installation ===" $sudo ./Install <$tmp.input >$tmp.out 2>&1 _filter_pmda_install <$tmp.out status=0 exit