Ray Milkey
Committed by Thomas Vachuska

Make STC intent operations use intent IDs

Change-Id: Ib2eb4e66bd0243b2263c737fb074dbf3c34aa7fe
1 +#! /usr/bin/env python
2 +
3 +import requests
4 +
5 +from requests.auth import HTTPBasicAuth
6 +
7 +r = requests.get('http://192.168.56.101:8181/onos/v1/flows', auth=HTTPBasicAuth('onos', 'rocks'))
8 +deviceId = "of:0000000000000001"
9 +port = 4
10 +flowsJson = r.json()
11 +
12 +for flow in flowsJson["flows"]:
13 + if deviceId == flow["deviceId"]:
14 + if flow["treatment"]["instructions"][0]["port"] == port:
15 + print flow
16 +
17 +
18 +
19 +
...@@ -10,10 +10,12 @@ aux=/tmp/stc-$$.log ...@@ -10,10 +10,12 @@ aux=/tmp/stc-$$.log
10 trap "rm -f $aux 2>/dev/null" EXIT 10 trap "rm -f $aux 2>/dev/null" EXIT
11 target=${1:-$OCI} 11 target=${1:-$OCI}
12 12
13 +echo onos-check-intent: $*
14 +
13 set -x 15 set -x
14 for i in 1 2 3; do 16 for i in 1 2 3; do
15 - onos $target "onos:intents" >> $aux 17 + onos $target "onos:intents" > $aux
16 - grep "state=$2" $aux && cat $aux && exit 0 18 + ( cat $aux | grep "id=$2" | grep "state=$3" ) && cat $aux && exit 0
17 sleep 1 19 sleep 1
18 done 20 done
19 21
......
1 +#!/bin/bash
2 +#! usage: onos-create-intent target-onos-instance name point deviceId1 deviceId2
3 +#! onos-create-intent target-onos-instance name host hostId1 hostId2
4 +# -----------------------------------------------------------------------------
5 +# Installs a new intent using the ONOS CLI
6 +# -----------------------------------------------------------------------------
7 +
8 +[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
9 +. $ONOS_ROOT/tools/build/envDefaults
10 +
11 +aux=/tmp/stc-$$.log
12 +trap "rm -f $aux 2>/dev/null" EXIT
13 +target=$1
14 +name=$2
15 +type=$3
16 +arg1=$4
17 +arg2=$5
18 +
19 +set -x
20 +
21 +onos $target "onos:add-${type}-intent" "${arg1}" "${arg2}" >> $aux
22 +result=$?
23 +cat $aux
24 +
25 +if [ $result -eq 0 ]; then
26 + id=$(cat $aux | sed -e "1d" | sed -e "s/^[a-zA-Z]*{//" | sed -e "s/,.*$//" | sed -e "s/^...//")
27 + echo @stc ${name}Id=${id}
28 +fi
29 +
30 +
31 +exit $result
32 +
...@@ -25,19 +25,20 @@ ...@@ -25,19 +25,20 @@
25 exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect ."/> 25 exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect ."/>
26 26
27 <step name="Create-Intent" requires="^" 27 <step name="Create-Intent" requires="^"
28 - exec="onos ${OC1} add-host-intent 00:00:00:00:00:01/-1 00:00:00:00:00:04/-1"/> 28 + exec="onos-create-intent ${OC1} hostToHost host 00:00:00:00:00:01/-1 00:00:00:00:00:04/-1"/>
29 - <step name="Validate-Intent-Installed" exec="onos-check-intent ${OC1} INSTALLED" 29 + <step name="Validate-Intent-Installed" exec="onos-check-intent ${OC1} ${hostToHostId} INSTALLED"
30 requires="Create-Intent" /> 30 requires="Create-Intent" />
31 31
32 <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Host-Intent"/> 32 <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Host-Intent"/>
33 <dependency name="Host-Intent.Net-Link-Down-Up" requires="Validate-Intent-Installed"/> 33 <dependency name="Host-Intent.Net-Link-Down-Up" requires="Validate-Intent-Installed"/>
34 - <step name="Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} INSTALLED" 34 +
35 + <step name="Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} ${hostToHostId} INSTALLED"
35 requires="Host-Intent.Link-1-Down" /> 36 requires="Host-Intent.Link-1-Down" />
36 37
37 - <step name="Validate-Intent-Failed" exec="onos-check-intent ${OC1} FAILED" 38 + <step name="Validate-Intent-Failed" exec="onos-check-intent ${OC1} ${hostToHostId} FAILED"
38 requires="Host-Intent.Link-2-Down" /> 39 requires="Host-Intent.Link-2-Down" />
39 40
40 - <step name="Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} INSTALLED" 41 + <step name="Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} ${hostToHostId} INSTALLED"
41 requires="Host-Intent.Link-1-Up" /> 42 requires="Host-Intent.Link-1-Up" />
42 <dependency name="Host-Intent.Ping-4" requires="Validate-Intent-Installed-Again" /> 43 <dependency name="Host-Intent.Ping-4" requires="Validate-Intent-Installed-Again" />
43 44
......
...@@ -25,28 +25,32 @@ ...@@ -25,28 +25,32 @@
25 exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect ."/> 25 exec="onos-mininet sendAndExpect h4 ping -c1 h1 --expect ."/>
26 26
27 <step name="P2P-Create-Intent-1-To-4" requires="^" 27 <step name="P2P-Create-Intent-1-To-4" requires="^"
28 - exec="onos ${OC1} add-point-intent of:0000000000000001/1 of:0000000000000004/1"/> 28 + exec="onos-create-intent ${OC1} oneToFour point of:0000000000000001/1 of:0000000000000004/1"/>
29 <step name="P2P-Create-Intent-4-To-1" requires="^" 29 <step name="P2P-Create-Intent-4-To-1" requires="^"
30 - exec="onos ${OC1} add-point-intent of:0000000000000004/1 of:0000000000000001/1"/> 30 + exec="onos-create-intent ${OC1} fourToOne point of:0000000000000004/1 of:0000000000000001/1"/>
31 - <step name="P2P-Validate-Point-Intents-Installed" exec="onos-check-intent ${OC1} INSTALLED" 31 +
32 - requires="P2P-Create-Intent-4-To-1" /> 32 + <step name="P2P-Validate-Point-Intents-Installed1" exec="onos-check-intent ${OC1} ${fourToOneId} INSTALLED"
33 + requires="^" />
34 + <step name="P2P-Validate-Point-Intents-Installed2" exec="onos-check-intent ${OC1} ${oneToFourId} INSTALLED"
35 + requires="^" />
33 36
34 <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Point-To-Point-Intent"/> 37 <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Point-To-Point-Intent"/>
35 - <dependency name="Point-To-Point-Intent.Net-Link-Down-Up" requires="P2P-Validate-Point-Intents-Installed"/> 38 + <dependency name="Point-To-Point-Intent.Net-Link-Down-Up" requires="P2P-Validate-Point-Intents-Installed2"/>
36 - <step name="P2P-Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} INSTALLED" 39 + <step name="P2P-Validate-Intent-Installed-Still" exec="onos-check-intent ${OC1} ${fourToOneId} INSTALLED"
37 requires="Point-To-Point-Intent.Link-1-Down" /> 40 requires="Point-To-Point-Intent.Link-1-Down" />
38 41
39 - <step name="P2P-Validate-Intent-Failed" exec="onos-check-intent ${OC1} FAILED" 42 + <step name="P2P-Validate-Intent-Failed" exec="onos-check-intent ${OC1} ${fourToOneId} FAILED"
43 + requires="Point-To-Point-Intent.Link-2-Down" />
44 + <step name="P2P-Validate-Intent-Failed2" exec="onos-check-intent ${OC1} ${oneToFourId} FAILED"
40 requires="Point-To-Point-Intent.Link-2-Down" /> 45 requires="Point-To-Point-Intent.Link-2-Down" />
41 46
42 - <step name="P2P-Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} INSTALLED" 47 + <step name="P2P-Validate-Intent-Installed-Again" exec="onos-check-intent ${OC1} ${fourToOneId} INSTALLED"
43 requires="Point-To-Point-Intent.Link-1-Up" /> 48 requires="Point-To-Point-Intent.Link-1-Up" />
44 <dependency name="Point-To-Point-Intent.Ping-4" requires="P2P-Validate-Intent-Installed-Again" /> 49 <dependency name="Point-To-Point-Intent.Ping-4" requires="P2P-Validate-Intent-Installed-Again" />
45 50
46 - <step name="P2P-Remove-Intent" requires="~Point-To-Point-Intent.Net-Link-Down-Up" 51 + <step name="P2P-Remove-Intent-4-to-1" requires="~Point-To-Point-Intent.Net-Link-Down-Up"
47 - exec="onos ${OC1} remove-intent -p"/> 52 + exec="onos ${OC1} remove-intent -p org.onosproject.cli ${fourToOneId}"/>
48 - 53 + <step name="P2P-Remove-Intent-1-to-4" requires="^"
49 - 54 + exec="onos ${OC1} remove-intent -p org.onosproject.cli ${oneToFourId}"/>
50 -
51 </group> 55 </group>
52 </scenario> 56 </scenario>
......