mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-16 18:02:05 +02:00
35 lines
1.1 KiB
Bash
Executable File
35 lines
1.1 KiB
Bash
Executable File
#!/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..30}; 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;
|