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
|
#!/bin/sh
# PCP QA Test No. 1239
# Test that indom instance labels can be created, deleted and rewritten
# by pmlogrewrite(1)
#
# Copyright (c) 2018 Red Hat. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
_cleanup()
{
cd $here
$sudo rm -rf $tmp $tmp.*
}
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_filter()
{
tmpx=`echo $tmp`
sed -e 's/^Archive:.* Host:/ARCHIVE: Host:/' \
-e "s|$tmpx|TMP|g" \
-e 's|PID for pmlogger: [0-9]*|PID for pmlogger: PID|'
}
# real QA test starts here
DIR=archives
# First, run pmlogrewrite against the archive, deleting and reassociating some item labels
CONFIG=$tmp.config
cat > $CONFIG << EOF
LABEL INSTANCES 3.9 { }
LABEL INSTANCES 3.9 { DELETE }
LABEL INSTANCES 60.19 { INSTANCES -> 60.24 }
LABEL INSTANCES 60.0 1 { DELETE }
LABEL INSTANCES 60.0 "cpu2" { DELETE }
LABEL INSTANCES 60.1 1 "device_name" { LABEL -> "new_device_name" }
LABEL INSTANCES 60.3 1 "interface" "lo" { VALUE -> "new_lo" }
LABEL INSTANCES 60.0 3 "cpu" 3 { DELETE }
LABEL INSTANCES 60.10 * * "sda2" { DELETE }
LABEL INSTANCES 60.24 * "device_name" * { DELETE }
LABEL INSTANCES 60.32 * * * { DELETE }
EOF
echo contents of $CONFIG >> $seq_full
echo ........................ >> $seq_full
cat $CONFIG >> $seq_full
echo ........................ >> $seq_full
IN=$DIR/20180416.10.00
OUT=$tmp.pmlogrewrite
rm -f $OUT.*
echo "Running pmlogrewrite -c $CONFIG $IN $OUT" | _filter | tee -a $seq_full
pmlogrewrite -c $CONFIG $IN $OUT 2>&1 >> $seq_full
[ $? -eq 0 ] || echo "Error running pmlogrewrite -c $CONFIG $IN $OUT -- see $seq.full"
# Now run pmdumplog against the original and rewritten archives.
DUMP1=$tmp.original.txt
echo "Running pmdumplog -zhide $IN" | _filter | tee -a $seq_full
pmdumplog -zhide $IN 2>&1 > $DUMP1
DUMP2=$tmp.rewritten.txt
IN=$OUT
echo "Running pmdumplog -iteh $IN" | _filter | tee -a $seq_full
pmdumplog -zhide $IN 2>&1 > $DUMP2
# Make sure the item labels have been deleted or reassociated
echo "Running diff $DUMP1 $DUMP2" | _filter | tee -a $seq_full
diff $DUMP1 $DUMP2 2>&1 | _filter | tee -a $seq_full
# Test deleting all instance labels for an entire domain
cat > $CONFIG << EOF
LABEL INSTANCES 3.* { DELETE }
EOF
echo contents of $CONFIG >> $seq_full
echo ........................ >> $seq_full
cat $CONFIG >> $seq_full
echo ........................ >> $seq_full
IN=$DIR/20180416.10.00
OUT=$tmp.pmlogrewrite
rm -f $OUT.*
echo "Running pmlogrewrite -c $CONFIG $IN $OUT" | _filter | tee -a $seq_full
pmlogrewrite -c $CONFIG $IN $OUT 2>&1 >> $seq_full
[ $? -eq 0 ] || echo "Error running pmlogrewrite -c $CONFIG $IN $OUT -- see $seq.full"
# Now run pmdumplog against the original and rewritten archives.
DUMP1=$tmp.original.txt
echo "Running pmdumplog -zhide $IN" | _filter | tee -a $seq_full
pmdumplog -zhide $IN 2>&1 > $DUMP1
DUMP2=$tmp.rewritten.txt
IN=$OUT
echo "Running pmdumplog -iteh $IN" | _filter | tee -a $seq_full
pmdumplog -zhide $IN 2>&1 > $DUMP2
# Make sure the item labels have been deleted or reassociated
echo "Running diff $DUMP1 $DUMP2" | _filter | tee -a $seq_full
diff $DUMP1 $DUMP2 2>&1 | _filter | tee -a $seq_full
# Test creating new instance labels
cat > $CONFIG << EOF
LABEL INSTANCES 3.9 { NEW "new_name" "new_value" }
LABEL INSTANCES 60.0 1 { NEW "new_name" 60 }
LABEL INSTANCES 60.10 * { NEW "new_name" true }
LABEL INSTANCES 60.24 * { NEW "new_name" false }
LABEL INSTANCES 60.32 * { NEW "new_name" null }
EOF
echo contents of $CONFIG >> $seq_full
echo ........................ >> $seq_full
cat $CONFIG >> $seq_full
echo ........................ >> $seq_full
IN=$DIR/20180416.10.00
OUT=$tmp.pmlogrewrite
rm -f $OUT.*
echo "Running pmlogrewrite -c $CONFIG $IN $OUT" | _filter | tee -a $seq_full
pmlogrewrite -c $CONFIG $IN $OUT 2>&1 >> $seq_full
[ $? -eq 0 ] || echo "Error running pmlogrewrite -c $CONFIG $IN $OUT -- see $seq.full"
# Now run pmdumplog against the original and rewritten archives.
DUMP1=$tmp.original.txt
echo "Running pmdumplog -zhide $IN" | _filter | tee -a $seq_full
pmdumplog -zhide $IN 2>&1 > $DUMP1
DUMP2=$tmp.rewritten.txt
IN=$OUT
echo "Running pmdumplog -iteh $IN" | _filter | tee -a $seq_full
pmdumplog -zhide $IN 2>&1 > $DUMP2
# Make sure the item labels have been deleted or reassociated
echo "Running diff $DUMP1 $DUMP2" | _filter | tee -a $seq_full
diff $DUMP1 $DUMP2 2>&1 | _filter | tee -a $seq_full
# success, all done
status=0
exit
|