Ray Milkey
Committed by Thomas Vachuska

Make STC intent operations use intent IDs

Change-Id: Ib2eb4e66bd0243b2263c737fb074dbf3c34aa7fe
#! /usr/bin/env python
import requests
from requests.auth import HTTPBasicAuth
r = requests.get('http://192.168.56.101:8181/onos/v1/flows', auth=HTTPBasicAuth('onos', 'rocks'))
deviceId = "of:0000000000000001"
port = 4
flowsJson = r.json()
for flow in flowsJson["flows"]:
if deviceId == flow["deviceId"]:
if flow["treatment"]["instructions"][0]["port"] == port:
print flow
......@@ -10,10 +10,12 @@ aux=/tmp/stc-$$.log
trap "rm -f $aux 2>/dev/null" EXIT
target=${1:-$OCI}
echo onos-check-intent: $*
set -x
for i in 1 2 3; do
onos $target "onos:intents" >> $aux
grep "state=$2" $aux && cat $aux && exit 0
onos $target "onos:intents" > $aux
( cat $aux | grep "id=$2" | grep "state=$3" ) && cat $aux && exit 0
sleep 1
done
......
#!/bin/bash
#! usage: onos-create-intent target-onos-instance name point deviceId1 deviceId2
#! onos-create-intent target-onos-instance name host hostId1 hostId2
# -----------------------------------------------------------------------------
# Installs a new intent using the ONOS CLI
# -----------------------------------------------------------------------------
[ ! -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 2>/dev/null" EXIT
target=$1
name=$2
type=$3
arg1=$4
arg2=$5
set -x
onos $target "onos:add-${type}-intent" "${arg1}" "${arg2}" >> $aux
result=$?
cat $aux
if [ $result -eq 0 ]; then
id=$(cat $aux | sed -e "1d" | sed -e "s/^[a-zA-Z]*{//" | sed -e "s/,.*$//" | sed -e "s/^...//")
echo @stc ${name}Id=${id}
fi
exit $result
......@@ -25,19 +25,20 @@
exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect ."/>
<step name="Create-Intent" requires="^"
exec="onos ${OC1} add-host-intent 00:00:00:00:00:01/-1 00:00:00:00:00:04/-1"/>
<step name="Validate-Intent-Installed" exec="onos-check-intent ${OC1} INSTALLED"
exec="onos-create-intent ${OC1} hostToHost host 00:00:00:00:00:01/-1 00:00:00:00:00:04/-1"/>
<step name="Validate-Intent-Installed" exec="onos-check-intent ${OC1} ${hostToHostId} INSTALLED"
requires="Create-Intent" />
<import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Host-Intent"/>
<dependency name="Host-Intent.Net-Link-Down-Up" requires="Validate-Intent-Installed"/>
<step name="Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} INSTALLED"
<step name="Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} ${hostToHostId} INSTALLED"
requires="Host-Intent.Link-1-Down" />
<step name="Validate-Intent-Failed" exec="onos-check-intent ${OC1} FAILED"
<step name="Validate-Intent-Failed" exec="onos-check-intent ${OC1} ${hostToHostId} FAILED"
requires="Host-Intent.Link-2-Down" />
<step name="Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} INSTALLED"
<step name="Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} ${hostToHostId} INSTALLED"
requires="Host-Intent.Link-1-Up" />
<dependency name="Host-Intent.Ping-4" requires="Validate-Intent-Installed-Again" />
......
......@@ -25,28 +25,32 @@
exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect ."/>
<step name="P2P-Create-Intent-1-To-4" requires="^"
exec="onos ${OC1} add-point-intent of:0000000000000001/1 of:0000000000000004/1"/>
exec="onos-create-intent ${OC1} oneToFour point of:0000000000000001/1 of:0000000000000004/1"/>
<step name="P2P-Create-Intent-4-To-1" requires="^"
exec="onos ${OC1} add-point-intent of:0000000000000004/1 of:0000000000000001/1"/>
<step name="P2P-Validate-Point-Intents-Installed" exec="onos-check-intent ${OC1} INSTALLED"
requires="P2P-Create-Intent-4-To-1" />
exec="onos-create-intent ${OC1} fourToOne point of:0000000000000004/1 of:0000000000000001/1"/>
<step name="P2P-Validate-Point-Intents-Installed1" exec="onos-check-intent ${OC1} ${fourToOneId} INSTALLED"
requires="^" />
<step name="P2P-Validate-Point-Intents-Installed2" exec="onos-check-intent ${OC1} ${oneToFourId} INSTALLED"
requires="^" />
<import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Point-To-Point-Intent"/>
<dependency name="Point-To-Point-Intent.Net-Link-Down-Up" requires="P2P-Validate-Point-Intents-Installed"/>
<step name="P2P-Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} INSTALLED"
<dependency name="Point-To-Point-Intent.Net-Link-Down-Up" requires="P2P-Validate-Point-Intents-Installed2"/>
<step name="P2P-Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} ${fourToOneId} INSTALLED"
requires="Point-To-Point-Intent.Link-1-Down" />
<step name="P2P-Validate-Intent-Failed" exec="onos-check-intent ${OC1} FAILED"
<step name="P2P-Validate-Intent-Failed" exec="onos-check-intent ${OC1} ${fourToOneId} FAILED"
requires="Point-To-Point-Intent.Link-2-Down" />
<step name="P2P-Validate-Intent-Failed2" exec="onos-check-intent ${OC1} ${oneToFourId} FAILED"
requires="Point-To-Point-Intent.Link-2-Down" />
<step name="P2P-Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} INSTALLED"
<step name="P2P-Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} ${fourToOneId} INSTALLED"
requires="Point-To-Point-Intent.Link-1-Up" />
<dependency name="Point-To-Point-Intent.Ping-4" requires="P2P-Validate-Intent-Installed-Again" />
<step name="P2P-Remove-Intent" requires="~Point-To-Point-Intent.Net-Link-Down-Up"
exec="onos ${OC1} remove-intent -p"/>
<step name="P2P-Remove-Intent-4-to-1" requires="~Point-To-Point-Intent.Net-Link-Down-Up"
exec="onos ${OC1} remove-intent -p org.onosproject.cli ${fourToOneId}"/>
<step name="P2P-Remove-Intent-1-to-4" requires="^"
exec="onos ${OC1} remove-intent -p org.onosproject.cli ${oneToFourId}"/>
</group>
</scenario>
......