Make STC intent operations use intent IDs
Change-Id: Ib2eb4e66bd0243b2263c737fb074dbf3c34aa7fe
diff --git a/tools/test/bin/find-intent.py b/tools/test/bin/find-intent.py
new file mode 100755
index 0000000..e785a69
--- /dev/null
+++ b/tools/test/bin/find-intent.py
@@ -0,0 +1,19 @@
+#! /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
+
+
+
+
diff --git a/tools/test/bin/onos-check-intent b/tools/test/bin/onos-check-intent
index 03c3215..55410ad 100755
--- a/tools/test/bin/onos-check-intent
+++ b/tools/test/bin/onos-check-intent
@@ -10,10 +10,12 @@
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
diff --git a/tools/test/bin/onos-create-intent b/tools/test/bin/onos-create-intent
new file mode 100755
index 0000000..6482103
--- /dev/null
+++ b/tools/test/bin/onos-create-intent
@@ -0,0 +1,32 @@
+#!/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
+
diff --git a/tools/test/scenarios/net-host-intent.xml b/tools/test/scenarios/net-host-intent.xml
index 121303d..88b79bf 100644
--- a/tools/test/scenarios/net-host-intent.xml
+++ b/tools/test/scenarios/net-host-intent.xml
@@ -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" />
diff --git a/tools/test/scenarios/net-point-intent.xml b/tools/test/scenarios/net-point-intent.xml
index c60e85e..125f491 100644
--- a/tools/test/scenarios/net-point-intent.xml
+++ b/tools/test/scenarios/net-point-intent.xml
@@ -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>