Enhancing onos-check-logs to allow ignoring store exceptions
Change-Id: I60dae339e987a15d0fa3d71967e13f3ce09434bc
diff --git a/tools/test/bin/onos-check-logs b/tools/test/bin/onos-check-logs
index 8369cb9..b98fe1bd 100755
--- a/tools/test/bin/onos-check-logs
+++ b/tools/test/bin/onos-check-logs
@@ -5,14 +5,16 @@
function __usage() {
cat << _EOM_
-
-usage:
- $(basename $0) [node] ['old']
+usage: $(basename $0) [--old|--ignore-store-exceptions] [node]
options:
- - [node] : The node whose logs to inspect. The default is \$OCI.
- - ['old'] : If 'old' is specified, the logs are simply searched for errors
- and exceptions, and they are displayed.
+ --ignore-store-exceptions
+ if specified, any store service exceptions are ignored
+ --old
+ if specified, the entire logs are searched for errors and exceptions;
+ otherwise logs are scanned only from the last server start-up
+
+ node the cluster node whose logs to inspect; default is \$OCI
summary:
Checks the logs of the remote ONOS instance and makes sure they are clean.
@@ -20,24 +22,33 @@
_EOM_
}
-[ "$1" = "-h" ] && __usage && exit 0
-
[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
. $ONOS_ROOT/tools/build/envDefaults
+# Process options
+while [ -z $opts ] ; do
+ case "$1" in
+ --ignore-store-exceptions) export ise=1; shift;;
+ --old) export allLogs=1; shift;;
+ --*) __usage && exit 1;;
+ -h) __usage && exit 0;;
+ *) export opts=1;;
+ esac
+done
+
remote=$ONOS_USER@${1:-$OCI}
LOG=$ONOS_INSTALL_DIR/log/karaf.log*
aux=/tmp/log.$$
-if [ "$2" = "old" ]; then
+if [ -n "$allLogs" ]; then
ssh $remote "egrep 'ERROR|Exception|Error' $LOG"
else
ssh $remote "
[ "'`uname`'" != "'"Linux"'" ] && alias tac='tail -r'
- tac $LOG | tr -d '\000' | awk '
+ tac $LOG | tr -d '\000' | awk -v ignoreStoreExceptions=${ise:-0} '
BEGIN { off = 0; fail = 0; exclusion = 0; trace = \"\";}
/ org.apache.karaf.main.lock.SimpleFileLock lock/ {
exit fail;
@@ -63,6 +74,9 @@
exclusion = 0;
}
+ # Sanctioned exclusions for exceptions in the distributed stores; one pattern per exclusion
+ /org\.onosproject\.store\.service\..*Exception/ { exclusion = ignoreStoreExceptions; }
+
/^[a-zA-Z0-9.]*(Exception|Error)/ {
if (!exclusion) {
print trace;
diff --git a/tools/test/scenarios/ha-single-node.xml b/tools/test/scenarios/ha-single-node.xml
index 554dcac..a48822a 100644
--- a/tools/test/scenarios/ha-single-node.xml
+++ b/tools/test/scenarios/ha-single-node.xml
@@ -53,7 +53,7 @@
exec="onos-check-components ${OC#}"/>
<step name="Check-Logs-${#}" requires="~Check-Nodes-${#}"
- exec="onos-check-logs ${OC#}"/>
+ exec="onos-check-logs --ignore-store-exceptions ${OC#}"/>
<step name="Check-Apps-${#}" requires="~Check-Nodes-${#}"
exec="onos-check-apps ${OC#} ${ONOS_APPS} includes"/>