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>