blob: bd0032c7af88405d35b8c171403710ef3f44df9c (
plain)
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
|
#! /bin/sh
# PCP QA Test No. 347
# Exercise the Install/Remove for the news PMDA
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard filters
. ./common.product
. ./common.filter
. ./common.check
perl -e "use PCP::PMDA" >/dev/null 2>&1
test $? -eq 0 || _notrun "PCP::PMDA perl module is not installed"
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
done_clean=false
_cleanup()
{
if $done_clean
then
:
else
[ -f $tmp.pmcd.conf ] && $sudo mv $tmp.pmcd.conf $PCP_PMCDCONF_PATH
rm -f $tmp.*
$sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
_wait_for_pmcd
_wait_for_pmlogger
if $install_on_cleanup
then
( cd $PCP_PMDAS_DIR/news; $sudo ./Install </dev/null >/dev/null 2>&1 )
else
( cd $PCP_PMDAS_DIR/news; $sudo ./Remove </dev/null >/dev/null 2>&1 )
fi
done_clean=true
fi
exit $status
}
install_on_cleanup=false
pminfo news >/dev/null 2>&1 && install_on_cleanup=true
trap "_cleanup" 0 1 2 3 15
_filter()
{
_filter_pmda_install | \
sed -e 's/^Install news as a daemon or perl agent? \[daemon] //'
}
_filter_info()
{
sed \
-e 's/value -[0-9][0-9]*\.[0-9]*/value NEGATIVE NUMBER/' \
-e 's/value -[0-9][0-9]*/value NEGATIVE NUMBER/' \
-e 's/value [0-9][0-9]*\.[0-9]*/value NUMBER/' \
-e 's/value [0-9][0-9]*/value NUMBER/'
}
# real QA test starts here
home=$PCP_PMDAS_DIR
iam=news
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
# start from a known starting point
$sudo ./Remove >/dev/null 2>&1
# now that pmcd is also known to be alive, give the news PMDA
# a bit more breathing space to respond
#
pmstore pmcd.control.timeout 20 >/dev/null 2>&1
PMCD_REQUEST_TIMEOUT=25
export PMCD_REQUEST_TIMEOUT
echo
echo "=== default $iam agent installation ==="
$sudo ./Remove >$tmp.out 2>&1
$sudo ./Install </dev/null >>$tmp.out 2>&1
_filter <$tmp.out
if pminfo -v $iam
then
:
else
echo "... failed! ... here is the Install log ..."
cat $tmp.out
fi
echo
echo "=== validate values ==="
pminfo -f `pminfo $iam | LC_COLLATE=POSIX sort` >$tmp.out
_filter_info <$tmp.out
if fgrep -s "No PMCD agent" $tmp.out >/dev/null 2>&1
then
echo
echo "Looks bad ..."
echo
echo "pmcd.log ..."
cat $PCP_PMCDLOG_PATH
echo
echo "news.log ..."
if [ -d $PCP_LOG_DIR/pmcd ]
then
cat $PCP_LOG_DIR/pmcd/news.log
else
cat $PCP_LOG_DIR/news.log
fi
fi
echo
echo "=== remove $iam agent ==="
$sudo ./Remove >$tmp.out 2>&1
_filter <$tmp.out
# be a good citizen
#
pmstore pmcd.control.timeout 5 >/dev/null 2>&1
status=0
exit
|