This file is indexed.

/var/lib/pcp/testsuite/455 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
#! /bin/sh
# PCP QA Test No. 455
# Sanity checks for rsyslog pmda
#
# Copyright (c) 2011 Aconex.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard filters
. ./common.product
. ./common.check
. ./common.filter

[ -d $PCP_PMDAS_DIR/rsyslog ] || _notrun "rsyslog PMDA directory is not installed"
grep rsyslog.elasticsearch.submits $PCP_PMDAS_DIR/rsyslog/pmdarsyslog.pl >/dev/null
[ $? -eq 0 ] || _notrun "Newer version of rsyslog PMDA needed"

perl -e "use PCP::PMDA" >/dev/null 2>&1
test $? -eq 0 || _notrun "PCP::PMDA perl module is not installed"

install_on_cleanup=false
pminfo rsyslog >/dev/null 2>&1 && install_on_cleanup=true

status=1
done_clean=false

_cleanup()
{
    if $done_clean
    then
	:
    else
	if [ -f $tmp.pmcd.conf ]
	then
	    $sudo cp $tmp.pmcd.conf $PCP_PMCDCONF_PATH
	    rm -f $tmp.pmcd.conf
	fi
	_service pcp restart | _filter_pcp_start
	_wait_for_pmcd
	_wait_for_pmlogger
	if $install_on_cleanup
	then
	    ( cd $PCP_PMDAS_DIR/rsyslog; $sudo ./Install </dev/null >/dev/null 2>&1 )
	else
	    ( cd $PCP_PMDAS_DIR/rsyslog; $sudo ./Remove >/dev/null 2>&1 )
	fi
	done_clean=true
    fi
    $sudo rm -f $tmp.*
    exit $status
}

_filter()
{
    # number of warnings depends on rsyslog config
    sed \
	-e '/Creating rsyslog statistics file/d' \
	-e 's/ [0-9]* warnings/ some warnings/g'
}

_val_filter()
{
    $PCP_AWK_PROG '
/^rsyslog\.interval/	{ fix = 1 }
fix == 1 && /value [0-9][0-9]*/	{ $2 = "NUMBER" }
			{ print }
NF == 0			{ fix = 0 }'
}

trap "_cleanup" 0 1 2 3 15

# real QA test starts here
iam=rsyslog
cd $PCP_PMDAS_DIR/$iam

# copy the pmcd config file to restore state later.
cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf

# start from a known starting point
$sudo ./Remove >/dev/null 2>&1
$sudo rm -f pmns domain.h

echo
echo "=== $iam agent installation ==="
$sudo rm -f $PCP_LOG_DIR/rsyslog/stats
$sudo ./Install </dev/null >$tmp.out 2>&1
_filter_pmda_install <$tmp.out \
| _filter

echo
echo "=== validate values ==="
rm -f $tmp.stats
echo "\
2011-05-11T08:18:02.420771+10:00 host rsyslogd-pstats: imuxsock: submitted=85 ratelimit.discarded=0 ratelimit.numratelimiters=24 
2011-05-11T08:18:02.420797+10:00 host rsyslogd-pstats: main Q: size=1181 enqueued=1181 full=0 maxqsize=1181 
2011-05-11T08:18:07.423713+10:00 host rsyslogd-pstats: imuxsock: submitted=85 ratelimit.discarded=0 ratelimit.numratelimiters=24 
2011-05-11T08:18:07.423752+10:00 host rsyslogd-pstats: main Q: size=1 enqueued=1183 full=0 maxqsize=1182" > $tmp.stats

for i in 1 2 3 4 5
do
    [ -p $PCP_LOG_DIR/rsyslog/stats ] && break
    sleep 1
done

if [ ! -p $PCP_LOG_DIR/rsyslog/stats ]
then
    echo "Arrgh failed to see named pipe $PCP_LOG_DIR/rsyslog/stats after 5 seconds"
    ls -l $PCP_LOG_DIR/rsyslog
    exit
fi

$sudo sh -c "cat $tmp.stats >> $PCP_LOG_DIR/rsyslog/stats"
sleep 2	# give some time for pmdarsyslog to be told
$sudo sh -c "cat $tmp.stats >> $PCP_LOG_DIR/rsyslog/stats"
sleep 2	# give more time for pmdarsyslog to be told
pminfo rsyslog \
| LC_COLLATE=POSIX sort \
| while read metric
do
    pminfo -f $metric
done \
| _val_filter

echo
echo "=== remove $iam agent ==="
$sudo ./Remove >$tmp.out 2>&1
_filter_pmda_remove <$tmp.out

status=0
exit