|
@@ -7,17 +7,36 @@
|
|
# the warnings of that node.
|
|
# the warnings of that node.
|
|
# Examples: tools/warnings.sh
|
|
# Examples: tools/warnings.sh
|
|
# tools/warnings.sh 000a
|
|
# tools/warnings.sh 000a
|
|
|
|
+# Environmental variables:
|
|
|
|
+# CHUTNEY_WARNINGS_IGNORE_EXPECTED: set to 1 to filter out expected warnings
|
|
|
|
+# CHUTNEY_WARNINGS_SUMMARY: set to 1 to merge warnings from all instances
|
|
|
|
|
|
if [ ! -z "$CHUTNEY_PATH" ]; then
|
|
if [ ! -z "$CHUTNEY_PATH" ]; then
|
|
cd "$CHUTNEY_PATH"
|
|
cd "$CHUTNEY_PATH"
|
|
fi
|
|
fi
|
|
|
|
|
|
function show_warnings() {
|
|
function show_warnings() {
|
|
- echo "${GREEN}Node `basename $1`:${NC}"
|
|
|
|
|
|
+ if [ "$CHUTNEY_WARNINGS_SUMMARY" -ne 0 ]; then
|
|
|
|
+ echo "${GREEN}All `basename $1`:${NC}"
|
|
|
|
+ FILE="$1/*/$LOG_FILE"
|
|
|
|
+ else
|
|
|
|
+ echo "${GREEN}Node `basename $1`:${NC}"
|
|
|
|
+ FILE="$1/$LOG_FILE"
|
|
|
|
+ fi
|
|
|
|
+ if [ "$CHUTNEY_WARNINGS_IGNORE_EXPECTED" -ne 0 -a -e "$IGNORE_FILE" ]; then
|
|
|
|
+ CAT="grep -v -f"
|
|
|
|
+ echo " ${GREEN}(Ignoring expected warnings, run chutney/tools/warnings.sh to see all warnings)${NC}"
|
|
|
|
+ else
|
|
|
|
+ CAT=cat
|
|
|
|
+ IGNORE_FILE=
|
|
|
|
+ fi
|
|
# Label errs as "Warning:", they're infrequent enough it doesn't matter
|
|
# Label errs as "Warning:", they're infrequent enough it doesn't matter
|
|
- sed -n -E 's/^.*\[(warn|err)\]//p' $1/info.log | sort | uniq -c | \
|
|
|
|
|
|
+ $CAT $IGNORE_FILE $FILE | \
|
|
|
|
+ sed -n -E 's/^.*\[(warn|err)\]//p' | sort | uniq -c | \
|
|
sed -e 's/^\s*//' -e "s/ *\([0-9][0-9]*\) *\(.*\)/ ${YELLOW}Warning:${NC} \2${YELLOW} Number: \1${NC}/"
|
|
sed -e 's/^\s*//' -e "s/ *\([0-9][0-9]*\) *\(.*\)/ ${YELLOW}Warning:${NC} \2${YELLOW} Number: \1${NC}/"
|
|
- echo ""
|
|
|
|
|
|
+ if [ "$CHUTNEY_WARNINGS_SUMMARY" -eq 0 ]; then
|
|
|
|
+ echo ""
|
|
|
|
+ fi
|
|
}
|
|
}
|
|
|
|
|
|
function usage() {
|
|
function usage() {
|
|
@@ -31,19 +50,31 @@ GREEN=$(tput setaf 2)
|
|
CHUTNEY=./chutney
|
|
CHUTNEY=./chutney
|
|
NAME=$(basename "$0")
|
|
NAME=$(basename "$0")
|
|
DEST=net/nodes
|
|
DEST=net/nodes
|
|
|
|
+LOG_FILE=info.log
|
|
|
|
+# ignore warnings we expect to get every time chutney runs
|
|
|
|
+CHUTNEY_WARNINGS_IGNORE_EXPECTED=${CHUTNEY_WARNINGS_IGNORE_EXPECTED:-0}
|
|
|
|
+# don't put spaces in CHUTNEY_PATH or IGNORE_FILE
|
|
|
|
+IGNORE_FILE="$CHUTNEY_PATH/tools/ignore.warnings"
|
|
|
|
+# merge all log files into one before counting entries
|
|
|
|
+CHUTNEY_WARNINGS_SUMMARY=${CHUTNEY_WARNINGS_SUMMARY:-0}
|
|
|
|
|
|
[ -d net/nodes ] || { echo "$NAME: no logs available"; exit 1; }
|
|
[ -d net/nodes ] || { echo "$NAME: no logs available"; exit 1; }
|
|
if [ $# -eq 0 ];
|
|
if [ $# -eq 0 ];
|
|
then
|
|
then
|
|
- for dir in $DEST/*;
|
|
|
|
|
|
+ if [ "$CHUTNEY_WARNINGS_SUMMARY" -ne 0 ]; then
|
|
|
|
+ show_warnings "$DEST"
|
|
|
|
+ exit 0
|
|
|
|
+ fi
|
|
|
|
+ for dir in "$DEST"/*;
|
|
do
|
|
do
|
|
- [ -e ${dir}/info.log ] || continue
|
|
|
|
- show_warnings $dir
|
|
|
|
|
|
+ [ -e "${dir}/$LOG_FILE" ] || continue
|
|
|
|
+ show_warnings "$dir"
|
|
done
|
|
done
|
|
elif [ $# -eq 1 ];
|
|
elif [ $# -eq 1 ];
|
|
then
|
|
then
|
|
- [ -e $DEST/$1/info.log ] || { echo "$NAME: no log available"; exit 1; }
|
|
|
|
- show_warnings $DEST/$1
|
|
|
|
|
|
+ [ -e "$DEST/$1/$LOG_FILE" ] || \
|
|
|
|
+ { echo "$NAME: no log available"; exit 1; }
|
|
|
|
+ show_warnings "$DEST/$1"
|
|
else
|
|
else
|
|
usage
|
|
usage
|
|
fi
|
|
fi
|