Committed by
Gerrit Code Review
- bidrectional vnet link creation
- optionally specify expected number of intents in "onos-check-intent" Change-Id: I523a7fd9e1aaa72b441d2428fb9ebb692b07bdd0 - bidrectional vnet link creation (when using ssh) - optionally specify expected number of intents in "onos-check-intent" Change-Id: I5c6fe1f269eddeaa70dfec819853d42af59fbd8e
Showing
4 changed files
with
38 additions
and
17 deletions
| ... | @@ -6,10 +6,11 @@ | ... | @@ -6,10 +6,11 @@ |
| 6 | function _usage () { | 6 | function _usage () { |
| 7 | cat << _EOF_ | 7 | cat << _EOF_ |
| 8 | usage: | 8 | usage: |
| 9 | - $(basename $0) [-w] [node] | 9 | + $(basename $0) [-w] [-f] [node] |
| 10 | 10 | ||
| 11 | flags: | 11 | flags: |
| 12 | - -w : Waits for ONOS instance to reach run-level 100, i.e. to be fully started. | 12 | - -w : Waits for ONOS instance to reach run-level 100, i.e. to be fully started. |
| 13 | +- -f : (Affects non-secure client only) - use bash's IFS expansion of positional parameters | ||
| 13 | 14 | ||
| 14 | options: | 15 | options: |
| 15 | - [node] : the node to attach to | 16 | - [node] : the node to attach to |
| ... | @@ -29,13 +30,18 @@ _EOF_ | ... | @@ -29,13 +30,18 @@ _EOF_ |
| 29 | . $ONOS_ROOT/tools/test/bin/find-node.sh | 30 | . $ONOS_ROOT/tools/test/bin/find-node.sh |
| 30 | 31 | ||
| 31 | [ "$1" = "-w" ] && shift && onos-wait-for-start $1 | 32 | [ "$1" = "-w" ] && shift && onos-wait-for-start $1 |
| 33 | +[ "$1" = "-f" ] && shift && flat=1 | ||
| 32 | 34 | ||
| 33 | [ -n "$1" ] && OCI=$(find_node $1) && shift | 35 | [ -n "$1" ] && OCI=$(find_node $1) && shift |
| 34 | 36 | ||
| 35 | if which client 1>/dev/null 2>&1 && [ -z "$ONOS_USE_SSH" ]; then | 37 | if which client 1>/dev/null 2>&1 && [ -z "$ONOS_USE_SSH" ]; then |
| 36 | # Use Karaf client only if we can and are allowed to | 38 | # Use Karaf client only if we can and are allowed to |
| 37 | unset KARAF_HOME | 39 | unset KARAF_HOME |
| 38 | - client -h $OCI -u karaf "$@" 2>/dev/null | 40 | + if [ -z "$flat" ]; then |
| 41 | + client -h $OCI -u karaf "$@" 2>/dev/null | ||
| 42 | + else | ||
| 43 | + client -h $OCI -u karaf "$*" 2>/dev/null | ||
| 44 | + fi | ||
| 39 | else | 45 | else |
| 40 | # Otherwise use raw ssh; strict checking is off for dev environments only | 46 | # Otherwise use raw ssh; strict checking is off for dev environments only |
| 41 | ssh -p 8101 -o StrictHostKeyChecking=no $OCI "$@" | 47 | ssh -p 8101 -o StrictHostKeyChecking=no $OCI "$@" | ... | ... |
| ... | @@ -13,9 +13,29 @@ target=${1:-$OCI} | ... | @@ -13,9 +13,29 @@ target=${1:-$OCI} |
| 13 | echo onos-check-intent: $* | 13 | echo onos-check-intent: $* |
| 14 | 14 | ||
| 15 | set -x | 15 | set -x |
| 16 | + | ||
| 17 | +# $1: target host | ||
| 18 | +# $2: intent key | ||
| 19 | +# $3: intent state | ||
| 20 | +# $4: number of expected intents | ||
| 21 | +re='^[0-9]+$' | ||
| 22 | +[[ $4 =~ $re ]] && numIntentsExpected=$4 # silently ignore if not positive | ||
| 23 | + | ||
| 16 | for i in {1..15}; do | 24 | for i in {1..15}; do |
| 25 | + echo "Attempt #$i" | ||
| 17 | onos $target "onos:intents" | tee $aux | 26 | onos $target "onos:intents" | tee $aux |
| 18 | - ( cat $aux | grep "key=$2" | grep "state=$3" ) && cat $aux && exit 0 | 27 | + if [ -z "$numIntentsExpected" ]; then |
| 28 | + ( cat $aux | grep "key=$2" | grep "state=$3" ) && cat $aux && exit 0 | ||
| 29 | + else | ||
| 30 | + # exit 0 only if expected number of intents (with required key) | ||
| 31 | + # are present and all intents match state (if expected no. of intents > 0) | ||
| 32 | + numIntents=`grep "key=$2" $aux | wc -l` | ||
| 33 | + numIntentsOfState=0 | ||
| 34 | + [ $numIntentsExpected -gt 0 ] && numIntentsOfState=`grep "key=$2" $aux | grep "state=$3" | wc -l` | ||
| 35 | + [ $numIntents -eq $numIntentsOfState ] \ | ||
| 36 | + && [ $numIntents -eq $numIntentsExpected ] \ | ||
| 37 | + && cat $aux && exit 0 | ||
| 38 | + fi | ||
| 19 | sleep 1 | 39 | sleep 1 |
| 20 | done | 40 | done |
| 21 | 41 | ... | ... |
| ... | @@ -46,19 +46,14 @@ | ... | @@ -46,19 +46,14 @@ |
| 46 | <step name="Create-Port-2" requires="^" | 46 | <step name="Create-Port-2" requires="^" |
| 47 | exec="onos ${OCI} vnet-create-port ${networkId} device2 2 of:0000000000000009 1"/> | 47 | exec="onos ${OCI} vnet-create-port ${networkId} device2 2 of:0000000000000009 1"/> |
| 48 | 48 | ||
| 49 | - <step name="Create-Link-1" requires="^" | 49 | + <step name="Create-Bidirectional-Link" requires="^" |
| 50 | - exec="onos ${OCI} vnet-create-link ${networkId} device1 1 device2 2"/> | 50 | + exec="onos -f ${OCI} vnet-create-link --bidirectional ${networkId} device2 2 device1 1"/> |
| 51 | 51 | ||
| 52 | - <step name="Create-Link-2" requires="^" | 52 | + <step name="Check-intents-installed" requires="^" |
| 53 | - exec="onos ${OCI} vnet-create-link ${networkId} device2 2 device1 1"/> | 53 | + exec="onos-check-intent ${OCI} networkId=${networkId} INSTALLED 2"/> |
| 54 | 54 | ||
| 55 | - <step name="Check-intents-installed" requires="^" env="~" | 55 | + <step name="Ping-hosts-1" requires="^" |
| 56 | - exec="onos-check-intent ${OCI} networkId=${networkId} INSTALLED"/> | ||
| 57 | - <!-- TODO: ignore return code once intent is working --> | ||
| 58 | - | ||
| 59 | - <step name="Ping-hosts-1" requires="^" env="~" | ||
| 60 | exec="onos-mininet sendAndExpect h4 ping -c1 h9 --expect \ 0% packet loss"/> | 56 | exec="onos-mininet sendAndExpect h4 ping -c1 h9 --expect \ 0% packet loss"/> |
| 61 | - <!-- TODO: ignore return code once intent is working --> | ||
| 62 | 57 | ||
| 63 | </group> | 58 | </group> |
| 64 | </scenario> | 59 | </scenario> | ... | ... |
| ... | @@ -22,11 +22,11 @@ | ... | @@ -22,11 +22,11 @@ |
| 22 | <step name="Check-Vnet-Link" requires="^" | 22 | <step name="Check-Vnet-Link" requires="^" |
| 23 | exec="onos ${OCI} vnet-links ${networkId}"/> | 23 | exec="onos ${OCI} vnet-links ${networkId}"/> |
| 24 | 24 | ||
| 25 | - <step name="Remove-Link-1" requires="^" | 25 | + <step name="Remove-Bidirectional-Link" requires="^" |
| 26 | - exec="onos ${OCI} vnet-remove-link ${networkId} device1 1 device2 2"/> | 26 | + exec="onos -f ${OCI} vnet-remove-link --bidirectional ${networkId} device2 2 device1 1"/> |
| 27 | 27 | ||
| 28 | - <step name="Remove-Link-2" requires="^" | 28 | + <step name="Check-intents-removed" requires="^" |
| 29 | - exec="onos ${OCI} vnet-remove-link ${networkId} device2 2 device1 1"/> | 29 | + exec="onos-check-intent ${OCI} networkId=${networkId} IGNORE_STATE 0"/> |
| 30 | 30 | ||
| 31 | <step name="Ping-hosts-2" requires="^" | 31 | <step name="Ping-hosts-2" requires="^" |
| 32 | exec="onos-mininet sendAndExpect h4 ping -c1 h9 --expect \ 100% packet loss"/> | 32 | exec="onos-mininet sendAndExpect h4 ping -c1 h9 --expect \ 100% packet loss"/> | ... | ... |
-
Please register or login to post a comment