File: 671

package info (click to toggle)
pcp 7.1.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • 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 (151 lines) | stat: -rwxr-xr-x 2,968 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
151
#!/bin/sh
# PCP QA Test No. 671
# test mkaf and pmafm with compressed archives
#
# Copyright (c) 2018 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 which xz >/dev/null 2>&1
then
    PROG=xz
    SUFF=xz
elif which bzip2 >/dev/null 2>&1
then
    PROG=bzip2
    SUFF=bz2
elif which gzip >/dev/null 2>&1
then
    PROG=gzip
    SUFF=gz
else
    _notrun "cannot find a compression program!"
fi

_cleanup()
{
    cd $here
    $sudo rm -rf $tmp $tmp.*
}

_filter()
{
    sed \
	-e "s@$tmp@TMP@g" \
    # end
}

_filter2_pmafm()
{
    $PCP_AWK_PROG '$1 == "Archive:" {if ($4 != "OK") {print $0}}'
}

_filter_pmafm()
{
    # Need to sort lines in this block
    #
    # Ordinal Hostname             Archive Basename
    #   [  1] bozo                 ./multivol/20011002	<- start here
    #   [  2] snort                ./onevol/20011002	<-- end here
    #
    host=`hostname`
    tee -a $seq_full \
    | tee $tmp.tmp \
    | sed \
	-e "s@$tmp@TMP@g" \
	-e 's/\[  *[0-9][0-9]*]/[N]/' \
	-e '/^Created:/{
s/'"$host"'/HOSTNAME/
s/ at .*/ at DATE/
}' \
	-e '/^Creator:/s/:.*/: .../' \
	-e '/^Folio Directory:/s/:.*/: .../' \
	-e '/^PCP Archive Folio:/s/:.*/: .../' \
| $PCP_AWK_PROG '
BEGIN				{ part = 1 }
part == 2 && NF == 0		{ part = 3 }
				{ print >"'$tmp.out.'" part }
part == 1 && $1 == "Ordinal"	{ part = 2 }'

    if [ -f $tmp.out.1 ]
    then
	cat $tmp.out.1
    else
	echo "Arrgh ... part 1 from pmafm output missing (full output follows)"
	cat  $tmp.tmp
    fi
    if [ -f $tmp.out.2 ]
    then
	sort $tmp.out.2
    else
	echo "Arrgh ... part 2 from pmafm output missing (full output follows)"
	cat  $tmp.tmp
    fi
    if [ -f $tmp.out.3 ]
    then
	cat $tmp.out.3
    fi
}

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

# setup the log farm
#
cat <<End-of-File >$tmp.farm
onevol		archives/snort-disks	20011002
onevol		archives/moomba.client	20011003
multivol	archives/ok-mv-bar	20011002
End-of-File

mkdir $tmp
if ./mk.logfarm -c $tmp.farm $tmp >$tmp.out 2>&1
then
    _filter <$tmp.out
else
    cat $tmp.out
    echo "Arrgh ... mk.logfarm failed!"
    exit
fi

# real QA test starts here
cd $tmp

echo "=== uncompressed archives ==="
for arg in . onevol/20011002.0 multivol/20011002.0
do
    echo
    echo "--- $arg ---"
    mkaf $arg >folio
    pmafm folio list | _filter_pmafm
    pmafm folio check | _filter2_pmafm
    pmafm folio pminfo -f pmcd.pmlogger.host
done

echo
echo "=== archives with compressed data volumes ==="
find * -name "*.[0-9]" -print \
| while read file
do
    $PROG $file
done
for arg in . onevol/20011002.0.$SUFF multivol/20011002.0.$SUFF
do
    echo
    echo "--- $arg ---"
    mkaf $arg >folio
    pmafm folio list | _filter_pmafm
    pmafm folio check | _filter2_pmafm
    pmafm folio pminfo -f pmcd.pmlogger.host
done

# success, all done
status=0
exit