#!/bin/bash # ----------------------------------------------------------------------------- # Checks whether all and only the ONOS apps configured in ONOS_APPS are active. # ----------------------------------------------------------------------------- [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 . $ONOS_ROOT/tools/build/envDefaults aux=/tmp/stc-$$.log trap "rm -f $aux $aux.1 $aux.2 2>/dev/null" EXIT for attempt in {1..3}; do onos ${1:-$OCI} "onos:apps -s -a" | grep -v /bin/client > $aux cat $aux # Normalize the installed apps cut -c7- $aux | grep -v '/bin/client' | cut -d\ -f1 | sort > $aux.1 # Normalize the expected apps apps=${2:-$ONOS_APPS} apps=${apps:-drivers,openflow} (for app in ${apps//,/ }; do echo org.onosproject.$app; done) | sort > $aux.2 # Check for differences case ${3:-equals} in equals) diff $aux.1 $aux.2;; includes) [ $(egrep -c -f $aux.2 $aux.1) -ge $(wc -l $aux.2 | sed "s|$aux.2||g") ];; excludes) ! egrep -f $aux.2 $aux.1;; esac [ $? -eq 0 ] && exit 0 || sleep 1 done exit 1;