File: 1204

package info (click to toggle)
pcp 7.1.0-1
  • links: PTS
  • area: main
  • in suites: forky
  • size: 252,748 kB
  • sloc: ansic: 1,483,656; sh: 182,366; xml: 160,462; cpp: 83,813; python: 24,980; perl: 18,327; yacc: 6,877; lex: 2,864; makefile: 2,738; awk: 165; fortran: 60; java: 52
file content (150 lines) | stat: -rwxr-xr-x 4,338 bytes parent folder | download
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
#!/bin/sh
# PCP QA Test No. 1204
# pmlogctl - basic functionality
#
# see qa/1226 for the pmiectl variant of this test
#
# Copyright (c) 2020 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 pmlogctl -c default status 2>/dev/null | grep ' default ' >/dev/null
then
    _notrun "at least one pmlogger already defined for \"default\" class"
fi

_cleanup()
{
    echo "_cleanup: ..." >>$seq_full
    cd $here
    $sudo pmlogctl -f -c default destroy localhost >>$seq_full 2>&1
    $sudo pmlogctl -a -f -c pmfind destroy localhost >>$seq_full 2>&1
    $sudo rm -rf $tmp $tmp.*
    $sudo rm -rf $PCP_ARCHIVE_DIR/localhost
    $sudo rm -rf $PCP_ARCHIVE_DIR/pmfind-localhost
    $sudo rm -rf $PCP_ARCHIVE_DIR/$seq-foo

}

status=1	# failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15

_filter()
{
    tee -a $seq_full \
    | sed \
	-e '/^# created by pmlogctl/s/ on .*/ on DATE/' \
	-e "s;$tmp\.;TMP.;g" \
	-e "s;$PCP_BINADM_DIR/;PCP_BINADM_DIR/;g" \
	-e "s;$PCP_ARCHIVE_DIR/;PCP_ARCHIVE_DIR/;g" \
	-e "s;$PCP_TMP_DIR/;PCP_TMP_DIR/;g" \
	-e "s;$PCP_TMPFILE_DIR/pmlogctl\.[^/]*;PCP_TMPFILE_DIR/pmlogctl.XXXXX;g" \
	-e "s;$PCP_ETC_DIR/;PCP_ETC_DIR/;g" \
    # end
}

# Build filter for any existing non-qa and non-primary pmlogger instances.
# The "pmcd Host" and "Class" fields from the pmlogctl status output
# should suffice to uniquely identify each.
#
pmlogctl status \
| $PCP_AWK_PROG >$tmp.awk '
NR == 1	{ next }
NF >= 5	{ if ($3 == "primary") next
	  print "$1 == \"" $1 "\" && $3 == \"" $3 "\" { next }"
	}
END	{ print "{ print }" }'

# Note status command output order is non-deterministic, hence the sort
# at the end
#
_filter_status()
{
    _wait_pmlogctl >>$seq_full 2>&1
    tee -a $seq_full \
    | $PCP_AWK_PROG -f $tmp.awk \
    | sed >$tmp.tmp \
	-e "/^`hostname` .* primary /d" \
	-e 's/[ 	][ 	]*/ /g' \
	-e 's/2[0-9][0-9][0-9][01][0-9][0-3][0-9]\...\.[^ ]*/<archivename>/' \
	-e 's/ [0-9][0-9]* / <pid> /' \
    # end
    head -1 $tmp.tmp
    sed -e '1d' $tmp.tmp | LC_COLLATE=POSIX sort
}

# real QA test starts here

echo "== usage"
pmlogctl --help 2>&1 | _filter \
| sed \
    -e 's/[ 	][ 	]*/ /g' \
# end

echo
echo '== -N -V create -c default' | tee -a $seq_full
pmlogctl -N -V create -c default localhost 2>&1 | _filter

echo | tee -a $seq_full
echo '== create -c default' | tee -a $seq_full
$sudo pmlogctl create -c default localhost | _filter
echo '== status' | tee -a $seq_full
pmlogctl status | _filter_status
echo '== status localhost' | tee -a $seq_full
pmlogctl status localhost | _filter_status

echo | tee -a $seq_full
echo '== stop -c default' | tee -a $seq_full
$sudo pmlogctl stop -c default localhost | _filter
echo '== status' | tee -a $seq_full
pmlogctl status | _filter_status
echo '== status localhost' | tee -a $seq_full
pmlogctl status localhost | _filter_status

echo | tee -a $seq_full
echo '== start -c default' | tee -a $seq_full
$sudo pmlogctl start -c default localhost | _filter
echo '== status' | tee -a $seq_full
pmlogctl status | _filter_status
echo '== status localhost' | tee -a $seq_full
pmlogctl status localhost | _filter_status

echo | tee -a $seq_full
echo '== restart -c default' | tee -a $seq_full
$sudo pmlogctl restart -c default localhost | _filter
echo '== status' | tee -a $seq_full
pmlogctl status | _filter_status
echo '== status localhost' | tee -a $seq_full
pmlogctl status localhost | _filter_status

echo | tee -a $seq_full
echo '== destroy -c default' | tee -a $seq_full
$sudo pmlogctl destroy -c default localhost | _filter
echo '== status' | tee -a $seq_full
pmlogctl status | _filter_status
echo '== status localhost' | tee -a $seq_full
pmlogctl status localhost | _filter_status

echo | tee -a $seq_full
echo '== cond-create -c pmfind' | tee -a $seq_full
$sudo pmlogctl cond-create -c pmfind localhost | _filter
echo '== status' | tee -a $seq_full
pmlogctl status | _filter_status
$sudo pmlogctl -c pmfind destroy localhost | _filter

echo | tee -a $seq_full
echo "== cond-create -c pmfind -i $seq-foo" | tee -a $seq_full
$sudo pmlogctl -i $seq-foo cond-create -c pmfind localhost | _filter
echo '== status' | tee -a $seq_full
pmlogctl -V status 2>&1 | _filter_status

# success, all done
status=0
exit