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 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
|
#!/bin/sh
# PCP QA Test No. 675
# check pmlogger_rewrite wrapper script
#
# Copyright (c) 2018 Ken McDonell. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
if which xz >/dev/null 2>&1
then
PROG=xz
SUFF=xz
elif which bzip2 >/dev/null 2>&1
then
PROG=bzip2
SUFF=bz2
elif which gzip >/dev/null 2>&1
then
PROG=gzip
SUFF=gz
else
_notrun "cannot find a compression program!"
fi
_cleanup()
{
cd $here
$sudo rm -rf $tmp $tmp.*
}
_filter()
{
sed \
-e '/pmlogcp: Cannot open archive .*: Illegal label record/d' \
-e "s@$tmp@TMP@g" \
# end
}
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
# setup the log farm
#
cat <<End-of-File >$tmp.farm
onevol archives/snort-disks 20011002
onevol archives/moomba.client 20011003
multivol archives/ok-mv-bar 20011002
badvol badarchives/badlen-10 badlen-10
End-of-File
mkdir $tmp
if ./mk.logfarm -c $tmp.farm $tmp >$tmp.out 2>&1
then
_filter <$tmp.out
else
cat $tmp.out
echo "Arrgh ... mk.logfarm failed!"
exit
fi
# real QA test starts here
cd $tmp
echo "=== Arg parsing and error cases ==="
cd onevol
echo "--- -c someconfig -N -VV no-such-archive ---"
$PCP_BINADM_DIR/pmlogger_rewrite -c someconfig -N -VV no-such-archive
echo
echo "--- -c someconfig -swdv -N -VV 20011002 ---"
$PCP_BINADM_DIR/pmlogger_rewrite -c someconfig -swdv -N -VV 20011002
echo
echo "--- -N -VV 20011002.index 20011002.meta 20011002.0 ---"
$PCP_BINADM_DIR/pmlogger_rewrite -N -VV 20011002.index 20011002.meta 20011002.0
echo
echo "--- ../onevol ../multivol ---"
$PCP_BINADM_DIR/pmlogger_rewrite -N -VV ../onevol ../multivol | sort -r
echo
echo "--- empty foo ---"
mkdir foo
$PCP_BINADM_DIR/pmlogger_rewrite -N -VV foo | sort -r
echo
echo "--- populated foo ---"
base=0
for suff in xz lzma bz2 bz gz Z z zst
do
touch foo/$base.meta.$suff
touch foo/$base.0.$suff
touch foo/$base.$base.$suff
touch foo/$base.index.$suff
base=`expr $base + 1`
done
$PCP_BINADM_DIR/pmlogger_rewrite -N -VV foo | sort -r
rm -rf foo
cd ..
echo
echo "--- bad archive ---"
$PCP_BINADM_DIR/pmlogger_rewrite -V badvol | sort -r
echo
echo "--- disk.dev.bytes type rewrite in snort-disks and not in moomba.client ---"
cat <<End-of-File >$tmp.rewrite
metric disk.dev.bytes {
type -> U64
}
End-of-File
$PCP_BINADM_DIR/pmlogger_rewrite -VV -c $tmp.rewrite onevol/20011002 onevol/20011003
for arch in onevol/20011002 onevol/20011003
do
echo $arch:
pminfo -a $arch -d disk.dev.bytes
done
rm -rf onevol multivol
cd $here
if ./mk.logfarm -c $tmp.farm $tmp >$tmp.out 2>&1
then
:
else
cat $tmp.out
echo "Arrgh ... mk.logfarm failed!"
exit
fi
cd $tmp
echo
echo "--- pmcd.pmlogger.port pmid rewrite in snort-disks and moomba.client ---"
cat <<End-of-File >$tmp.rewrite
metric pmcd.pmlogger.port {
pmid -> 2.4095.1023
}
End-of-File
$PCP_BINADM_DIR/pmlogger_rewrite -VV -c $tmp.rewrite onevol/20011002 onevol/20011003
for arch in onevol/20011002 onevol/20011003
do
echo $arch:
pminfo -a $arch -md pmcd.pmlogger.port
done
rm -rf onevol multivol
cd $here
if ./mk.logfarm -c $tmp.farm $tmp >$tmp.out 2>&1
then
:
else
cat $tmp.out
echo "Arrgh ... mk.logfarm failed!"
exit
fi
cd $tmp
echo
echo "--- rewrite with data volume compression for multivol ---"
cat <<End-of-File >$tmp.rewrite
metric pmcd.pmlogger.port {
pmid -> 2.4095.1023
}
End-of-File
for file in multivol/*.[0-9]
do
$PROG $file
done
$PCP_BINADM_DIR/pmlogger_rewrite -VV -c $tmp.rewrite onevol/*.meta multivol/*.meta
for arch in onevol/*.meta multivol/*.meta
do
arch=`echo $arch | sed -e 's/.meta//'`
echo $arch:
pminfo -a $arch -m pmcd.pmlogger.port
done
rm -rf onevol multivol
cd $here
if ./mk.logfarm -c $tmp.farm $tmp >$tmp.out 2>&1
then
:
else
cat $tmp.out
echo "Arrgh ... mk.logfarm failed!"
exit
fi
cd $tmp
echo
echo "--- rewrite with metadata and volume compression for onevol and multivol ---"
cat <<End-of-File >$tmp.rewrite
metric pmcd.pmlogger.port {
pmid -> 2.4095.1023
}
End-of-File
for file in multivol/*.[0-9] multivol/*.meta onevol/*.[0-9] onevol/*.meta
do
$PROG $file
done
$PCP_BINADM_DIR/pmlogger_rewrite -VV -c $tmp.rewrite onevol/*.meta* multivol/*.meta*
for arch in onevol/*.meta* multivol/*.meta*
do
arch=`echo $arch | sed -e 's/.meta.*//'`
echo $arch:
pminfo -a $arch -m pmcd.pmlogger.port
done
rm -rf onevol multivol
cd $here
if ./mk.logfarm -c $tmp.farm $tmp >$tmp.out 2>&1
then
:
else
cat $tmp.out
echo "Arrgh ... mk.logfarm failed!"
exit
fi
cd $tmp
# success, all done
status=0
exit
|