3 # pmlogger_check failure produces way too many lines of output
6 # Copyright (c) 2002 Silicon Graphics, Inc. All Rights Reserved.
10 echo "QA output created by $seq"
12 # get standard environment, filters and checks
18 status
=1 # failure is the default!
20 [ -z "$PCP_PMLOGGERCONTROL_PATH" ] && \
21 PCP_PMLOGGERCONTROL_PATH
="$PCP_SYSCONF_DIR/pmlogger/control"
23 LOGGING_DIR
=$PCP_LOG_DIR/pmlogger_qa
24 PMCHECK_LOG
=$LOGGING_DIR/pmlogger_check.log
28 trap "_cleanup" 0 1 2 3 15
34 [ -f $tmp.control
] && \
35 $sudo cp $tmp.control
$PCP_PMLOGGERCONTROL_PATH
36 [ -d $tmp.control.d
] && \
37 $sudo mv $tmp.control.d
$PCP_PMLOGGERCONTROL_PATH.d
38 $sudo $PCP_RC_DIR/pcp restart | _filter_pcp_start
43 $sudo rm -rf $LOGGING_DIR
51 -e "s/$myhost/LOCALHOST/g" \
54 -e "s/.* .*pmlogger .*-c .*/<pmlogger process>/" \
55 -e "/Warning: creating directory/s/(.*\/\([^/][^/]*\))/(...\/\1)/" \
56 | _filter_pmlogger_log \
58 /pmlogger_check: Error: archive file .* missing/ {
68 $sudo cp $PCP_PMLOGGERCONTROL_PATH $tmp.control
69 $sudo mv $PCP_PMLOGGERCONTROL_PATH.d
$tmp.control.d
71 cat <<End-of-File >$tmp.tmp
72 # dummy file created by qa/$seq on `date`
73 # the goal here is to have just two pmlogger instances running and
74 # a third one that will never run ...
77 LOCALHOSTNAME y n $LOGGING_DIR/LOCALHOSTNAME-one -c /dev/null
78 LOCALHOSTNAME n n $LOGGING_DIR/LOCALHOSTNAME-two -c /dev/null -L
79 no.such.host.pcp.io n n $LOGGING_DIR/no.such.host.pcp.io -c /dev/null
81 $sudo cp $tmp.tmp
$PCP_PMLOGGERCONTROL_PATH
83 # stop pmcd, create the archive directories, start pmcd ...
85 $sudo $PCP_RC_DIR/pcp stop
>$tmp.out
2>&1
86 cat $tmp.out
>$seq.full
87 $sudo mkdir
-p $LOGGING_DIR/${myhost}-one >/dev
/null
2>&1
88 $sudo mkdir
-p $LOGGING_DIR/${myhost}-two >/dev
/null
2>&1
89 $sudo mkdir
-p $LOGGING_DIR/no.such.
host.pcp.io
>/dev
/null
2>&1
90 id pcp
>/dev
/null
2>&1 && $sudo chown
-R pcp
:pcp
$LOGGING_DIR
91 echo "+++ before pmcd start ..." >>$seq.full
92 $PCP_PS_PROG $PCP_PS_ALL_FLAGS |
grep '[p]mlogger' >>$seq.full
93 echo "+++" >>$seq.full
94 $sudo $PCP_RC_DIR/pcp start
>$tmp.out
2>&1
95 cat $tmp.out
>>$seq.full
97 echo "+++ after pmcd start ..." >>$seq.full
98 $PCP_PS_PROG $PCP_PS_ALL_FLAGS |
grep '[p]mlogger' >>$seq.full
99 echo "+++" >>$seq.full
101 # avoid race with pmloggers not being started before pmlogger_check
105 [ -f $LOGGING_DIR/${myhost}-one/pmlogger.log
-a -f $LOGGING_DIR/${myhost}-two/pmlogger.log
] && break
108 if [ ! -f $LOGGING_DIR/${myhost}-one/pmlogger.log
]
110 echo "Failed to start pmlogger for ${myhost}-one"
111 echo "Logging directory contents ..."
112 ls -l $LOGGING_DIR/${myhost}-one
116 if [ ! -f $LOGGING_DIR/${myhost}-two/pmlogger.log
]
118 echo "Failed to start pmlogger for ${myhost}-two"
119 echo "Logging directory contents ..."
120 ls -l $LOGGING_DIR/${myhost}-two
124 # real QA test starts here
126 echo "=== pmlogger_check ==="
127 echo "+++ before pmlogger_check ..." >>$seq.full
128 $PCP_PS_PROG $PCP_PS_ALL_FLAGS |
grep '[p]mlogger' >>$seq.full
129 echo "+++" >>$seq.full
131 echo "=== pmlogger_check ===" >>$seq.full
132 $sudo $PCP_BINADM_DIR/pmlogger_check
-l $PMCHECK_LOG
133 echo "+++ after pmlogger_check ..." >>$seq.full
134 $PCP_PS_PROG $PCP_PS_ALL_FLAGS |
grep '[p]mlogger' >>$seq.full
135 echo "+++" >>$seq.full
136 _filter
< $PMCHECK_LOG
137 cat $PMCHECK_LOG >>$seq.full
139 echo |
tee -a $seq.full
140 echo "=== pmlogger_check -T ===" |
tee -a $seq.full
141 $sudo $PCP_BINADM_DIR/pmlogger_check
-T -l $PMCHECK_LOG
142 _filter
< $PMCHECK_LOG
143 cat $PMCHECK_LOG >>$seq.full