/var/lib/pcp/testsuite/798 is in pcp-testsuite 4.0.1-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 | #! /bin/sh
# PCP QA Test No. 798
# Exercise dbpmda use with the Perl implementation of nfsclient
#
# Copyright (c) 2013 Red Hat.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard filters
. ./common.product
. ./common.filter
. ./common.check
[ -d $PCP_PMDAS_DIR/nfsclient ] || _notrun "nfsclient PMDA directory is not installed"
status=1
perl -e "use PCP::PMDA" >/dev/null 2>&1
[ $? -eq 0 ] || _notrun "perl PCP::PMDA module not installed"
rm -f $seq.out
if [ `perl -e 'use PCP::PMDA; printf "%d\n", pmda_ulong == PM_TYPE_U32'` = 1 ]
then
ln $seq.out.32 $seq.out
else
ln $seq.out.64 $seq.out
fi
_cleanup()
{
cd $here
$sudo rm -f $PCP_PMDAS_DIR/nfsclient/nfsclient.log
rm -f $tmp.*
}
trap "_cleanup; exit \$status" 0 1 2 3 15
rm -f $seq.full
_filter()
{
tee -a $here/$seq.full \
| $here/src/sortinst -v \
| sed \
-e "s;$PCP_PMDAS_DIR;\$PCP_PMDAS_DIR;" \
-e "s;$script;pmdanfsclient.pl;" \
-e '/pmResult/s/ .* numpmid/ ... numpmid/' \
-e '/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/s/[^ ]*/TIMESTAMP/' \
# end
}
_filter_pmda_log()
{
tee -a $here/$seq.full \
| sed \
-e 's/^\(Log for pmda[^ ]* on\) .*/\1 HOST .../' \
-e 's/^\(Log finished\) .*/\1 .../' \
-e '/^$/d' \
#end
}
_filter_indom()
{
# for indom 62.0 the order of the instances (and hence internal
# instance number depends on the version of perl and the phase
# of the moon ...
# pmInDom: 62.0
# [ 0] inst: 0 name: "/mnt/nfsv4"
# [ 1] inst: 1 name: "/mnt/nfs41"
# [ 2] inst: 2 name: "/ifs"
# [ 3] inst: 3 name: "/ifsfoo"
# dbpmda>
# and similarly for
# pmResult dump from 0x2529560 timestamp: 0.000000 10:00:00.000 numpmid: 1
# 62.0.2 (<noname>): numval: 4 valfmt: 1 vlist[]:
# inst [1 or ???] value "/mnt/nfsv4"
# inst [2 or ???] value "/mnt/nfs41"
# inst [3 or ???] value "/ifs"
# inst [4 or ???] value "/ifsfoo"
# dbpmda>
#
rm -f $tmp.1 $tmp.2 $tmp.3
sed -e 's/inst \[[0-4]/inst [N/' \
| $PCP_AWK_PROG '
BEGIN { part = 1 }
part == 2 && $1 == "dbpmda>" { part = 3 }
{ outname = "'$tmp'." part; print >outname }
part == 1 && $1 == "pmInDom:" && $2 == "62.0" { part = 2 }'
[ -f $tmp.1 ] && cat $tmp.1
[ -f $tmp.2 ] && LC_COLLATE=POSIX sort --key 6 $tmp.2 \
| $PCP_AWK_PROG '
NR == 1 { printf "[ X] inst: X name: %s\n",$6 }
NR > 1 { printf "[X+%d] inst: X+%d name: %s\n", NR-1, NR-1, $6 }'
[ -f $tmp.3 ] && cat $tmp.3
}
# real QA test starts here
domain=62
script=pmdanfsclient.pl
cd "$PCP_PMDAS_DIR/nfsclient"
# create a root namespace file for dbpmda to use
PCP_PERL_PMNS=root /usr/bin/env perl $script > $tmp.root
# create a set of commands for dbpmda
cat >$tmp.cmds <<End-of-File
open pipe /usr/bin/env perl $script
getdesc on
desc nfsclient.export
desc nfsclient.mountpoint
desc nfsclient.options.string
desc nfsclient.options.proto
desc nfsclient.options.vers
fetch nfsclient.export
fetch nfsclient.mountpoint
fetch nfsclient.options.string
fetch nfsclient.options.proto
fetch nfsclient.options.vers
fetch nfsclient.options.vers
instance $domain.0
End-of-File
# create a set of commands for dbpmda and nfsv4.2
cat >$tmp.42cmds <<EOF
open pipe /usr/bin/env perl $script
getdesc on
desc nfsclient.nfsv4
desc nfsclient.ops.seek.ops
desc nfsclient.ops.seek.ntrans
desc nfsclient.ops.seek.timeouts
desc nfsclient.ops.seek.bytes_sent
desc nfsclient.ops.seek.bytes_recv
desc nfsclient.ops.seek.queue
desc nfsclient.ops.seek.rtt
desc nfsclient.ops.seek.execute
desc nfsclient.ops.allocate.ops
desc nfsclient.ops.allocate.ntrans
desc nfsclient.ops.allocate.timeouts
desc nfsclient.ops.allocate.bytes_sent
desc nfsclient.ops.allocate.bytes_recv
desc nfsclient.ops.allocate.queue
desc nfsclient.ops.allocate.rtt
desc nfsclient.ops.allocate.execute
desc nfsclient.ops.deallocate.ops
desc nfsclient.ops.deallocate.ntrans
desc nfsclient.ops.deallocate.timeouts
desc nfsclient.ops.deallocate.bytes_sent
desc nfsclient.ops.deallocate.bytes_recv
desc nfsclient.ops.deallocate.queue
desc nfsclient.ops.deallocate.rtt
desc nfsclient.ops.deallocate.execute
fetch nfsclient.nfsv4
fetch nfsclient.ops.seek.ops
fetch nfsclient.ops.seek.ntrans
fetch nfsclient.ops.seek.timeouts
fetch nfsclient.ops.seek.bytes_sent
fetch nfsclient.ops.seek.bytes_recv
fetch nfsclient.ops.seek.queue
fetch nfsclient.ops.seek.rtt
fetch nfsclient.ops.seek.execute
fetch nfsclient.ops.allocate.ops
fetch nfsclient.ops.allocate.ntrans
fetch nfsclient.ops.allocate.timeouts
fetch nfsclient.ops.allocate.bytes_sent
fetch nfsclient.ops.allocate.bytes_recv
fetch nfsclient.ops.allocate.queue
fetch nfsclient.ops.allocate.rtt
fetch nfsclient.ops.allocate.execute
fetch nfsclient.ops.deallocate.ops
fetch nfsclient.ops.deallocate.ntrans
fetch nfsclient.ops.deallocate.timeouts
fetch nfsclient.ops.deallocate.bytes_sent
fetch nfsclient.ops.deallocate.bytes_recv
fetch nfsclient.ops.deallocate.queue
fetch nfsclient.ops.deallocate.rtt
fetch nfsclient.ops.deallocate.execute
EOF
# iterate over our pre-canned mountstats files
test="$here/nfsclient"
for file in $test/*.qa
do
export NFSCLIENT_MOUNTSTATS_PATH="$file"
echo === Test case: `basename $file`
$sudo rm -f nfsclient.log
$sudo TERM=ansi sh -c ". /etc/pcp.env; dbpmda -n $tmp.root -ie" < $tmp.cmds 2>&1 | _filter | _filter_indom
pmsleep 0.5
_filter_pmda_log < nfsclient.log
done
# iterate over pre-canned nfsv4.2 mountstat files
for file in $test/*42.qa
do
export NFSCLIENT_MOUNTSTATS_PATH="$file"
echo === Test case: `basename $file`
$sudo rm -f nfsclient.log
$sudo TERM=ansi sh -c ". /etc/pcp.env; dbpmda -n $tmp.root -ie" < $tmp.42cmds 2>&1 | _filter | _filter_indom
pmsleep 0.5
_filter_pmda_log < nfsclient.log
done
status=0
|